Conscience Core
CscLidar2DEngineSimulated.h
Go to the documentation of this file.
1 
2 #include "CscCommon.h"
3 #include "Lidar/CscLidarEngine.h"
5 
6 #include <thread>
7 #include <chrono>
8 using std::chrono::steady_clock;
9 namespace chrono = std::chrono;
10 namespace conscience_core::lidar {
11 
16 public:
17  CscLidar2DEngineSimulated(const string &entitySerialNumber, CscEnvironmentSimulator &globalEnvironmentSimulator, double maxDistance = 5000, unsigned int numberOfValues = 720);
18  void startEngine() override;
19  void stopEngine() override;
20  ~CscLidar2DEngineSimulated() override;
21 
25  void keepValues();
26 
27 private:
28  CscEnvironmentSimulator &globalEnvironmentSimulator;
29  const string entitySerialNumber;
30  bool threadRunning = false;
31  bool keepValuesEnabled = false;
32  thread *updateValuesThread;
33  void updateValues();
34  void initThread();
35  void updateLidarValuesThreadActionLoop();
36  unsigned int numberOfValues;
37  const double maxDistance;
38 
39  optional<CscPoint3d> lastRobotPosition = {};
40  optional<double> lastRobotYaw = {};
41  optional<steady_clock::time_point> odometryLastTime = {};
42 };
43 
44 }
conscience_core::lidar::CscLidarEngine
Definition: CscLidarEngine.h:246
conscience_core::lidar
Definition: CscEntityReflexion.h:42
conscience_core::lidar::CscLidar2DEngineSimulated
Definition: CscLidar2DEngineSimulated.h:15
conscience_core::lidar::CscLidar2DEngineSimulated::CscLidar2DEngineSimulated
CscLidar2DEngineSimulated(const string &entitySerialNumber, CscEnvironmentSimulator &globalEnvironmentSimulator, double maxDistance=5000, unsigned int numberOfValues=720)
Definition: CscLidar2DEngineSimulated.cpp:9
conscience_core::lidar::CscLidar2DEngineSimulated::stopEngine
void stopEngine() override
Definition: CscLidar2DEngineSimulated.cpp:25
CscLidarEngine.h
CscCommon.h
conscience_core::lidar::CscLidar2DEngineSimulated::~CscLidar2DEngineSimulated
~CscLidar2DEngineSimulated() override
Definition: CscLidar2DEngineSimulated.cpp:14
conscience_core::bridging::commands::environment_objects::optional< double >
const ptr< CscObjectModel > const string const CscPoint3d const CscPoint3d optional< double >
Definition: environmentObjectsCommands.h:367
conscience_core::lidar::CscLidar2DEngineSimulated::keepValues
void keepValues()
Definition: CscLidar2DEngineSimulated.cpp:17
CscEnvironmentSimulator.h
CscEnvironmentSimulator
Definition: CscEnvironmentSimulator.h:31
conscience_core::lidar::CscLidar2DEngineSimulated::startEngine
void startEngine() override
Definition: CscLidar2DEngineSimulated.cpp:21