public JT808_0x8301 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) { JT808_0x8301 jT808_0X8301 = new JT808_0x8301(); jT808_0X8301.SettingType = reader.ReadByte(); jT808_0X8301.SettingCount = reader.ReadByte(); jT808_0X8301.EventItems = new List <JT808EventProperty>(); for (var i = 0; i < jT808_0X8301.SettingCount; i++) { JT808EventProperty jT808EventProperty = new JT808EventProperty(); jT808EventProperty.EventId = reader.ReadByte(); jT808EventProperty.EventContentLength = reader.ReadByte(); jT808EventProperty.EventContent = reader.ReadString(jT808EventProperty.EventContentLength); jT808_0X8301.EventItems.Add(jT808EventProperty); } return(jT808_0X8301); }
public JT808_0x8301 Deserialize(ReadOnlySpan <byte> bytes, out int readSize) { int offset = 0; JT808_0x8301 jT808_0X8301 = new JT808_0x8301(); jT808_0X8301.SettingType = JT808BinaryExtensions.ReadByteLittle(bytes, ref offset); jT808_0X8301.SettingCount = JT808BinaryExtensions.ReadByteLittle(bytes, ref offset); jT808_0X8301.EventItems = new List <JT808EventProperty>(); for (var i = 0; i < jT808_0X8301.SettingCount; i++) { JT808EventProperty jT808EventProperty = new JT808EventProperty(); jT808EventProperty.EventId = JT808BinaryExtensions.ReadByteLittle(bytes, ref offset); jT808EventProperty.EventContentLength = JT808BinaryExtensions.ReadByteLittle(bytes, ref offset); jT808EventProperty.EventContent = JT808BinaryExtensions.ReadStringLittle(bytes, ref offset, jT808EventProperty.EventContentLength); jT808_0X8301.EventItems.Add(jT808EventProperty); } readSize = offset; return(jT808_0X8301); }
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_0x8301 value = new JT808_0x8301(); value.SettingType = reader.ReadByte(); writer.WriteNumber($"[{value.SettingType.ReadNumber()}]设置类型", value.SettingType); value.SettingCount = reader.ReadByte(); writer.WriteNumber($"[{value.SettingCount.ReadNumber()}]设置总数", value.SettingCount); writer.WriteStartArray("事件项"); for (var i = 0; i < value.SettingCount; i++) { writer.WriteStartObject(); JT808EventProperty jT808EventProperty = new JT808EventProperty(); jT808EventProperty.EventId = reader.ReadByte(); writer.WriteNumber($"[{jT808EventProperty.EventId.ReadNumber()}]事件ID ", jT808EventProperty.EventId); jT808EventProperty.EventContentLength = reader.ReadByte(); writer.WriteNumber($"[{jT808EventProperty.EventContentLength.ReadNumber()}]事件内容长度", jT808EventProperty.EventContentLength); var eventContenBuffer = reader.ReadVirtualArray(jT808EventProperty.EventContentLength).ToArray(); jT808EventProperty.EventContent = reader.ReadString(jT808EventProperty.EventContentLength); writer.WriteString($"[{eventContenBuffer.ToHexString()}]事件内容", jT808EventProperty.EventContent); writer.WriteEndObject(); } writer.WriteEndArray(); }