ControlSensor.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #pragma once
  2. #include <thread>
  3. #include "../common/sensor_socket.h"
  4. class CThreadWindow;
  5. enum Sensor_Collection:int32_t
  6. {
  7. Sensor_None = 0x0,
  8. Sensor_Task = 0x1,
  9. Sensor_Left = 0x2,
  10. Sensor_Right = 0x4,
  11. Sensor_All = 0x7
  12. };
  13. enum OpSide
  14. {
  15. Empty,
  16. Arm,
  17. Bucket
  18. };
  19. class CControlSensor
  20. {
  21. public:
  22. CControlSensor(CThreadWindow* dlg);
  23. void Start();
  24. void Stop();
  25. void Notify(int8_t* buffer, int32_t size);
  26. void SetSensorSocket(SensorSocket<CControlSensor>* can);
  27. void OnBootstrapd(bool ret);
  28. void OnStartupd(bool ret);
  29. private:
  30. bool OnSignal(int8_t* data);
  31. bool OnLeftJoyStick(int8_t* data);
  32. bool OnRightJoyStick(int8_t * data);
  33. private:
  34. std::thread _thread;
  35. bool _run;
  36. CThreadWindow* _window;
  37. int32_t _steer;
  38. int32_t _arm;
  39. int32_t _bucket;
  40. int32_t _brake;
  41. int32_t _throttle;
  42. Sensor_Collection _collection;
  43. volatile bool _bootstrap=false;
  44. volatile bool _bootstrapd = false;
  45. volatile bool _oping = false;
  46. volatile bool _startup = false;
  47. volatile bool _startupd = false;
  48. volatile bool _emergenyd = false; //¼±Í£
  49. volatile bool _resume = false;
  50. volatile bool _resumed = false;
  51. RemoNet::Gears _gear;
  52. OpSide _side;
  53. };