#ifndef HCP2_H #define HCP2_H #include "all_head.h" extern VehicleStatus back_car; void formationcontrol(VehicleStatus Master,VehicleStatus Slave,VehicleStatus *formationD,unsigned char controlMode); enum ins550DecodeType { i16 = 1,i32 = 2,u8 = 3,u32 = 4 }; void Listen_gpsimu(const char * _strdata,const unsigned int _nSize,const unsigned int _index,const QDateTime * _dt,const char * _strmemname); class radio : public QThread { Q_OBJECT public: QByteArray mserial_send_data; iv::gps::gpsimu mgpsimu_mem_data; CarStatusData * mcar_status_data; radio(const char * struartdev,const char * strmsgradio_name_send, const char * strmsgradio_car_id, \ const char * strmemgps, const char * strmemmap_index, const char * strcollision_index); ~radio(); private slots: void onTimer(); void onTimerServer(); void receiveData(); private: bool mbSerialOpen; QSerialPort *m_serialPort_Radio; int mnNotRecvCount; qint64 mnLastOpenTime; QString mstrRadio; uint8_t mcar_id; uint8_t mcollision_point;//碰撞点 QByteArray mserial_recv_data; iv::radio::radio_send mradio_protobuf_send; iv::formation_map_index::map mmap_protobuf_index; void * mpmem_radio_send_addr = nullptr; //电台发送给brain数据地址 void * mpmem_radio_gps_addr = nullptr; //电台接收brain数据地址 void * mpmem_map_addr = nullptr; void * mpmem_collisionIndex_addr = nullptr; qint64 mnLastServerDataTime; QTime mTime; bool mserver_status; int virtual_gps_index_counter; int mset_cmd_mode; double mcar_control_speed; int mserver_map_index; int mcar_map_index; int micur_maptrace_index; bool mbRunPause; QVector mvmap_name; void run(); bool serialPortInit(const char * struartdev); bool preprocData(); void radioServerDataDecode(); void radioServerDataDecodeSen(const uint8_t *_data); bool checkSum(const uint32_t _index); void protoMsgSend(); void mapProtoMsgSend(); void serialData_Decode(QByteArray rx_data); void mapInit(); void recvCurMapIndex(const char * _strdata,const unsigned int _nSize,const unsigned int _index,const QDateTime * _dt,const char * _strmemname);//从maptrace监听当前map index void recvBrainCMD(const char *_strdata, const int _nSize,const unsigned int _index,const QDateTime * _dt,const char * _strmemname); }; #endif // p900_H