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); } } }