Conscience Core
CscRealEntityMessageHandler.h
Go to the documentation of this file.
1 #ifndef CscRealEntityMessageHandler_h
2 #define CscRealEntityMessageHandler_h
3 
8 
9 #include <Axiomes/Csc3dTypes.h>
10 #include <mutex>
11 
12 using namespace conscience_core::communication;
13 using std::unordered_map, std::mutex, std::unique_lock;
14 using namespace conscience_core::axiomes;
15 
17 
20 
25 
30 };
31 
33 public:
38  CscRealEntityMessageHandler(bool ignoreNewEntity, CscEnvironmentSimulator &environmentSimulator);
40 
45  std::tuple<bool, optional<CscMessageHandlerResult>, optional<string>> handleMessage(const string &rawMessage, ptr<CscMessagingRequestContext> context) override;
46 
47  optional<CscMessageHandlerResult> handleMessage(const string &messageSubject, const vector<string> &args, optional<int> knowledgeId, ptr<CscMessagingRequestContext> context) override;
48 
49  optional<string> handleLowLevelMessage(const string &message) override;
50 
51  static bool handleFullStatus(const vector<string> *commandArguments);
52  static bool handleCurrentLidar(const vector<string> &commandArguments);
53  static void sendPositionToEntity(const CscPoint3dOriented *position, const string &serialNumber, const string &timeStampParams = "");
54  static void sendPositionToEntity(const CscPoint3dOriented *position, const ptr<CscEntityReflexion> &entityReflexion, const string &timeStampParams = "");
55  static void sendLiveTargetForSlaveUpdate(const CscPoint3d *position, const string serialNumber, float distance, float altitudeToFollow);
56  static void sendSequenceStop(const string &serialNumber);
57 
67  static EntityReflexionWithOptions handleMyProfile(const vector<string> &commandArguments, CscEnvironmentSimulator &env, string remoteIp, int remotePort, bool ignoreNewEntity = false);
68 
69 private:
70  inline static unordered_map<string, mutex> fullStatusHandlingMutexesBySerialNumber;
71 
72  static void performStateFromFullstatus(const vector<string> *commandArguments);
73  static void performAdditionalParamsFromFullstatus(const vector<string> *commandArguments);
74  static CscPoint3dOriented *getXYZPositionFromFullstatus(const vector<string> *commandArguments);
75  static CscPoint3dOriented *getGnssPositionFromFullstatus(const vector<string> *commandArguments);
76 
80  bool ignoreNewEntity;
81 
82  CscEnvironmentSimulator &environmentSimulator;
83 };
84 
85 }
86 
87 #endif
conscience_core::core_objects::entities::EntityReflexionWithOptions::isStartPersistedCommandNeeded
bool isStartPersistedCommandNeeded
Definition: CscRealEntityMessageHandler.h:29
conscience_core::axiomes::CscPoint3d
The CscPoint3d class represents a point in three-dimensional space. It is primarily used to denote a ...
Definition: Csc3dTypes.h:24
CSC_DLL_IMPORTEXPORT
#define CSC_DLL_IMPORTEXPORT
Definition: os.h:34
conscience_core::axiomes
Definition: Csc2dTypes.cpp:9
CscMessageHandler.h
conscience_core::core_objects::entities::EntityReflexionWithOptions::isItFirstLoad
bool isItFirstLoad
Definition: CscRealEntityMessageHandler.h:24
CscEntityReflexion.h
CscRealEntity3dLidarValues.h
conscience_core::core_objects::entities
Definition: CscRealEntityMessageHandler.cpp:20
Csc3dTypes.h
conscience_core::core_objects::entities::EntityReflexionWithOptions
Definition: CscRealEntityMessageHandler.h:18
CscEnvironmentSimulator.h
conscience_core::communication
Definition: CscEntityClient.h:6
conscience_core::core_objects::entities::EntityReflexionWithOptions::entityReflexion
ptr< CscEntityReflexion > entityReflexion
Definition: CscRealEntityMessageHandler.h:19
CscEnvironmentSimulator
Definition: CscEnvironmentSimulator.h:31
conscience_core::communication::CscMessageHandler
Definition: CscMessageHandler.h:31
conscience_core::axiomes::CscPoint3dOriented
Definition: Csc3dTypes.h:277
conscience_core::bridging::commands::environment_objects::optional< string >
const ptr< CscObjectModel > const string const CscPoint3d const CscPoint3d optional< string >
Definition: environmentObjectsCommands.h:373
ptr
std::shared_ptr< T > ptr
Definition: CscCommon.h:29
conscience_core::core_objects::entities::CscRealEntityMessageHandler
Definition: CscRealEntityMessageHandler.h:32