using JT808.Protocol.Formatters;
using JT808.Protocol.MessagePack;
namespace JT808.Protocol.MessageBody
{
///
/// 终端注册
///
public class JT808_0x0100 : JT808Bodies, IJT808MessagePackFormatter
{
public override ushort MsgId { get; } = 0x0100;
///
/// 省域 ID
/// 标示终端安装车辆所在的省域,0 保留,由平台取默
/// 认值。省域 ID 采用 GB/T 2260 中规定的行政区划代
/// 码六位中前两位
///
public ushort AreaID { get; set; }
///
/// 市县域 ID
/// 标示终端安装车辆所在的市域和县域,0 保留,由平
/// 台取默认值。市县域 ID 采用 GB/T 2260 中规定的行
/// 政区划代码六位中后四位。
///
public ushort CityOrCountyId { get; set; }
///
/// 制造商 ID
/// 5 个字节,终端制造商编码
///
public string MakerId { get; set; }
///
/// 终端型号
/// 20 个字节,此终端型号由制造商自行定义,位数不
/// 足时,后补“0X00”。
///
public string TerminalModel { get; set; }
///
/// 终端 ID
/// 7 个字节,由大写字母和数字组成,此终端 ID 由制
/// 造商自行定义,位数不足时,后补“0X00”。
///
public string TerminalId { get; set; }
///
/// 车牌颜色
/// 车牌颜色,按照 JT/T415-2006 的 5.4.12。
/// 未上牌时,取值为 0。
///
public byte PlateColor { get; set; }
///
/// 车辆标识
/// 车牌颜色为 0 时,表示车辆 VIN;
/// 否则,表示公安交通管理部门颁发的机动车号牌。
///
public string PlateNo { get; set; }
public JT808_0x0100 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
{
JT808_0x0100 jT808_0X0100 = new JT808_0x0100();
jT808_0X0100.AreaID = reader.ReadUInt16();
jT808_0X0100.CityOrCountyId = reader.ReadUInt16();
jT808_0X0100.MakerId = reader.ReadString(5);
jT808_0X0100.TerminalModel = reader.ReadString(20);
jT808_0X0100.TerminalId = reader.ReadString(7);
jT808_0X0100.PlateColor = reader.ReadByte();
jT808_0X0100.PlateNo = reader.ReadRemainStringContent();
return jT808_0X0100;
}
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0100 value, IJT808Config config)
{
writer.WriteUInt16(value.AreaID);
writer.WriteUInt16(value.CityOrCountyId);
writer.WriteString(value.MakerId.PadRight(5, '0'));
writer.WriteString(value.TerminalModel.PadRight(20, '0'));
writer.WriteString(value.TerminalId.PadRight(7, '0'));
writer.WriteByte(value.PlateColor);
writer.WriteString(value.PlateNo);
}
}
}