EgoClient.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #pragma once
  2. #include "message_queue.h"
  3. #include "api.h"
  4. #define WM_NOTIFY_CONNECTED WM_APP+100
  5. class IEgoNotify;
  6. class CEgoWindow;
  7. class IRender;
  8. #include "../common/sensor_socket.h"
  9. #include "./include/EgoInterface.h"
  10. class CControlSensor;
  11. class CCarSim;
  12. class COutSim;
  13. class CRadarSim;
  14. #ifdef LIDAR_SENSOR
  15. class CLidarSim;
  16. #endif
  17. class CEgoClient : public INativeNotify
  18. {
  19. public:
  20. CEgoClient(IEgoNotify * C);
  21. void Login(std::string account, std::string pass);
  22. void OnCarConnect(int32_t peer);
  23. void OnCarLeave();
  24. void ReqCarList();
  25. void Start(std::array<IRender*, RenderPosition::ALL>& ar);
  26. void OnRadarData(int32_t r0, int32_t r1, int32_t r2, int32_t r3, int32_t r4, int32_t r5);
  27. void OnImuData(int32_t x, int32_t y);
  28. void OnPingValue(int32_t value);
  29. void OnStopAck();
  30. void OnBootstrapd(bool ret);
  31. void OnStartupd(bool ret);
  32. ControlStatus CheckStatus();
  33. //virtual void Process(CIOBuffer* pBuffer) override;
  34. virtual void OnRobot(const RemoNet::Robot& robot) override;
  35. virtual void OnConnected(bool bRet) override;
  36. virtual void OnSigin(bool bRet)override;
  37. virtual void OnVideoRep(int32_t index, int32_t peer) override;
  38. virtual void OnVideoOffer(int32_t index, const char* type, const char* sdp) override;
  39. virtual void OnVideoAnswer(int32_t index, const char* type, const char* sdp) override;
  40. virtual void OnVideoCandidate(int32_t index, const char* candidate, int32_t sdp_mline_index, const char* sdp_mid) override;
  41. virtual void OnNotifyDel(int32_t peer, EgoType type) override;
  42. virtual void OnVideoLeave(int32_t peer, EgoType type) override;
  43. virtual void OnNotifyKick() override;
  44. virtual void OnMessageFrameNotify(ChannelType type, int16_t cmd, int16_t length, const void* data) override;
  45. #ifdef LIDAR_SENSOR
  46. virtual void OnLidarData(bool isLeft, bool isDense, int32_t seq, PointXYZI* data, int32_t length) override;
  47. #endif
  48. private:
  49. std::unique_ptr<SocketClient> _client;
  50. int32_t _carpeer;
  51. std::string _account;
  52. std::string _pass;
  53. IEgoNotify* _notify;
  54. bool _connected;
  55. std::vector<std::unique_ptr<UserCamera> > _userInfo;
  56. CUpdateThread _updateThread;
  57. std::vector<std::unique_ptr<CEgoWindow>> _WindowArray;
  58. std::unique_ptr<SensorSocket<CControlSensor>> _control;
  59. std::unique_ptr<CCarSim> _carsim;
  60. std::unique_ptr<COutSim> _outsim;
  61. std::unique_ptr<CRadarSim> _radarsim;
  62. #ifdef LIDAR_SENSOR
  63. std::unique_ptr<CLidarSim> _lidarsim;
  64. #endif
  65. std::uniform_int_distribution<int> _u;
  66. std::default_random_engine _e;
  67. };