PIDSClientResultMsg.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #pragma once
  2. #include <iostream>
  3. #include "PIDSDataDefine.h"
  4. using namespace std;
  5. class PIDSClientResultMsg
  6. {
  7. public:
  8. // 时间
  9. PIDSTime time;
  10. // 列车线路号
  11. int TrainLine;
  12. int Train;
  13. // 拥挤度
  14. int8_t Crowdedness_1;
  15. // 1号车厢人数
  16. int16_t Num_1;
  17. // 拥挤度
  18. int8_t Crowdedness_2;
  19. // 2号车厢人数
  20. int16_t Num_2;
  21. // 拥挤度
  22. int8_t Crowdedness_3;
  23. // 3号车厢人数
  24. int16_t Num_3;
  25. // 拥挤度
  26. int8_t Crowdedness_4;
  27. // 4号车厢人数
  28. int16_t Num_4;
  29. // 拥挤度
  30. int8_t Crowdedness_5;
  31. // 5号车厢人数
  32. int16_t Num_5;
  33. // 拥挤度
  34. int8_t Crowdedness_6;
  35. // 6号车厢人数
  36. int16_t Num_6;
  37. public:
  38. PIDSClientResultMsg(){}
  39. ~PIDSClientResultMsg(){}
  40. void Serialization(uint8_t* data, int len)
  41. {
  42. memset(data, 0, 1024);
  43. data[0] = PIDS_DATA_HEAD;
  44. data[1] = PIDS_SRC_TC1;
  45. data[2] = PIDS_SRC_TYPE_MIVA;
  46. // IP
  47. data[3] = 172;
  48. data[4] = 0;
  49. data[5] = 0;
  50. data[6] = 1;
  51. int16_t length = 36;
  52. data[7] = (length & 0x00FF);
  53. data[8] = (length & 0xFF00) >> 8;
  54. // 填充数据
  55. // Time
  56. data[9] = 21;
  57. data[10] = 12;
  58. data[11] = 1;
  59. data[12] = 2;
  60. data[13] = 3;
  61. data[14] = 6;
  62. data[15] = this->TrainLine;
  63. data[16] = this->Train;
  64. data[17] = this->Crowdedness_1;
  65. data[18] = (this-> Num_1 & 0x00FF);
  66. data[19] = (this-> Num_1 & 0xFF00) >> 8;
  67. data[20] = this->Crowdedness_2;
  68. data[21] = (this-> Num_2 & 0x00FF);
  69. data[22] = (this-> Num_2 & 0xFF00) >> 8;
  70. data[23] = this->Crowdedness_3;
  71. data[24] = (this-> Num_3 & 0x00FF);
  72. data[25] = (this-> Num_3 & 0xFF00) >> 8;
  73. data[26] = this->Crowdedness_4;
  74. data[27] = (this-> Num_4 & 0x00FF);
  75. data[28] = (this-> Num_4 & 0xFF00) >> 8;
  76. data[29] = this->Crowdedness_5;
  77. data[30] = (this-> Num_5 & 0x00FF);
  78. data[31] = (this-> Num_5 & 0xFF00) >> 8;
  79. data[32] = this->Crowdedness_6;
  80. data[33] = (this-> Num_6 & 0x00FF);
  81. data[34] = (this-> Num_6 & 0xFF00) >> 8;
  82. int16_t crc = Crc16::GetCRC16(data, 9, length);
  83. data[45] = (crc & 0x00FF);
  84. data[46] = (crc & 0xFF00) >> 8;
  85. // 数据尾
  86. data[47] = PIDS_DATA_END;
  87. }
  88. };