using JT809.Protocol.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using JT809.Protocol.Extensions;
using JT809.Protocol.Interfaces;
namespace JT809.Protocol.SubMessageBody
{
///
/// 上报车辆电子运单应答消息
/// 子业务类型标识:UP_EXG_MSG_TAKE_EWAYBILL_ACK
/// 描述:下级平台应答上级平台发送的上报车辆电子运单请求消息,向上级平台上传车辆当前电子运单
///
public class JT809_0x1200_0x120B:JT809SubBodies, IJT809MessagePackFormatter, IJT809_2019_Version
{
public override ushort SubMsgId => JT809SubBusinessType.上报车辆电子运单应答消息.ToUInt16Value();
public override string Description => "上报车辆电子运单应答消息";
///
/// 对应上报车辆电子运单源子业务类型标识
///
public ushort SourceDataType { get; set; }
///
/// 对应上报车辆电子运单源报文序列号
///
public uint SourceMsgSn { get; set; }
///
/// 电子运单数据体长度
///
public uint EwaybillLength { get; set; }
///
/// 电子运单数据内容
///
public string EwaybillInfo { get; set; }
public JT809_0x1200_0x120B Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
var value = new JT809_0x1200_0x120B();
if (config.Version == JT809Version.JTT2019)
{
value.SourceDataType = reader.ReadUInt16();
value.SourceMsgSn = reader.ReadUInt32();
}
value.EwaybillLength = reader.ReadUInt32();
value.EwaybillInfo = reader.ReadString((int)value.EwaybillLength);
return value;
}
public void Serialize(ref JT809MessagePackWriter writer, JT809_0x1200_0x120B value, IJT809Config config)
{
if (config.Version == JT809Version.JTT2019)
{
writer.WriteUInt16(value.SourceDataType);
writer.WriteUInt32(value.SourceMsgSn);
}
writer.WriteUInt32((uint)value.EwaybillInfo.Length);
writer.WriteString(value.EwaybillInfo);
}
}
}