PIDSClientResultMsg.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #pragma once
  2. #include <iostream>
  3. #include "PIDSDataDefine.h"
  4. #include <map>
  5. using namespace std;
  6. class PIDSClientResultMsg
  7. {
  8. public:
  9. // 列车线路号
  10. int TrainLine;
  11. int Train;
  12. std::map<int, ResultData> data;
  13. public:
  14. PIDSClientResultMsg(){}
  15. ~PIDSClientResultMsg(){}
  16. void Serialization(uint8_t* data)
  17. {
  18. data[0] = PIDS_DATA_HEAD;
  19. data[1] = PIDS_SRC_TC1;
  20. data[2] = PIDS_SRC_TYPE_MIVA;
  21. // IP
  22. data[3] = 172;
  23. data[4] = 0;
  24. data[5] = 0;
  25. data[6] = 1;
  26. int16_t length = 36;
  27. data[7] = (length & 0x00FF);
  28. data[8] = (length & 0xFF00) >> 8;
  29. // 填充数据
  30. // Time
  31. getBCDTime(data + 9);
  32. data[15] = this->TrainLine;
  33. data[16] = this->Train;
  34. int id = 0;
  35. for(int i = 0; i < 18; i+=3)
  36. {
  37. data[17+i] = this->data[id].Grade;
  38. data[18+i] = (this->data[id].Num & 0x00FF);
  39. data[19+i] = (this->data[id].Num & 0xFF00) >> 8;
  40. id++;
  41. }
  42. int16_t crc = Crc16::GetCRC16(data, 9, length);
  43. data[45] = (crc & 0xFF00) >> 8;
  44. data[46] = (crc & 0x00FF);
  45. // 数据尾
  46. data[47] = PIDS_DATA_END;
  47. }
  48. void ObjectToJson(std::string& json)
  49. {
  50. json+="\r\n";
  51. }
  52. };