p900.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #ifndef HCP2_H
  2. #define HCP2_H
  3. #include "all_head.h"
  4. extern VehicleStatus back_car;
  5. void formationcontrol(VehicleStatus Master,VehicleStatus Slave,VehicleStatus *formationD,unsigned char controlMode);
  6. enum ins550DecodeType
  7. {
  8. i16 = 1,i32 = 2,u8 = 3,u32 = 4
  9. };
  10. void Listen_gpsimu(const char * _strdata,const unsigned int _nSize,const unsigned int _index,const QDateTime * _dt,const char * _strmemname);
  11. class radio : public QThread
  12. {
  13. Q_OBJECT
  14. public:
  15. QByteArray mserial_send_data;
  16. iv::gps::gpsimu mgpsimu_mem_data;
  17. CarStatusData * mcar_status_data;
  18. radio(const char * struartdev,const char * strmsgradio_name_send, const char * strmsgradio_car_id, \
  19. const char * strmemgps, const char * strmemmap_index, const char * strcollision_index);
  20. ~radio();
  21. private slots:
  22. void onTimer();
  23. void onTimerServer();
  24. void receiveData();
  25. private:
  26. bool mbSerialOpen;
  27. QSerialPort *m_serialPort_Radio;
  28. int mnNotRecvCount;
  29. qint64 mnLastOpenTime;
  30. QString mstrRadio;
  31. uint8_t mcar_id;
  32. uint8_t mcollision_point;//碰撞点
  33. QByteArray mserial_recv_data;
  34. iv::radio::radio_send mradio_protobuf_send;
  35. iv::formation_map_index::map mmap_protobuf_index;
  36. void * mpmem_radio_send_addr = nullptr; //电台发送给brain数据地址
  37. void * mpmem_radio_gps_addr = nullptr; //电台接收brain数据地址
  38. void * mpmem_map_addr = nullptr;
  39. void * mpmem_collisionIndex_addr = nullptr;
  40. qint64 mnLastServerDataTime;
  41. QTime mTime;
  42. bool mserver_status;
  43. int virtual_gps_index_counter;
  44. int mset_cmd_mode;
  45. double mcar_control_speed;
  46. int mserver_map_index;
  47. int mcar_map_index;
  48. int micur_maptrace_index;
  49. bool mbRunPause;
  50. QVector<std::string> mvmap_name;
  51. void run();
  52. bool serialPortInit(const char * struartdev);
  53. bool preprocData();
  54. void radioServerDataDecode();
  55. void radioServerDataDecodeSen(const uint8_t *_data);
  56. bool checkSum(const uint32_t _index);
  57. void protoMsgSend();
  58. void mapProtoMsgSend();
  59. void serialData_Decode(QByteArray rx_data);
  60. void mapInit();
  61. void recvCurMapIndex(const char * _strdata,const unsigned int _nSize,const unsigned int _index,const QDateTime * _dt,const char * _strmemname);//从maptrace监听当前map index
  62. void recvBrainCMD(const char *_strdata, const int _nSize,const unsigned int _index,const QDateTime * _dt,const char * _strmemname);
  63. };
  64. #endif // p900_H