Conscience Core
CscRealEntityMessageHandler.h
Go to the documentation of this file.
1 #ifndef CscRealEntityMessageHandler_h
2 #define CscRealEntityMessageHandler_h
3 
4 
8 #include <Axiomes/Csc3dTypes.h>
9 #include <mutex>
10 
11 using namespace conscience_core::communication;
12 using std::unordered_map, std::mutex, std::unique_lock;
13 using namespace conscience_core::axiomes;
14 
16 
19 
24 
29 };
30 
32 public:
33 
38  CscRealEntityMessageHandler(bool ignoreNewEntity, CscEnvironmentSimulator &environmentSimulator);
40 
41  optional<CscMessageHandlerResult> handleMessage(const string &messageSubject, const vector<string> &args, optional<int> knowledgeId, ptr<CscMessagingRequestContext> context) override;
42 
43  optional<string> handleLowLevelMessage(const string &message) override;
44 
45  static bool handleFullStatus(const vector<string> *commandArguments);
46  static bool handleCurrentLidar(const vector<string> &commandArguments);
47  static void sendPositionToEntity(const CscPoint3dOriented *position, const string &serialNumber);
48  static void sendPositionToEntity(const CscPoint3dOriented *position, const ptr<CscEntityReflexion> &entityReflexion);
49  static void sendLiveTargetForSlaveUpdate(const CscPoint3dOriented *position, const string serialNumber, float distance, float altitudeToFollow);
50  static void sendSequenceStop(const string &serialNumber);
51 
61  static EntityReflexionWithOptions handleMyProfile(const vector<string> &commandArguments,CscEnvironmentSimulator & env, string remoteIp, int remontePort, bool ignoreNewEntity = false);
62 private:
63  inline static unordered_map<string, mutex> fullStatusHandlingMutexesBySerialNumber;
64 
65  static void performStateFromFullstatus(const vector<string> *commandArguments);
66  static void performAdditionalParamsFromFullstatus(const vector<string> *commandArguments);
67  static CscPoint3dOriented *getXYZPositionFromFullstatus(const vector<string> *commandArguments);
68  static CscPoint3dOriented *getGnssPositionFromFullstatus(const vector<string> *commandArguments);
69 
73  bool ignoreNewEntity;
74 
75  CscEnvironmentSimulator &environmentSimulator;
76 };
77 
78 }
79 
80 #endif
conscience_core::core_objects::entities::EntityReflexionWithOptions::isStartPersistedCommandNeeded
bool isStartPersistedCommandNeeded
Definition: CscRealEntityMessageHandler.h:28
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:23
CscEntityReflexion.h
conscience_core::core_objects::entities
Definition: CscRealEntityMessageHandler.cpp:19
Csc3dTypes.h
conscience_core::core_objects::entities::EntityReflexionWithOptions
Definition: CscRealEntityMessageHandler.h:17
CscEnvironmentSimulator.h
conscience_core::communication
Definition: CscEntityClient.h:6
conscience_core::core_objects::entities::EntityReflexionWithOptions::entityReflexion
ptr< CscEntityReflexion > entityReflexion
Definition: CscRealEntityMessageHandler.h:18
CscEnvironmentSimulator
Definition: CscEnvironmentSimulator.h:31
conscience_core::communication::CscMessageHandler
Definition: CscMessageHandler.h:32
conscience_core::axiomes::CscPoint3dOriented
Definition: Csc3dTypes.h:265
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:31