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 
13 public:
14  CscLidar2DEngineSimulated(const string &entitySerialNumber, CscEnvironmentSimulator &globalEnvironmentSimulator, double maxDistance = 5000, unsigned int numberOfValues = 720);
15  void startEngine() override;
16  void stopEngine() override;
17  ~CscLidar2DEngineSimulated() override;
18  void keepValues();
19 
20 private:
21  CscEnvironmentSimulator &globalEnvironmentSimulator;
22  const string entitySerialNumber;
23  bool threadRunning = false;
24  bool keepValuesEnabled = false;
25  thread *updateValuesThread;
26  void updateValues();
27  void initThread();
28  void updateLidarValuesThreadActionLoop();
29  unsigned int numberOfValues;
30  const double maxDistance;
31 
32  optional<CscPoint3d> lastRobotPosition = {};
33  optional<double> lastRobotYaw = {};
34  optional<steady_clock::time_point> odometryLastTime = {};
35 };
36 
37 }
conscience_core::lidar::CscLidarEngine
Definition: CscLidarEngine.h:60
conscience_core::lidar
Definition: CscEntityReflexion.h:42
conscience_core::lidar::CscLidar2DEngineSimulated
Definition: CscLidar2DEngineSimulated.h:12
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:35
conscience_core::lidar::CscLidar2DEngineSimulated::startEngine
void startEngine() override
Definition: CscLidar2DEngineSimulated.cpp:21