public JT808Header Deserialize(ReadOnlySpan <byte> bytes, int offset, IJT808FormatterResolver formatterResolver, out int readSize) { JT808Header jT808Header = new JT808Header(); // 1.消息ID jT808Header.MsgId = (JT808MsgId)JT808BinaryExtensions.ReadUInt16Little(bytes, ref offset); // 2.消息体属性 jT808Header.MessageBodyProperty = formatterResolver.GetFormatter <JT808HeaderMessageBodyProperty>().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; // 3.终端手机号 (写死大陆手机号码) jT808Header.TerminalPhoneNo = JT808BinaryExtensions.ReadBCD(bytes, ref offset, 6).ToString().PadLeft(12, '0'); // 4.消息流水号 jT808Header.MsgNum = JT808BinaryExtensions.ReadUInt16Little(bytes, ref offset); readSize = offset; return(jT808Header); }
public JT808_0x0107 Deserialize(ReadOnlySpan <byte> bytes, int offset, IJT808FormatterResolver formatterResolver, out int readSize) { offset = 0; JT808_0x0107 jT808_0X0107 = new JT808_0x0107(); jT808_0X0107.TerminalType = JT808BinaryExtensions.ReadUInt16Little(bytes, ref offset); jT808_0X0107.MakerId = JT808BinaryExtensions.ReadStringLittle(bytes, ref offset, 5); jT808_0X0107.TerminalModel = JT808BinaryExtensions.ReadStringLittle(bytes, ref offset, 20); jT808_0X0107.TerminalId = JT808BinaryExtensions.ReadStringLittle(bytes, ref offset, 7); jT808_0X0107.Terminal_SIM_ICCID = JT808BinaryExtensions.ReadBCD(bytes, ref offset, 5).ToString(); jT808_0X0107.Terminal_Hardware_Version_Length = JT808BinaryExtensions.ReadByteLittle(bytes, ref offset); jT808_0X0107.Terminal_Hardware_Version_Num = JT808BinaryExtensions.ReadStringLittle(bytes, ref offset, jT808_0X0107.Terminal_Hardware_Version_Length); jT808_0X0107.Terminal_Firmware_Version_Length = JT808BinaryExtensions.ReadByteLittle(bytes, ref offset); jT808_0X0107.Terminal_Firmware_Version_Num = JT808BinaryExtensions.ReadStringLittle(bytes, ref offset, jT808_0X0107.Terminal_Firmware_Version_Length); jT808_0X0107.GNSSModule = JT808BinaryExtensions.ReadByteLittle(bytes, ref offset); jT808_0X0107.CommunicationModule = JT808BinaryExtensions.ReadByteLittle(bytes, ref offset); readSize = offset; return(jT808_0X0107); }