Example #1
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            var value      = new JT809_0x1400_0x1413();
            var virtualHex = reader.ReadVirtualArray(11);

            value.SourcePlatformId = reader.ReadBigNumber(11);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]发起报警平台唯一编码", value.SourcePlatformId);
            virtualHex     = reader.ReadVirtualArray(8);
            value.WarnTime = reader.ReadUTCDateTime();
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]报警时间", value.WarnTime);
            value.SourceDataType = reader.ReadUInt16();
            writer.WriteString($"[{value.SourceDataType.ReadNumber()}]对应启动车辆定位信息交换请求消息源子业务类型标识", ((JT809SubBusinessType)value.SourceDataType).ToString());
            value.SourceMsgSn = reader.ReadUInt32();
            writer.WriteNumber($"[{value.SourceMsgSn.ReadNumber()}对应启动车辆定位信息交换请求消息源报文序列号]", value.SourceMsgSn);
            virtualHex = reader.ReadVirtualArray(8);
            value.SupervisionEndTime = reader.ReadUTCDateTime();
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]督办截止时间", value.SupervisionEndTime);
            value.SupervisionLevel = (JT809_0x1413_SupervisionLevel)reader.ReadByte();
            writer.WriteString($"[{value.SupervisionLevel.ToByteValue()}]督办级别", value.SupervisionLevel.ToString());
            virtualHex       = reader.ReadVirtualArray(16);
            value.Supervisor = reader.ReadString(16);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]督办人", value.Supervisor);
            virtualHex          = reader.ReadVirtualArray(20);
            value.SupervisorTel = reader.ReadString(20);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]督办人联系电话", value.SupervisorTel);
            virtualHex            = reader.ReadVirtualArray(32);
            value.SupervisorEmail = reader.ReadString(32);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]督办人联系电子邮件", value.SupervisorTel);
        }
Example #2
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            JT809_0x1102 value = new JT809_0x1102();

            value.SubBusinessType = reader.ReadUInt16();
            writer.WriteNumber($"[{value.SubBusinessType.ReadNumber()}]子业务类型标识", value.SubBusinessType);
            value.DataLength = reader.ReadUInt32();
            writer.WriteNumber($"[{value.DataLength.ReadNumber()}]后续数据长度", value.DataLength);
            var virtualHex = reader.ReadVirtualArray(11);

            value.PlateformId = reader.ReadString(11);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]平台唯一编码", value.PlateformId);
            virtualHex      = reader.ReadVirtualArray(8);
            value.StartTime = reader.ReadUTCDateTime();
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]开始时间", value.StartTime);
            virtualHex    = reader.ReadVirtualArray(8);
            value.EndTime = reader.ReadUTCDateTime();
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]结束时间", value.EndTime);
            value.LoseDymamicSum = reader.ReadUInt32();
            writer.WriteNumber($"[{value.LoseDymamicSum.ReadNumber()}]START_TIME~END_TIME期间下级平台丢失得车辆定位消息总数", value.LoseDymamicSum);
            value.DisconnectNum = reader.ReadByte();
            writer.WriteNumber($"[{value.DisconnectNum.ReadNumber()}]START_TIME~END_TIME期间下级监控平台链路断开次数", value.DisconnectNum);
            value.DisconnectTime = reader.ReadUInt32();
            writer.WriteNumber($"[{value.DisconnectTime.ReadNumber()}]START_TIME~END_TIME期间下级监控平台链路断开总时长,用秒表示", value.DisconnectTime);
        }
Example #3
0
        public JT809_0x9400_0x9403 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            var value = new JT809_0x9400_0x9403();

            if (config.Version == JT809Version.JTT2011)
            {
                value.WarnSrc = (JT809WarnSrc)reader.ReadByte();
            }
            else
            {
                value.SourcePlatformId = reader.ReadBigNumber(11);
            }
            value.WarnType = (JT809WarnType)reader.ReadUInt16();
            value.WarnTime = reader.ReadUTCDateTime();
            if (config.Version == JT809Version.JTT2019)
            {
                value.StartTime = reader.ReadUTCDateTime();
                value.EndTime   = reader.ReadUTCDateTime();
#warning 此处车牌号文档长度有误,使用旧版长度21
                value.VehicleNo             = reader.ReadString(21);
                value.VehicleColor          = (JT809VehicleColorType)reader.ReadByte();
                value.DestinationPlatformId = reader.ReadBigNumber(11);
                value.DRVLineId             = reader.ReadUInt32();
            }
            value.WarnLength  = reader.ReadUInt32();
            value.WarnContent = reader.ReadString((int)value.WarnLength);
            return(value);
        }
Example #4
0
        public JT809_0x1400_0x1403 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            var value = new JT809_0x1400_0x1403();

            if (config.Version == JT809Version.JTT2011)
            {
                value.InfoID = reader.ReadUInt32();
                value.Result = (JT809_0x1403_Result)reader.ReadByte();
            }
            else
            {
                value.SourcePlatformId      = reader.ReadBigNumber(11);
                value.WarnType              = (JT809WarnType)reader.ReadUInt16();
                value.WarnTime              = reader.ReadUTCDateTime();
                value.StartTime             = reader.ReadUTCDateTime();
                value.EndTime               = reader.ReadUTCDateTime();
                value.VehicleNo             = reader.ReadString(21);
                value.VehicleColor          = (JT809VehicleColorType)reader.ReadByte();
                value.DestinationPlatformId = reader.ReadBigNumber(11);
                value.DRVLineId             = reader.ReadUInt32();
                value.InfoLength            = reader.ReadUInt32();
                value.InfoContent           = reader.ReadString((int)value.InfoLength);
            }
            return(value);
        }
Example #5
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            JT809_0x9400_0x9401 value = new JT809_0x9400_0x9401();

            value.WarnSrc = (JT809WarnSrc)reader.ReadByte();
            writer.WriteString($"[{value.WarnSrc.ToByteValue()}]报警信息来源", value.WarnSrc.ToString());
            value.WarnType = reader.ReadUInt16();
            writer.WriteNumber($"[{value.WarnType.ReadNumber()}]报警类型", value.WarnType);
            var virtualHex = reader.ReadVirtualArray(8);

            value.WarnTime = reader.ReadUTCDateTime();
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]报警时间", value.WarnTime);
            virtualHex          = reader.ReadVirtualArray(4);
            value.SupervisionID = reader.ReadHex(4);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]报警督办ID", value.SupervisionID);
            virtualHex = reader.ReadVirtualArray(8);
            value.SupervisionEndTime = reader.ReadUTCDateTime();
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]督办截止时间", value.SupervisionEndTime);
            value.SupervisionLevel = (JT809_9401_SupervisionLevel)reader.ReadByte();
            writer.WriteString($"[{value.SupervisionLevel.ToByteValue()}]督办级别", value.SupervisionLevel.ToString());
            virtualHex       = reader.ReadVirtualArray(16);
            value.Supervisor = reader.ReadString(16);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]督办人", value.Supervisor);
            virtualHex          = reader.ReadVirtualArray(20);
            value.SupervisorTel = reader.ReadString(20);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]督办联系电话", value.SupervisorTel);
            virtualHex            = reader.ReadVirtualArray(32);
            value.SupervisorEmail = reader.ReadString(32);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]督办联系电子邮件", value.SupervisorEmail);
        }
Example #6
0
        public JT809_0x1200_0x1207 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x1200_0x1207 value = new JT809_0x1200_0x1207();

            value.StartTime = reader.ReadUTCDateTime();
            value.EndTime   = reader.ReadUTCDateTime();
            return(value);
        }
Example #7
0
        public JT809_0x1200_0x1207 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x1200_0x1207 jT809_0X1200_0X1207 = new JT809_0x1200_0x1207();

            jT809_0X1200_0X1207.StartTime = reader.ReadUTCDateTime();
            jT809_0X1200_0X1207.EndTime   = reader.ReadUTCDateTime();
            return(jT809_0X1200_0X1207);
        }
Example #8
0
        public JT809_0x9102 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x9102 value = new JT809_0x9102();

            value.PlateformId = reader.ReadString(11);
            value.StartTime   = reader.ReadUTCDateTime();
            value.EndTime     = reader.ReadUTCDateTime();
            return(value);
        }
Example #9
0
        public JT809_2019_0x9101 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_2019_0x9101 value = new JT809_2019_0x9101();

            value.DynamicInfoTotal = reader.ReadUInt32();
            value.StartTime        = reader.ReadUTCDateTime();
            value.EndTime          = reader.ReadUTCDateTime();
            return(value);
        }
Example #10
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            JT809_0x1200_0x1207 value = new JT809_0x1200_0x1207();
            var virtualHex            = reader.ReadVirtualArray(8);

            value.StartTime = reader.ReadUTCDateTime();
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]开始时间", value.StartTime);
            virtualHex    = reader.ReadVirtualArray(8);
            value.EndTime = reader.ReadUTCDateTime();
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]结束时间", value.StartTime);
        }
Example #11
0
        public JT809_0x1102 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x1102 value = new JT809_0x1102();

            value.PlateformId    = reader.ReadBigNumber(11);
            value.StartTime      = reader.ReadUTCDateTime();
            value.EndTime        = reader.ReadUTCDateTime();
            value.LoseDymamicSum = reader.ReadUInt32();
            value.DisconnectNum  = reader.ReadByte();
            value.DisconnectTime = reader.ReadUInt32();
            return(value);
        }
Example #12
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            var value = new JT809_0x1400_0x1402();

            if (config.Version == JT809Version.JTT2011)
            {
                value.WarnSrc = (JT809WarnSrc)reader.ReadByte();
                writer.WriteString($"[{value.WarnSrc.ToByteValue()}]报警信息来源", value.WarnSrc.ToString());
            }
            else
            {
                var virtualHex = reader.ReadVirtualArray(11);
                value.SourcePlatformId = reader.ReadString(11);
                writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]发起报警平台唯一编码", value.SourcePlatformId);
            }
            value.WarnType = (JT809WarnType)reader.ReadUInt16();
            writer.WriteString($"[{value.WarnType.ToByteValue()}]报警类型", value.WarnType.ToString());
            var hex = reader.ReadVirtualArray(8);

            value.WarnTime = reader.ReadUTCDateTime();
            writer.WriteString($"[{hex.ToArray().ToHexString()}]报警时间", value.WarnTime);
            if (config.Version == JT809Version.JTT2011)
            {
                value.InfoID = reader.ReadUInt32();
                writer.WriteNumber($"[{value.InfoID.ReadNumber()}]信息ID", value.InfoID);
            }
            else
            {
                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);
#warning 此处车牌号文档长度有误,使用旧版长度21
                hex             = reader.ReadVirtualArray(21);
                value.VehicleNo = reader.ReadString(21);
                writer.WriteString($"[{hex.ToArray().ToHexString()}]车牌号码", value.VehicleNo);
                value.VehicleColor = (JT809VehicleColorType)reader.ReadByte();
                writer.WriteString($"[{value.VehicleColor.ToByteValue()}]车牌颜色", value.VehicleColor.ToString());
                hex = reader.ReadVirtualArray(11);
                value.DestinationPlatformId = reader.ReadString(11);
                writer.WriteString($"[{hex.ToArray().ToHexString()}]被报警平台唯一编码", value.DestinationPlatformId);
                value.DRVLineId = reader.ReadUInt32();
                writer.WriteNumber($"[{value.DRVLineId.ReadNumber()}]线路ID", value.DRVLineId);
            }
            value.InfoLength = reader.ReadUInt32();
            writer.WriteNumber($"[{value.InfoLength.ReadNumber()}]数据长度", value.InfoLength);
            hex = reader.ReadVirtualArray((int)value.InfoLength);
            value.InfoContent = reader.ReadString((int)value.InfoLength);
            writer.WriteString($"[{hex.ToArray().ToHexString()}]信息内容", value.InfoContent);
        }
Example #13
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;
                }
            }
        }
Example #14
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            JT809_2019_0x9101 value = new JT809_2019_0x9101();

            value.DynamicInfoTotal = reader.ReadUInt32();
            writer.WriteNumber($"[{value.DynamicInfoTotal.ReadNumber()}START_TIME_END_TIME共收到的车辆定位信息数量]", value.DynamicInfoTotal);
            var virtualHex = reader.ReadVirtualArray(8);

            value.StartTime = reader.ReadUTCDateTime();
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}开始时间]", value.StartTime);
            virtualHex    = reader.ReadVirtualArray(8);
            value.EndTime = reader.ReadUTCDateTime();
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}结束时间]", value.EndTime);
        }
        public JT809_JT1078_0x9A00_0x9A01 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_JT1078_0x9A00_0x9A01 jT808_JT1078_0x9A00_0x9A01 = new JT809_JT1078_0x9A00_0x9A01();

            jT808_JT1078_0x9A00_0x9A01.ChannelId         = reader.ReadByte();
            jT808_JT1078_0x9A00_0x9A01.AVItemType        = reader.ReadByte();
            jT808_JT1078_0x9A00_0x9A01.StreamType        = reader.ReadByte();
            jT808_JT1078_0x9A00_0x9A01.MemType           = reader.ReadByte();
            jT808_JT1078_0x9A00_0x9A01.PlayBackStartTime = reader.ReadUTCDateTime();
            jT808_JT1078_0x9A00_0x9A01.PlayBackEndTime   = reader.ReadUTCDateTime();
            jT808_JT1078_0x9A00_0x9A01.AuthorizeCode     = reader.ReadArray(64).ToArray();
            jT808_JT1078_0x9A00_0x9A01.GnssData          = reader.ReadArray(36).ToArray();
            return(jT808_JT1078_0x9A00_0x9A01);
        }
Example #16
0
        public JT809_JT1078_0x1900_Record Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_JT1078_0x1900_Record value = new JT809_JT1078_0x1900_Record();

            value.ChannelId  = reader.ReadByte();
            value.StartTime  = reader.ReadUTCDateTime();
            value.EndTime    = reader.ReadUTCDateTime();
            value.AlarmType  = reader.ReadUInt64();
            value.AVItemType = reader.ReadByte();
            value.StreamType = reader.ReadByte();
            value.MemType    = reader.ReadByte();
            value.FileSize   = reader.ReadUInt32();
            return(value);
        }
Example #17
0
        public JT809_JT1078_0x9A00_0x9A01 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_JT1078_0x9A00_0x9A01 value = new JT809_JT1078_0x9A00_0x9A01();

            value.ChannelId         = reader.ReadByte();
            value.AVItemType        = reader.ReadByte();
            value.StreamType        = reader.ReadByte();
            value.MemType           = reader.ReadByte();
            value.PlayBackStartTime = reader.ReadUTCDateTime();
            value.PlayBackEndTime   = reader.ReadUTCDateTime();
            value.AuthorizeCode     = reader.ReadString(64);
            value.GnssData          = reader.ReadArray(36).ToArray();
            return(value);
        }
        public JT809_0x9400_0x9401 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x9400_0x9401 jT809_0X9400_0X9401 = new JT809_0x9400_0x9401();

            jT809_0X9400_0X9401.WarnSrc            = (JT809WarnSrc)reader.ReadByte();
            jT809_0X9400_0X9401.WarnType           = reader.ReadUInt16();
            jT809_0X9400_0X9401.WarnTime           = reader.ReadUTCDateTime();
            jT809_0X9400_0X9401.SupervisionID      = reader.ReadHex(4);
            jT809_0X9400_0X9401.SupervisionEndTime = reader.ReadUTCDateTime();
            jT809_0X9400_0X9401.SupervisionLevel   = reader.ReadByte();
            jT809_0X9400_0X9401.Supervisor         = reader.ReadString(16);
            jT809_0X9400_0X9401.SupervisorTel      = reader.ReadString(20);
            jT809_0X9400_0X9401.SupervisorEmail    = reader.ReadString(32);
            return(jT809_0X9400_0X9401);
        }
Example #19
0
        public JT809_0x1400_0x1413 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            var value = new JT809_0x1400_0x1413();

            value.SourcePlatformId   = reader.ReadBigNumber(11);
            value.WarnTime           = reader.ReadUTCDateTime();
            value.SourceDataType     = reader.ReadUInt16();
            value.SourceMsgSn        = reader.ReadUInt32();
            value.SupervisionEndTime = reader.ReadUTCDateTime();
            value.SupervisionLevel   = (JT809_0x1413_SupervisionLevel)reader.ReadByte();
            value.Supervisor         = reader.ReadString(16);
            value.SupervisorTel      = reader.ReadString(20);
            value.SupervisorEmail    = reader.ReadString(32);
            return(value);
        }
Example #20
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            JT809_0x9500_0x9505 value = new JT809_0x9500_0x9505();
            var virtualHex            = reader.ReadVirtualArray(10);

            value.AuthenticationCode = reader.ReadBCD(20);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]监管平台下发的鉴权码", value.AuthenticationCode);
            virtualHex            = reader.ReadVirtualArray(20);
            value.AccessPointName = reader.ReadString(20);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]拨号点名称", value.AccessPointName);
            virtualHex     = reader.ReadVirtualArray(49);
            value.UserName = reader.ReadString(49);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]拨号用户名", value.UserName);
            virtualHex     = reader.ReadVirtualArray(49);
            value.Password = reader.ReadString(22);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]拨号密码", value.Password);
            virtualHex     = reader.ReadVirtualArray(32);
            value.ServerIP = reader.ReadString(32);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]地址", value.ServerIP);
            value.TcpPort = reader.ReadUInt16();
            writer.WriteNumber($"[{value.TcpPort.ReadNumber()}]", value.TcpPort);
            value.UdpPort = reader.ReadUInt16();
            writer.WriteNumber($"[{value.UdpPort.ReadNumber()}]", value.UdpPort);
            virtualHex    = reader.ReadVirtualArray(8);
            value.EndTime = reader.ReadUTCDateTime();
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]结束时间", value.EndTime);
        }
Example #21
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            JT809_0x1200_0x120A value = new JT809_0x1200_0x120A();

            if (config.Version == JT809Version.JTT2019)
            {
                value.SourceDataType = reader.ReadUInt16();
                writer.WriteString($"[{value.SourceDataType.ReadNumber()}]对应启动车辆定位信息交换请求消息源子业务类型标识", ((JT809SubBusinessType)value.SourceDataType).ToString());
                value.SourceMsgSn = reader.ReadUInt32();
                writer.WriteNumber($"[{value.SourceMsgSn.ReadNumber()}对应启动车辆定位信息交换请求消息源报文序列号]", value.SourceMsgSn);
            }
            var virtualHex = reader.ReadVirtualArray(16);

            value.DriverName = reader.ReadString(16);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]驾驶员姓名", value.DriverName);
            virtualHex     = reader.ReadVirtualArray(20);
            value.DriverID = reader.ReadString(20);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]身份证编号", value.DriverID);
            virtualHex    = reader.ReadVirtualArray(40);
            value.Licence = reader.ReadString(40);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]从业资格证", value.Licence);
            virtualHex    = reader.ReadVirtualArray(200);
            value.OrgName = reader.ReadString(200);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]发证机构名称", value.OrgName);
            if (config.Version == JT809Version.JTT2019)
            {
                virtualHex      = reader.ReadVirtualArray(8);
                value.ValidDate = reader.ReadUTCDateTime();
                writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]证件有效期", value.ValidDate);
            }
        }
Example #22
0
        public JT809_JT1078_0x9900_0x9902 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_JT1078_0x9900_0x9902 jT808_JT1078_0x9900_0x9902 = new JT809_JT1078_0x9900_0x9902();

            jT808_JT1078_0x9900_0x9902.ChannelId = reader.ReadByte();
#warning 此处时间8个字节,暂使用utc时间代替
            jT808_JT1078_0x9900_0x9902.StartTime     = reader.ReadUTCDateTime();
            jT808_JT1078_0x9900_0x9902.EndTime       = reader.ReadUTCDateTime();
            jT808_JT1078_0x9900_0x9902.AlarmType     = reader.ReadUInt64();
            jT808_JT1078_0x9900_0x9902.AVItemType    = reader.ReadByte();
            jT808_JT1078_0x9900_0x9902.StreamType    = reader.ReadByte();
            jT808_JT1078_0x9900_0x9902.MemType       = reader.ReadByte();
            jT808_JT1078_0x9900_0x9902.AuthorizeCode = reader.ReadArray(64).ToArray();
            jT808_JT1078_0x9900_0x9902.GnssData      = reader.ReadArray(36).ToArray();
            return(jT808_JT1078_0x9900_0x9902);
        }
Example #23
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            JT809_0x9103 value = new JT809_0x9103();

            value.SubBusinessType = reader.ReadUInt16();
            writer.WriteString($"[{value.SubBusinessType.ReadNumber()}]子业务类型标识", ((JT809SubBusinessType)value.SubBusinessType).ToString());
            value.DataLength = reader.ReadUInt32();
            writer.WriteNumber($"[{value.DataLength.ReadNumber()}]后续数据长度", value.DataLength);
            value.Count = reader.ReadByte();
            writer.WriteNumber($"[{value.Count.ReadNumber()}]总数", value.Count);
            writer.WriteStartArray();
            for (int i = 0; i < value.Count; i++)
            {
                writer.WriteStartObject("子业务数据类型");
                JT809ManageMsgSNInform item = new JT809ManageMsgSNInform();
                item.SubBusinessType = reader.ReadUInt16();
                writer.WriteString($"[{item.SubBusinessType.ReadNumber()}]子业务类型标识", ((JT809SubBusinessType)item.SubBusinessType).ToString());
                item.MsgSN = reader.ReadUInt32();
                writer.WriteNumber($"[{item.MsgSN.ReadNumber()}对应得子业务数据类型报文序列号]", item.MsgSN);
                var virtualHex = reader.ReadVirtualArray(8);
                item.Time = reader.ReadUTCDateTime();
                writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]系统UTC时间", item.Time);
            }
            writer.WriteEndArray();
        }
Example #24
0
        public JT809_0x9300_0x9303 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            var value = new JT809_0x9300_0x9303();

            value.SerialList = reader.ReadArray(8).ToArray();
            value.Time       = reader.ReadUTCDateTime();
            return(value);
        }
Example #25
0
        public JT809_JT1078_0x9A00_0x9A02 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_JT1078_0x9A00_0x9A02 jT808_JT1078_0x9A00_0x9A02 = new JT809_JT1078_0x9A00_0x9A02();

            jT808_JT1078_0x9A00_0x9A02.ControlType = reader.ReadByte();
            jT808_JT1078_0x9A00_0x9A02.FastTime    = reader.ReadByte();
            jT808_JT1078_0x9A00_0x9A02.DateTime    = reader.ReadUTCDateTime();
            return(jT808_JT1078_0x9A00_0x9A02);
        }
Example #26
0
        public JT809_JT1078_0x9A00_0x9A02 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_JT1078_0x9A00_0x9A02 value = new JT809_JT1078_0x9A00_0x9A02();

            value.ControlType = (ControlType)reader.ReadByte();
            value.FastTime    = (FastTime)reader.ReadByte();
            value.DateTime    = reader.ReadUTCDateTime();
            return(value);
        }
Example #27
0
        public JT809_0x9400_0x9403 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x9400_0x9403 jT809_0X9400_0X9403 = new JT809_0x9400_0x9403();

            jT809_0X9400_0X9403.WarnSrc     = (JT809WarnSrc)reader.ReadByte();
            jT809_0X9400_0X9403.WarnType    = (JT809WarnType)reader.ReadUInt16();
            jT809_0X9400_0X9403.WarnTime    = reader.ReadUTCDateTime();
            jT809_0X9400_0X9403.WarnLength  = reader.ReadUInt32();
            jT809_0X9400_0X9403.WarnContent = reader.ReadString((int)jT809_0X9400_0X9403.WarnLength);
            return(jT809_0X9400_0X9403);
        }
Example #28
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            var value = new JT809_0x9300_0x9303();

            value.SerialList = reader.ReadArray(8).ToArray();
            writer.WriteString($"[{value.SerialList.ToHexString()}]需要重传消息的起始报文序列号和结束的报文序列号", value.SerialList.ToHexString());
            var virtualHex = reader.ReadVirtualArray(8);

            value.Time = reader.ReadUTCDateTime();
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]", value.Time);
        }
Example #29
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);
        }
        public JT809_0x1400_0x1402 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x1400_0x1402 jT809_0X1400_0X1402 = new JT809_0x1400_0x1402();

            jT809_0X1400_0X1402.WarnSrc     = (JT809WarnSrc)reader.ReadByte();
            jT809_0X1400_0X1402.WarnType    = (JT809WarnType)reader.ReadUInt16();
            jT809_0X1400_0X1402.WarnTime    = reader.ReadUTCDateTime();
            jT809_0X1400_0X1402.InfoID      = reader.ReadUInt32();
            jT809_0X1400_0X1402.InfoLength  = reader.ReadUInt32();
            jT809_0X1400_0X1402.InfoContent = reader.ReadString((int)jT809_0X1400_0X1402.InfoLength);
            return(jT809_0X1400_0X1402);
        }