123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- #pragma once
- #include <iostream>
- #include "PIDSDataDefine.h"
- using namespace std;
- class PIDSClientResultMsg
- {
- public:
- // 时间
- PIDSTime time;
- // 列车线路号
- int TrainLine;
- int Train;
- // 拥挤度
- int8_t Crowdedness_1;
- // 1号车厢人数
- int16_t Num_1;
- // 拥挤度
- int8_t Crowdedness_2;
- // 2号车厢人数
- int16_t Num_2;
- // 拥挤度
- int8_t Crowdedness_3;
- // 3号车厢人数
- int16_t Num_3;
- // 拥挤度
- int8_t Crowdedness_4;
- // 4号车厢人数
- int16_t Num_4;
- // 拥挤度
- int8_t Crowdedness_5;
- // 5号车厢人数
- int16_t Num_5;
- // 拥挤度
- int8_t Crowdedness_6;
- // 6号车厢人数
- int16_t Num_6;
-
- public:
- PIDSClientResultMsg(){}
- ~PIDSClientResultMsg(){}
- void Serialization(uint8_t* data, int len)
- {
- memset(data, 0, 1024);
- data[0] = PIDS_DATA_HEAD;
- data[1] = PIDS_SRC_TC1;
- data[2] = PIDS_SRC_TYPE_MIVA;
- // IP
- data[3] = 172;
- data[4] = 0;
- data[5] = 0;
- data[6] = 1;
- int16_t length = 36;
- data[7] = (length & 0x00FF);
- data[8] = (length & 0xFF00) >> 8;
- // 填充数据
- // Time
- data[9] = 21;
- data[10] = 12;
- data[11] = 1;
- data[12] = 2;
- data[13] = 3;
- data[14] = 6;
- data[15] = this->TrainLine;
- data[16] = this->Train;
- data[17] = this->Crowdedness_1;
- data[18] = (this-> Num_1 & 0x00FF);
- data[19] = (this-> Num_1 & 0xFF00) >> 8;
- data[20] = this->Crowdedness_2;
- data[21] = (this-> Num_2 & 0x00FF);
- data[22] = (this-> Num_2 & 0xFF00) >> 8;
- data[23] = this->Crowdedness_3;
- data[24] = (this-> Num_3 & 0x00FF);
- data[25] = (this-> Num_3 & 0xFF00) >> 8;
- data[26] = this->Crowdedness_4;
- data[27] = (this-> Num_4 & 0x00FF);
- data[28] = (this-> Num_4 & 0xFF00) >> 8;
- data[29] = this->Crowdedness_5;
- data[30] = (this-> Num_5 & 0x00FF);
- data[31] = (this-> Num_5 & 0xFF00) >> 8;
- data[32] = this->Crowdedness_6;
- data[33] = (this-> Num_6 & 0x00FF);
- data[34] = (this-> Num_6 & 0xFF00) >> 8;
- int16_t crc = Crc16::GetCRC16(data, 9, length);
- data[45] = (crc & 0x00FF);
- data[46] = (crc & 0xFF00) >> 8;
-
- // 数据尾
- data[47] = PIDS_DATA_END;
- }
- };
|