public JT809_0x9500_0x9504 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x9500_0x9504 jT809_0X9500_0X9504 = new JT809_0x9500_0x9504();

            jT809_0X9500_0X9504.Command = (JT809CommandType)reader.ReadByte();
            switch (jT809_0X9500_0X9504.Command)
            {
            case JT809CommandType.记录仪标准版本:
            case JT809CommandType.当前驾驶人信息:
            case JT809CommandType.记录仪时间:
            case JT809CommandType.记录仪累计行驶里程:
            case JT809CommandType.记录仪脉冲系数:
            case JT809CommandType.车辆信息:
            case JT809CommandType.记录仪状态信号配置信息:
            case JT809CommandType.记录仪唯一性编号:
                break;

            case JT809CommandType.采集记录仪行驶记录:
            case JT809CommandType.采集记录仪位置信息记录:
            case JT809CommandType.采集记录仪事故疑点记录:
            case JT809CommandType.采集记录仪超时驾驶记录:
            case JT809CommandType.采集记录仪驾驶人身份记录:
            case JT809CommandType.采集记录仪外部供电记录:
            case JT809CommandType.采集记录仪参数修改记录:
            case JT809CommandType.采集记录仪速度状态日志:
                jT809_0X9500_0X9504.StartTime = reader.ReadDateTime6();
                jT809_0X9500_0X9504.EndTime   = reader.ReadDateTime6();
                jT809_0X9500_0X9504.Max       = reader.ReadUInt16();
                break;
            }
            return(jT809_0X9500_0X9504);
        }
예제 #2
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            var value = new JT809_0x9500_0x9504();

            if (config.Version == JT809Version.JTT2019)
            {
                var hex = reader.ReadVirtualArray(8);
                value.StartTime = reader.ReadUTCDateTime();
                writer.WriteString($"[{hex.ToArray().ToHexString()}]开始时间", value.StartTime);
                hex           = reader.ReadVirtualArray(8);
                value.EndTime = reader.ReadUTCDateTime();
                writer.WriteString($"[{hex.ToArray().ToHexString()}]结束时间", value.EndTime);
                value.Command = (JT809CommandType)reader.ReadByte();
                writer.WriteString($"[{value.Command.ToByteValue()}]命令字ID", value.Command.ToString());
            }
            else
            {
                value.Command = (JT809CommandType)reader.ReadByte();
                writer.WriteString($"[{value.Command.ToByteValue()}]命令字ID", value.Command.ToString());
                switch (value.Command)
                {
                case JT809CommandType.记录仪标准版本:
                case JT809CommandType.当前驾驶人信息:
                case JT809CommandType.记录仪时间:
                case JT809CommandType.记录仪累计行驶里程:
                case JT809CommandType.记录仪脉冲系数:
                case JT809CommandType.车辆信息:
                case JT809CommandType.记录仪状态信号配置信息:
                case JT809CommandType.记录仪唯一性编号:
                    break;

                case JT809CommandType.采集记录仪行驶记录:
                case JT809CommandType.采集记录仪位置信息记录:
                case JT809CommandType.采集记录仪事故疑点记录:
                case JT809CommandType.采集记录仪超时驾驶记录:
                case JT809CommandType.采集记录仪驾驶人身份记录:
                case JT809CommandType.采集记录仪外部供电记录:
                case JT809CommandType.采集记录仪参数修改记录:
                case JT809CommandType.采集记录仪速度状态日志:
                    var hex = reader.ReadVirtualArray(6);
                    value.StartTime = reader.ReadDateTime6();
                    writer.WriteString($"[{hex.ToArray().ToHexString()}]开始时间", value.StartTime);
                    hex           = reader.ReadVirtualArray(6);
                    value.EndTime = reader.ReadDateTime6();
                    writer.WriteString($"[{hex.ToArray().ToHexString()}]结束时间", value.EndTime);
                    value.Max = reader.ReadUInt16();
                    writer.WriteNumber($"[{value.Max.ReadNumber()}]最大数据数", value.Max);
                    break;
                }
            }
        }
예제 #3
0
        public JT809_0x9500_0x9504 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            var value = new JT809_0x9500_0x9504();

            if (config.Version == JT809Version.JTT2019)
            {
                value.StartTime = reader.ReadUTCDateTime();
                value.EndTime   = reader.ReadUTCDateTime();
                value.Command   = (JT809CommandType)reader.ReadByte();
            }
            else
            {
                value.Command = (JT809CommandType)reader.ReadByte();
                switch (value.Command)
                {
                case JT809CommandType.记录仪标准版本:
                case JT809CommandType.当前驾驶人信息:
                case JT809CommandType.记录仪时间:
                case JT809CommandType.记录仪累计行驶里程:
                case JT809CommandType.记录仪脉冲系数:
                case JT809CommandType.车辆信息:
                case JT809CommandType.记录仪状态信号配置信息:
                case JT809CommandType.记录仪唯一性编号:
                    break;

                case JT809CommandType.采集记录仪行驶记录:
                case JT809CommandType.采集记录仪位置信息记录:
                case JT809CommandType.采集记录仪事故疑点记录:
                case JT809CommandType.采集记录仪超时驾驶记录:
                case JT809CommandType.采集记录仪驾驶人身份记录:
                case JT809CommandType.采集记录仪外部供电记录:
                case JT809CommandType.采集记录仪参数修改记录:
                case JT809CommandType.采集记录仪速度状态日志:
                    value.StartTime = reader.ReadDateTime6();
                    value.EndTime   = reader.ReadDateTime6();
                    value.Max       = reader.ReadUInt16();
                    break;
                }
            }
            return(value);
        }