sdi_datarecv_consumer.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #ifndef SDI_DATARECV_CONSUMER_H
  2. #define SDI_DATARECV_CONSUMER_H
  3. #include <QObject>
  4. #include <QTimer>
  5. #include <QDateTime>
  6. #include <QThread>
  7. #include "modulecomm.h"
  8. #include "ultrasonic.pb.h"
  9. #include "byte_qvector_producer_consumer.h"
  10. #include "decode_cfg.h"
  11. #include "iv_msgunit.h"
  12. #ifndef DIST_ERROR
  13. #define DIST_ERROR 50000 //50000mm
  14. #endif
  15. union BYTES2UINT
  16. {
  17. uint16_t wordData = 0;
  18. uint8_t byteData[2];
  19. };
  20. class SDI_DataRecv_Consumer : public QThread
  21. {
  22. Q_OBJECT
  23. public:
  24. SDI_DataRecv_Consumer(Byte_Qvector_Producer_Consumer *pBuf);
  25. ~SDI_DataRecv_Consumer();
  26. protected:
  27. void run();
  28. private:
  29. void Clear_Sensor_Data(void);
  30. void ResultFilterAndPublish(void);
  31. void BubbleSort(QVector<uint16_t> &sensorTOF, QVector<uint16_t> &sensorMagnitude);
  32. Byte_Qvector_Producer_Consumer *pBuffer;
  33. uint16_t SDI_payload_size = 0;
  34. uint8_t SDI_sensor_CNT = 0;
  35. uint16_t SDI_TX_Mask = 0;
  36. QVector<uint16_t> sensorTOF_0;
  37. QVector<uint16_t> sensorTOF_1;
  38. QVector<uint16_t> sensorTOF_2;
  39. QVector<uint16_t> sensorTOF_3;
  40. QVector<uint16_t> sensorTOF_4;
  41. QVector<uint16_t> sensorTOF_5;
  42. QVector<uint16_t> sensorTOF_6;
  43. QVector<uint16_t> sensorTOF_7;
  44. QVector<uint16_t> sensorTOF_8;
  45. QVector<uint16_t> sensorTOF_9;
  46. QVector<uint16_t> sensorTOF_10;
  47. QVector<uint16_t> sensorTOF_11;
  48. QVector<uint16_t> sensorMagnitude_0;
  49. QVector<uint16_t> sensorMagnitude_1;
  50. QVector<uint16_t> sensorMagnitude_2;
  51. QVector<uint16_t> sensorMagnitude_3;
  52. QVector<uint16_t> sensorMagnitude_4;
  53. QVector<uint16_t> sensorMagnitude_5;
  54. QVector<uint16_t> sensorMagnitude_6;
  55. QVector<uint16_t> sensorMagnitude_7;
  56. QVector<uint16_t> sensorMagnitude_8;
  57. QVector<uint16_t> sensorMagnitude_9;
  58. QVector<uint16_t> sensorMagnitude_10;
  59. QVector<uint16_t> sensorMagnitude_11;
  60. };
  61. #endif // SDI_DATARECV_CONSUMER_H