Exemple #1
0
        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);
        }
Exemple #3
0
        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();
        }