#ifndef SDI_DATARECV_CONSUMER_H #define SDI_DATARECV_CONSUMER_H #include #include #include #include #include "modulecomm.h" #include "ultrasonic.pb.h" #include "byte_qvector_producer_consumer.h" #include "decode_cfg.h" #include "iv_msgunit.h" #ifndef DIST_ERROR #define DIST_ERROR 50000 //50000mm #endif union BYTES2UINT { uint16_t wordData = 0; uint8_t byteData[2]; }; class SDI_DataRecv_Consumer : public QThread { Q_OBJECT public: SDI_DataRecv_Consumer(Byte_Qvector_Producer_Consumer *pBuf); ~SDI_DataRecv_Consumer(); protected: void run(); private: void Clear_Sensor_Data(void); void ResultFilterAndPublish(void); void BubbleSort(QVector &sensorTOF, QVector &sensorMagnitude); Byte_Qvector_Producer_Consumer *pBuffer; uint16_t SDI_payload_size = 0; uint8_t SDI_sensor_CNT = 0; uint16_t SDI_TX_Mask = 0; QVector sensorTOF_0; QVector sensorTOF_1; QVector sensorTOF_2; QVector sensorTOF_3; QVector sensorTOF_4; QVector sensorTOF_5; QVector sensorTOF_6; QVector sensorTOF_7; QVector sensorTOF_8; QVector sensorTOF_9; QVector sensorTOF_10; QVector sensorTOF_11; QVector sensorMagnitude_0; QVector sensorMagnitude_1; QVector sensorMagnitude_2; QVector sensorMagnitude_3; QVector sensorMagnitude_4; QVector sensorMagnitude_5; QVector sensorMagnitude_6; QVector sensorMagnitude_7; QVector sensorMagnitude_8; QVector sensorMagnitude_9; QVector sensorMagnitude_10; QVector sensorMagnitude_11; }; #endif // SDI_DATARECV_CONSUMER_H