#pragma once

#include <iostream>
#include "PIDSDataDefine.h"
#include <map>


using namespace std;


class PIDSClientResultMsg
{
public:
    // 列车线路号
    int TrainLine;
    int Train;
    std::map<int, ResultData> data;

public:
    PIDSClientResultMsg(){}
    ~PIDSClientResultMsg(){}


    void Serialization(uint8_t* data)
    {
        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
        getBCDTime(data + 9); 

        data[15] = this->TrainLine;
        data[16] = this->Train;

        int id = 0;
        for(int i = 0; i < 18; i+=3)
        {
            data[17+i] = this->data[id].Grade;
            data[18+i] = (this->data[id].Num & 0x00FF);
            data[19+i] = (this->data[id].Num & 0xFF00) >> 8;
            id++;
        }

        int16_t crc = Crc16::GetCRC16(data, 9, length);
        data[45] = (crc & 0xFF00) >> 8;
        data[46] = (crc & 0x00FF);
         
        // 数据尾
        data[47] = PIDS_DATA_END;
    }

    void ObjectToJson(std::string& json)
    {
        

        json+="\r\n";
    }
};