Beispiel #1
0
        public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
        {
            JT808_0x9212 value = new JT808_0x9212();

            value.FileNameLength = reader.ReadByte();
            writer.WriteNumber($"[{value.FileNameLength.ReadNumber()}]文件名称长度", value.FileNameLength);
            string fileNameHex = reader.ReadVirtualArray(value.FileNameLength).ToArray().ToHexString();

            value.FileName = reader.ReadString(value.FileNameLength);
            writer.WriteString($"[{fileNameHex}]文件名称", value.FileName);
            value.FileType = reader.ReadByte();
            writer.WriteNumber($"[{value.FileType.ReadNumber()}]文件类型", value.FileType);
            value.UploadResult = reader.ReadByte();
            writer.WriteNumber($"[{value.UploadResult.ReadNumber()}]上传结果", value.UploadResult);
            value.DataPackageCount = reader.ReadByte();
            writer.WriteNumber($"[{value.DataPackageCount.ReadNumber()}]补传数据包数量", value.DataPackageCount);
            if (value.DataPackageCount > 0)
            {
                writer.WriteStartArray("补传数据包列表");
                for (int i = 0; i < value.DataPackageCount; i++)
                {
                    writer.WriteStartObject();
                    DataPackageProperty dataPackageProperty = new DataPackageProperty();
                    dataPackageProperty.Offset = reader.ReadUInt32();
                    writer.WriteNumber($"[{dataPackageProperty.Offset.ReadNumber()}]数据偏移量", dataPackageProperty.Offset);
                    dataPackageProperty.Length = reader.ReadUInt32();
                    writer.WriteNumber($"[{dataPackageProperty.Length.ReadNumber()}]数据长度", dataPackageProperty.Length);
                    writer.WriteEndObject();
                }
                writer.WriteEndArray();
            }
        }
Beispiel #2
0
        public JT808_0x9212 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
        {
            JT808_0x9212 value = new JT808_0x9212();

            value.FileNameLength   = reader.ReadByte();
            value.FileName         = reader.ReadString(value.FileNameLength);
            value.FileType         = reader.ReadByte();
            value.UploadResult     = reader.ReadByte();
            value.DataPackageCount = reader.ReadByte();
            if (value.DataPackageCount > 0)
            {
                value.DataPackages = new List <DataPackageProperty>();
                for (int i = 0; i < value.DataPackageCount; i++)
                {
                    DataPackageProperty dataPackageProperty = new DataPackageProperty();
                    dataPackageProperty.Offset = reader.ReadUInt32();
                    dataPackageProperty.Length = reader.ReadUInt32();
                    value.DataPackages.Add(dataPackageProperty);
                }
            }
            return(value);
        }