12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #ifndef CANRECV_CONSUMER_H
- #define CANRECV_CONSUMER_H
- #include <QObject>
- #include <QTimer>
- #include <QDateTime>
- #include <QThread>
- #include "modulecomm.h"
- #include "radarobjectarray.pb.h"
- #include "can_producer_consumer.h"
- #include "decode_cfg.h"
- #include "iv_msgunit.h"
- #define RADAR_OBJ_MAX_NUM 128
- class CANRecv_Consumer : public QThread
- {
- Q_OBJECT
- public:
- CANRecv_Consumer(CAN_Producer_Consumer *pBuf);
- ~CANRecv_Consumer();
- void Clear_CAN_PrivateTempVariable(void);
- protected:
- void run();
- uint32_t Trans_From_CANRaw(const iv::can::canraw &xraw); //only for standard data frame, return can id
- void Pack_Info_To_SHM_ch0(uint32_t can_id);
- void Pack_Info_To_SHM_ch1(uint32_t can_id);
- void Pack_Info_To_SHM_ch2(uint32_t can_id);
- void Pack_Info_To_SHM_ch3(uint32_t can_id);
- void Pack_Info_To_SHM_ch4(uint32_t can_id);
- void Pack_Info_To_SHM_ch5(uint32_t can_id);
- void Pack_Info_To_SHM_ch6(uint32_t can_id);
- void Pack_Info_To_SHM_ch7(uint32_t can_id);
- //ro trans phy 3
- double Trans_DVA_RMS_Ro_To_Phy(uint8_t data);
- double Trans_Ori_RMS_Ro_To_Phy(uint8_t data);
- double Trans_ProbOfExist_Ro_To_Phy(uint8_t data);
- //rotation and translation
- void Rotate_Translate(double &x,double &y,double theta,double offset_x,double offset_y); //RFU,deg
- signals:
- void RadarObjectArray_Ready(void);
- private slots:
- void RadarObjectArray_Ready_Slot(void);
- private:
- CAN_Producer_Consumer *pBuffer;
- uint8_t radarType = 0; //0 ARS408-21xx 1 ARS408-21sc3 2 SRR308
- uint32_t CAN_ID = 0x000u;
- uint8_t CAN_DLC = 0;
- uint8_t CAN_data[8] = {0};
- ars408_can_database_ch0_rx_t ars408_can_database_ch0_rx;
- ars408_can_database_ch1_rx_t ars408_can_database_ch1_rx;
- ars408_can_database_ch2_rx_t ars408_can_database_ch2_rx;
- ars408_can_database_ch3_rx_t ars408_can_database_ch3_rx;
- ars408_can_database_ch4_rx_t ars408_can_database_ch4_rx;
- ars408_can_database_ch5_rx_t ars408_can_database_ch5_rx;
- ars408_can_database_ch6_rx_t ars408_can_database_ch6_rx;
- ars408_can_database_ch7_rx_t ars408_can_database_ch7_rx;
- iv::radar::radarobjectarray xradarObjArray;
- QVector<iv::radar::radarobject> vradarObj;
- QVector<bool> radarObjFreshFlag;
- bool persistent_Error = false; //notice if multi thread, these param need a mutex lock
- bool interference_Error = false; //
- bool temperature_Error = false; //
- bool temporary_Error = false; //
- bool voltage_Error = false; //
- bool speed_Loss = false; //
- bool yaw_Rate_Loss = false; //
- std::string radar_Version = "4.30.1"; //
- iv::radar::radarobjectarray radarObjArray_Send;
- QMutex radarObjArraySend_Lock;
- };
- #endif // CANRECV_CONSUMER_H
|