Conscience Core
CscRealEntitiesCollector.h
Go to the documentation of this file.
1 #ifndef CscRealEntitiesCollector_h
2 #define CscRealEntitiesCollector_h
3 
4 #include "CscCommon.h"
5 #include "Axiomes/Csc3dTypes.h"
8 }
9 using namespace conscience_core::communication;
10 using namespace conscience_core::axiomes;
11 
14 public:
16  string name,
17  string osVersion,
18  string modelId,
19  string owner,
20  string serialNumber,
21  string birthday,
22  string provider,
23  string engineIp,
24  string enginePort,
25  string rtspLink,
26  string ip,
27  bool useGnssPositioning = false,
28  optional<PositionFormat> simulatedInputsType = {},
29  optional<string> localProjection = {});
30 
31  const string name;
32  const string osVersion;
33  const string modelId;
34  const string owner;
35  const string serialNumber;
36  const string birthday;
37  const string provider;
38  const string engineIp;
39  const string enginePort;
40  const string rtspLink;
41  const string ip;
42  const bool useGnssPositioning;
43  const optional<PositionFormat> simulatedInputsType;
45 
46  static CscNetworkEntityData *fromProfile(const string &entityIp, const vector<string> &profileArgs);
47 };
48 
50 
52 public:
53  EntitiesCollectAutoStop(CscRealEntitiesCollector *realEntityCollector, int delayInSeconds);
54  void setShouldStopCollecting(bool shouldStopCollecting);
55  bool getShouldStopCollecting() const;
56  bool isStopped() const;
57 
58 private:
59  bool stopped = false;
60  bool shouldStopCollecting = false;
61  CscRealEntitiesCollector *realEntityCollector = nullptr;
62 };
63 
65 
67 public:
68  CscRealEntitiesCollector(optional<function<void(bool)>> onCollectStartAndStop = {});
70  void collectAvailableEntities(function<void(CscNetworkEntityData *)> callback, optional<int> autoStopAfterSeconds = {});
71  void stop();
72 private:
73  optional<function<void(bool)>> onCollectStartAndStop;
74  CscMessagingManager *messagingManager = nullptr;
75  CscRealEntitiesCollectorMessagingHandler *messageHandler = nullptr;
76  EntitiesCollectAutoStop *currentCollectAutoStop = nullptr;
77  const unsigned udpServerPort = 1903;
78  const unsigned tcpServerPort = 2003;
79 
80  bool scanSendRequestsInProgress = false;
81 
82  void sendProfileRequestToNetworkEntities();
83  void initCommunicationsComponent(function<void(CscNetworkEntityData *)> listener);
84  void stopWithNoLock();
85 
86  unique_ptr<CscLogger> logger = CscLogger::getForCategory("CscRealEntitiesCollector");
87  mutex stopMutex;
88  mutex collectEntitiesMutex;
89 };
90 
91 }
92 
93 #endif
conscience_core::core_objects::entities::CscNetworkEntityData::engineIp
const string engineIp
Definition: CscRealEntitiesCollector.h:38
conscience_core::core_objects::entities::CscNetworkEntityData::rtspLink
const string rtspLink
Definition: CscRealEntitiesCollector.h:40
conscience_core::core_objects::entities::CscNetworkEntityData::birthday
const string birthday
Definition: CscRealEntitiesCollector.h:36
conscience_core::core_objects::entities::CscNetworkEntityData
Definition: CscRealEntitiesCollector.h:13
conscience_core::core_objects::entities::CscNetworkEntityData::simulatedInputsType
const optional< PositionFormat > simulatedInputsType
Definition: CscRealEntitiesCollector.h:43
conscience_core::axiomes
Definition: Csc2dTypes.cpp:9
conscience_core::core_objects::entities::CscNetworkEntityData::serialNumber
const string serialNumber
Definition: CscRealEntitiesCollector.h:35
conscience_core::core_objects::entities::CscNetworkEntityData::osVersion
const string osVersion
Definition: CscRealEntitiesCollector.h:32
conscience_core::core_objects::entities::CscNetworkEntityData::enginePort
const string enginePort
Definition: CscRealEntitiesCollector.h:39
conscience_core::core_objects::entities::CscNetworkEntityData::name
const string name
Definition: CscRealEntitiesCollector.h:31
conscience_core::core_objects::entities::CscRealEntitiesCollector
Definition: CscRealEntitiesCollector.h:66
conscience_core::core_objects::entities::CscNetworkEntityData::provider
const string provider
Definition: CscRealEntitiesCollector.h:37
conscience_core::core_objects::entities::CscNetworkEntityData::modelId
const string modelId
Definition: CscRealEntitiesCollector.h:33
conscience_core::core_objects::entities::CscNetworkEntityData::owner
const string owner
Definition: CscRealEntitiesCollector.h:34
conscience_core::core_objects::entities
Definition: CscRealEntityMessageHandler.cpp:19
nlohmann::detail::void
j template void())
Definition: json.hpp:4189
CscCommon.h
Csc3dTypes.h
conscience_core::core_objects::entities::CscNetworkEntityData::useGnssPositioning
const bool useGnssPositioning
Definition: CscRealEntitiesCollector.h:42
conscience_core::communication
Definition: CscEntityClient.h:6
conscience_core::communication::logger
static auto logger
Definition: AsioContext.cpp:15
conscience_core::core_objects::entities::CscNetworkEntityData::ip
const string ip
Definition: CscRealEntitiesCollector.h:41
conscience_core::core_objects::entities::CscNetworkEntityData::localProjection
const optional< string > localProjection
Definition: CscRealEntitiesCollector.h:44
conscience_core::communication::CscMessagingManager
Definition: CscMessagingManager.h:27
conscience_core::bridging::commands::environment_objects::optional< string >
const ptr< CscObjectModel > const string const CscPoint3d const CscPoint3d optional< string >
Definition: environmentObjectsCommands.h:373
conscience_core::core_objects::entities::CscRealEntitiesCollectorMessagingHandler
Definition: CscRealEntitiesCollector.cpp:8
conscience_core::core_objects::entities::EntitiesCollectAutoStop
Definition: CscRealEntitiesCollector.h:51