Esempio n. 1
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);
        }
Esempio n. 2
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);
        }
Esempio n. 3
0
        public JT809_0x1200_0x1201 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x1200_0x1201 jT809_0X1200_0X1201 = new JT809_0x1200_0x1201();

            jT809_0X1200_0X1201.PlateformId       = reader.ReadBigNumber(11);
            jT809_0X1200_0X1201.ProducerId        = reader.ReadBigNumber(11);
            jT809_0X1200_0X1201.TerminalModelType = reader.ReadString(20);
            jT809_0X1200_0X1201.TerminalId        = reader.ReadString(7);
            jT809_0X1200_0X1201.TerminalId        = jT809_0X1200_0X1201.TerminalId.ToUpper();
            jT809_0X1200_0X1201.TerminalSimCode   = reader.ReadString(12);
            return(jT809_0X1200_0X1201);
        }
Esempio n. 4
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);
        }
Esempio n. 5
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            var value = new JT809_0x9400_0x9402();

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

            value.WarnTime = reader.ReadUTCDateTime();
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]报警时间", value.WarnTime);
            if (config.Version == JT809Version.JTT2019)
            {
                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);
                virtualHex      = reader.ReadVirtualArray(21);
                value.VehicleNo = reader.ReadString(21);
                writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]车牌号码", value.VehicleNo);
                value.VehicleColor = (JT809VehicleColorType)reader.ReadByte();
                writer.WriteString($"[{value.VehicleColor.ToByteValue()}]车牌颜色", value.VehicleColor.ToString());
                virtualHex = reader.ReadVirtualArray(11);
                value.DestinationPlatformId = reader.ReadBigNumber(11);
                writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]被报警平台唯一编码", value.DestinationPlatformId);
                value.DRVLineId = reader.ReadUInt32();
                writer.WriteNumber($"[{value.DRVLineId.ReadNumber()}]线路ID", value.DRVLineId);
            }
            value.WarnLength = reader.ReadUInt32();
            writer.WriteNumber($"[{value.WarnLength.ReadNumber()}]数据长度", value.WarnLength);
            virtualHex        = reader.ReadVirtualArray((int)value.WarnLength);
            value.WarnContent = reader.ReadString((int)value.WarnLength);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]报警描述", value.WarnContent);
        }
Esempio n. 6
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            var value = new JT809_0x1400_0x1403();

            if (config.Version == JT809Version.JTT2011)
            {
                value.InfoID = reader.ReadUInt32();
                writer.WriteNumber($"[{value.InfoID.ReadNumber()}]报警信息ID", value.InfoID);
                value.Result = (JT809_0x1403_Result)reader.ReadByte();
                writer.WriteString($"[{value.Result.ToByteValue()}]处理结果", value.Result.ToString());
            }
            else
            {
                var virtualHex = reader.ReadVirtualArray(11);
                value.SourcePlatformId = reader.ReadBigNumber(11);
                writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]发起报警平台唯一编码", value.SourcePlatformId);
                value.WarnType = (JT809WarnType)reader.ReadUInt16();
                writer.WriteString($"[{value.WarnType.ToUInt16Value()}]处理结果", value.WarnType.ToString());
                virtualHex     = reader.ReadVirtualArray(8);
                value.WarnTime = reader.ReadUTCDateTime();
                writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]报警时间", value.WarnTime);
                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);
#warning 此处车牌号文档长度有误,使用旧版长度21
                virtualHex      = reader.ReadVirtualArray(21);
                value.VehicleNo = reader.ReadString(21);
                writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]车牌号码", value.VehicleNo);
                value.VehicleColor = (JT809VehicleColorType)reader.ReadByte();
                writer.WriteString($"[{value.VehicleColor.ToByteValue()}]处理结果", value.VehicleColor.ToString());
                virtualHex = reader.ReadVirtualArray(11);
                value.DestinationPlatformId = reader.ReadBigNumber(11);
                writer.WriteString($"[{virtualHex.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);
                virtualHex        = reader.ReadVirtualArray((int)value.InfoLength);
                value.InfoContent = reader.ReadString((int)value.InfoLength);
                writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]信息内容", value.InfoContent);
            }
        }
Esempio n. 7
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);
        }
Esempio n. 8
0
        public JT809_0x9200_0x9202 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x9200_0x9202 value = new JT809_0x9200_0x9202();

            if (config.Version == JT809Version.JTT2011)
            {
                value.VehiclePosition           = new JT809VehiclePositionProperties();
                value.VehiclePosition.Encrypt   = (JT809_VehiclePositionEncrypt)reader.ReadByte();
                value.VehiclePosition.Day       = reader.ReadByte();
                value.VehiclePosition.Month     = reader.ReadByte();
                value.VehiclePosition.Year      = reader.ReadUInt16();
                value.VehiclePosition.Hour      = reader.ReadByte();
                value.VehiclePosition.Minute    = reader.ReadByte();
                value.VehiclePosition.Second    = reader.ReadByte();
                value.VehiclePosition.Lon       = reader.ReadUInt32();
                value.VehiclePosition.Lat       = reader.ReadUInt32();
                value.VehiclePosition.Vec1      = reader.ReadUInt16();
                value.VehiclePosition.Vec2      = reader.ReadUInt16();
                value.VehiclePosition.Vec3      = reader.ReadUInt32();
                value.VehiclePosition.Direction = reader.ReadUInt16();
                value.VehiclePosition.Altitude  = reader.ReadUInt16();
                value.VehiclePosition.State     = reader.ReadUInt32();
                value.VehiclePosition.Alarm     = reader.ReadUInt32();
            }
            else
            {
                value.GNSSData             = new JT809VehiclePositionProperties_2019();
                value.GNSSData.Encrypt     = (JT809_VehiclePositionEncrypt)reader.ReadByte();
                value.GNSSData.DataLength  = reader.ReadUInt32();
                value.GNSSData.GnssData    = reader.ReadArray((int)value.GNSSData.DataLength).ToArray();
                value.GNSSData.PlatformId1 = reader.ReadBigNumber(11);
                value.GNSSData.Alarm1      = reader.ReadUInt32();
                value.GNSSData.PlatformId2 = reader.ReadBigNumber(11);
                value.GNSSData.Alarm2      = reader.ReadUInt32();
                value.GNSSData.PlatformId3 = reader.ReadBigNumber(11);
                value.GNSSData.Alarm3      = reader.ReadUInt32();
            }
            return(value);
        }
Esempio n. 9
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);
        }
Esempio n. 10
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            JT809_0x1102 value      = new JT809_0x1102();
            var          virtualHex = reader.ReadVirtualArray(11);

            value.PlateformId = reader.ReadBigNumber(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);
        }
Esempio n. 11
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            JT809_0x9200_0x9202 value = new JT809_0x9200_0x9202();

            if (config.Version == JT809Version.JTT2011)
            {
                value.VehiclePosition = new JT809VehiclePositionProperties();
                writer.WriteStartObject("车辆定位信息");
                value.VehiclePosition.Encrypt = (JT809_VehiclePositionEncrypt)reader.ReadByte();
                writer.WriteString($"[{value.VehiclePosition.Encrypt.ToByteValue()}]是否使用国家测绘局批准的地图保密插件进行加密", value.VehiclePosition.Encrypt.ToString());
                value.VehiclePosition.Day = reader.ReadByte();
                writer.WriteNumber($"[{value.VehiclePosition.Day.ReadNumber()}]日", value.VehiclePosition.Day);
                value.VehiclePosition.Month = reader.ReadByte();
                writer.WriteNumber($"[{value.VehiclePosition.Month.ReadNumber()}]月", value.VehiclePosition.Month);
                value.VehiclePosition.Year = reader.ReadUInt16();
                writer.WriteNumber($"[{value.VehiclePosition.Year.ReadNumber()}]年", value.VehiclePosition.Year);
                value.VehiclePosition.Hour = reader.ReadByte();
                writer.WriteNumber($"[{value.VehiclePosition.Hour.ReadNumber()}]时", value.VehiclePosition.Hour);
                value.VehiclePosition.Minute = reader.ReadByte();
                writer.WriteNumber($"[{value.VehiclePosition.Minute.ReadNumber()}]分", value.VehiclePosition.Minute);
                value.VehiclePosition.Second = reader.ReadByte();
                writer.WriteNumber($"[{value.VehiclePosition.Second.ReadNumber()}]秒", value.VehiclePosition.Second);
                value.VehiclePosition.Lon = reader.ReadUInt32();
                writer.WriteNumber($"[{value.VehiclePosition.Lon.ReadNumber()}]经度", value.VehiclePosition.Lon);
                value.VehiclePosition.Lat = reader.ReadUInt32();
                writer.WriteNumber($"[{value.VehiclePosition.Lat.ReadNumber()}]纬度", value.VehiclePosition.Lat);
                value.VehiclePosition.Vec1 = reader.ReadUInt16();
                writer.WriteNumber($"[{value.VehiclePosition.Vec1.ReadNumber()}]速度", value.VehiclePosition.Vec1);
                value.VehiclePosition.Vec2 = reader.ReadUInt16();
                writer.WriteNumber($"[{value.VehiclePosition.Vec2.ReadNumber()}]行驶记录速度", value.VehiclePosition.Vec2);
                value.VehiclePosition.Vec3 = reader.ReadUInt32();
                writer.WriteNumber($"[{value.VehiclePosition.Vec3.ReadNumber()}]车辆当前总里程数", value.VehiclePosition.Vec3);
                value.VehiclePosition.Direction = reader.ReadUInt16();
                writer.WriteNumber($"[{value.VehiclePosition.Direction.ReadNumber()}]方向", value.VehiclePosition.Direction);
                value.VehiclePosition.Altitude = reader.ReadUInt16();
                writer.WriteNumber($"[{value.VehiclePosition.Altitude.ReadNumber()}]海拔高度", value.VehiclePosition.Altitude);
                value.VehiclePosition.State = reader.ReadUInt32();
                writer.WriteNumber($"[{value.VehiclePosition.State.ReadNumber()}]车辆状态", value.VehiclePosition.State);
                value.VehiclePosition.Alarm = reader.ReadUInt32();
                writer.WriteNumber($"[{value.VehiclePosition.Alarm.ReadNumber()}]报警状态", value.VehiclePosition.Alarm);
                writer.WriteEndObject();
            }
            else
            {
                value.GNSSData = new JT809VehiclePositionProperties_2019();
                writer.WriteStartObject("车辆定位信息");
                value.GNSSData.Encrypt = (JT809_VehiclePositionEncrypt)reader.ReadByte();
                writer.WriteString($"[{value.GNSSData.Encrypt.ToByteValue()}]是否使用国测局批准的地图保密插件进行加密", value.GNSSData.Encrypt.ToString());
                value.GNSSData.DataLength = reader.ReadUInt32();
                writer.WriteNumber($"[{value.GNSSData.DataLength.ReadNumber()}]车辆定位信息数据长度", value.GNSSData.DataLength);
                value.GNSSData.GnssData = reader.ReadArray((int)value.GNSSData.DataLength).ToArray();
                writer.WriteString($"[{value.GNSSData.GnssData.ToHexString()}]车辆定位信息内容", value.GNSSData.GnssData.ToHexString());
                var virtualHex = reader.ReadVirtualArray(11);
                value.GNSSData.PlatformId1 = reader.ReadBigNumber(11);
                writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]监控平台唯一编码", value.GNSSData.PlatformId1);
                value.GNSSData.Alarm1 = reader.ReadUInt32();
                writer.WriteNumber($"[{value.GNSSData.Alarm1.ReadNumber()}]报警状态", value.GNSSData.Alarm1);
                virtualHex = reader.ReadVirtualArray(11);
                value.GNSSData.PlatformId2 = reader.ReadBigNumber(11);
                writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]市级监控平台唯一编码", value.GNSSData.PlatformId2);
                value.GNSSData.Alarm2 = reader.ReadUInt32();
                writer.WriteNumber($"[{value.GNSSData.Alarm2.ReadNumber()}]报警状态", value.GNSSData.Alarm2);
                virtualHex = reader.ReadVirtualArray(11);
                value.GNSSData.PlatformId3 = reader.ReadBigNumber(11);
                writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]省级监控平台唯一编码", value.GNSSData.PlatformId3);
                value.GNSSData.Alarm3 = reader.ReadUInt32();
                writer.WriteNumber($"[{value.GNSSData.Alarm3.ReadNumber()}]报警状态", value.GNSSData.Alarm3);
                writer.WriteEndObject();
            }
        }