예제 #1
0
        public JT809_0x9103 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x9103 value = new JT809_0x9103();

            value.SubBusinessType = reader.ReadUInt16();
            value.DataLength      = reader.ReadUInt32();
            value.Count           = reader.ReadByte();
            for (int i = 0; i < value.Count; i++)
            {
                JT809ManageMsgSNInform item = new JT809ManageMsgSNInform();
                item.SubBusinessType = reader.ReadUInt16();
                item.MsgSN           = reader.ReadUInt32();
                item.Time            = reader.ReadUTCDateTime();
                value.ManageMsgSNInform.Add(item);
            }
            return(value);
        }
        public JT809_0x1500_0x1503 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x1500_0x1503 jT809_0X1500_0X1503 = new JT809_0x1500_0x1503();

            jT809_0X1500_0X1503.MsgID  = reader.ReadUInt32();
            jT809_0X1500_0X1503.Result = (JT809_0x1503_Result)reader.ReadByte();
            return(jT809_0X1500_0X1503);
        }
예제 #3
0
        public JT809_0x1200_0x120D Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x1200_0x120D jT809_0X1200_0X120D = new JT809_0x1200_0x120D();

            jT809_0X1200_0X120D.EwaybillLength = reader.ReadUInt32();
            jT809_0X1200_0X120D.EwaybillInfo   = reader.ReadString((int)jT809_0X1200_0X120D.EwaybillLength);
            return(jT809_0X1200_0X120D);
        }
예제 #4
0
        public JT809_0x1002 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x1002 jT809_0X1002 = new JT809_0x1002();

            jT809_0X1002.Result     = (JT809_0x1002_Result)reader.ReadByte();
            jT809_0X1002.VerifyCode = reader.ReadUInt32();
            return(jT809_0X1002);
        }
예제 #5
0
        public JT809_0x1400_0x1401 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x1400_0x1401 jT809_0X1400_0X1401 = new JT809_0x1400_0x1401();

            jT809_0X1400_0X1401.SupervisionID = reader.ReadUInt32();
            jT809_0X1400_0X1401.Result        = (JT809_0x1401_Result)reader.ReadByte();
            return(jT809_0X1400_0X1401);
        }
예제 #6
0
        public JT809_0x1003 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x1003 jT809_0X1003 = new JT809_0x1003();

            jT809_0X1003.UserId   = reader.ReadUInt32();
            jT809_0X1003.Password = reader.ReadString(8);
            return(jT809_0X1003);
        }
예제 #7
0
        public JT809Header Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809Header jT809Header = new JT809Header();

            jT809Header.MsgLength       = reader.ReadUInt32();
            jT809Header.MsgSN           = reader.ReadUInt32();
            jT809Header.BusinessType    = reader.ReadUInt16();
            jT809Header.MsgGNSSCENTERID = reader.ReadUInt32();
            jT809Header.Version         = new JT809Header_Version(reader.ReadArray(JT809Header_Version.FixedByteLength));
            jT809Header.EncryptFlag     = (JT809Header_Encrypt)reader.ReadByte();
            jT809Header.EncryptKey      = reader.ReadUInt32();
            if (config.Version == JT809Version.JTT2019)
            {
                jT809Header.Time = reader.ReadUTCDateTime();
            }
            return(jT809Header);
        }
예제 #8
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);
            }
        }
예제 #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);
        }
예제 #10
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            var value = new JT809_0x1200_0x120B();

            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);
            }
            value.EwaybillLength = reader.ReadUInt32();
            writer.WriteNumber($"[{value.EwaybillLength.ReadNumber()}]电子运单数据体长度", value.EwaybillLength);
            var virtualHex = reader.ReadVirtualArray((int)value.EwaybillLength);

            value.EwaybillInfo = reader.ReadString((int)value.EwaybillLength);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}电子运单数据内容]", value.EwaybillInfo);
        }
예제 #11
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            var value = new JT809_0x9200_0x9201();

            value.MsgSn = reader.ReadUInt32();
            writer.WriteNumber($"[{value.MsgSn.ReadNumber()}]车辆注册信息消息源报文序号", value.MsgSn);
            value.Result = (JT809_0x9201_Result)reader.ReadByte();
            writer.WriteString($"[{value.Result.ToByteValue()}]处理结果", value.Result.ToString());
        }
예제 #12
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            JT809_0x1400_0x1401 value = new JT809_0x1400_0x1401();

            value.SupervisionID = reader.ReadUInt32();
            writer.WriteNumber($"[{value.SupervisionID.ReadNumber()}]报警督办ID", value.SupervisionID);
            value.Result = (JT809_0x1401_Result)reader.ReadByte();
            writer.WriteString($"[{value.Result.ToByteValue()}]报警处理结果", value.Result.ToString());
        }
예제 #13
0
        public JT809_0x9101 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x9101 jT809_0X9101 = new JT809_0x9101();

            jT809_0X9101.DynamicInfoTotal = reader.ReadUInt32();
            jT809_0X9101.StartTime        = reader.ReadUInt64();
            jT809_0X9101.EndTime          = reader.ReadUInt64();
            return(jT809_0X9101);
        }
예제 #14
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            JT809_0x9300_0x9302 value = new JT809_0x9300_0x9302();

            value.ObjectType = (JT809_0x9302_ObjectType)reader.ReadByte();
            writer.WriteString($"[{value.ObjectType.ToByteValue()}]查岗对象的类型", value.ObjectType.ToString());
            var virtualHex = reader.ReadVirtualArray(12);

            value.ObjectID = reader.ReadString(12);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]查岗对象的ID", value.ObjectID);
            value.InfoID = reader.ReadUInt32();
            writer.WriteNumber($"[{value.InfoID.ReadNumber() }]信息ID", value.InfoID);
            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);
        }
예제 #15
0
        public JT809_0x1400_0x1412 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            var value = new JT809_0x1400_0x1412();

            value.SourceDataType = reader.ReadUInt16();
            value.SourceMsgSn    = reader.ReadUInt32();
            value.Result         = (JT809_0x1412_Result)reader.ReadByte();
            return(value);
        }
예제 #16
0
        public JT809_0x1500_0x1504 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x1500_0x1504 jT809_0X1500_0X1504 = new JT809_0x1500_0x1504();

            jT809_0X1500_0X1504.CommandType      = (JT809CommandType)reader.ReadByte();
            jT809_0X1500_0X1504.TraveldataLength = reader.ReadUInt32();
            jT809_0X1500_0X1504.TraveldataInfo   = reader.ReadString((int)jT809_0X1500_0X1504.TraveldataLength);
            return(jT809_0X1500_0X1504);
        }
예제 #17
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            JT809_0x1002 value = new JT809_0x1002();

            value.Result = (JT809_0x1002_Result)reader.ReadByte();
            writer.WriteString($"[{value.Result.ToByteValue()}]验证结果", value.Result.ToString());
            value.VerifyCode = reader.ReadUInt32();
            writer.WriteNumber($"[{value.VerifyCode.ReadNumber()}]校验码", value.VerifyCode);
        }
예제 #18
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            JT809_0x1300_0x1302 value = new JT809_0x1300_0x1302();

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

            value.DataType = reader.ReadUInt16();
            value.MsgSn    = reader.ReadUInt32();
            value.Result   = (JT809_0x9201_Result)reader.ReadByte();
            return(value);
        }
예제 #20
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            JT809_0x1500_0x1503 value = new JT809_0x1500_0x1503();

            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);
            }
            else
            {
                value.MsgID = reader.ReadUInt32();
                writer.WriteNumber($"[{value.MsgID.ReadNumber()}]消息ID", value.MsgID);
            }
            value.Result = (JT809_0x1503_Result)reader.ReadByte();
            writer.WriteString($"[{value.Result.ToByteValue()}]应答结果", value.Result.ToString());
        }
예제 #21
0
        public JT809_0x1001 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x1001 jT809_0X1001 = new JT809_0x1001();

            jT809_0X1001.UserId       = reader.ReadUInt32();
            jT809_0X1001.Password     = reader.ReadString(8);
            jT809_0X1001.DownLinkIP   = reader.ReadString(32);
            jT809_0X1001.DownLinkPort = reader.ReadUInt16();
            return(jT809_0X1001);
        }
예제 #22
0
        public JT809_0x9200_0x920D Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            var value = new JT809_0x9200_0x920D();

            value.DRVLineID    = reader.ReadUInt32();
            value.Result       = reader.ReadByte();
            value.ReasonLength = reader.ReadUInt16();
            value.Reason       = reader.ReadString(value.ReasonLength);
            return(value);
        }
예제 #23
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            JT809_0x1500_0x1504 value = new JT809_0x1500_0x1504();

            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);
                value.CommandType = (JT809CommandType)reader.ReadByte();
                writer.WriteString($"[{value.CommandType.ToByteValue()}]命令字", value.CommandType.ToString());
            }
            value.TraveldataLength = reader.ReadUInt32();
            writer.WriteNumber($"[{value.TraveldataLength.ReadNumber()}]车辆行驶记录数据体长度", value.TraveldataLength);
            var virtualHex = reader.ReadVirtualArray((int)value.TraveldataLength);

            value.TraveldataInfo = reader.ReadArray((int)value.TraveldataLength).ToArray();
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]车辆行驶记录信息", value.TraveldataInfo.ToHexString());
        }
예제 #24
0
        public JT809_0x9102 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x9102 value = new JT809_0x9102();

            value.SubBusinessType = reader.ReadUInt16();
            value.DataLength      = reader.ReadUInt32();
            value.PlateformId     = reader.ReadString(11);
            value.StartTime       = reader.ReadUTCDateTime();
            value.EndTime         = reader.ReadUTCDateTime();
            return(value);
        }
예제 #25
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            JT809_0x1200_0x120D value = new JT809_0x1200_0x120D();

            value.EwaybillLength = reader.ReadUInt32();
            writer.WriteNumber($"[{value.EwaybillLength.ReadNumber()}]电子运单数据体长度", value.EwaybillLength);
            var virtualHex = reader.ReadVirtualArray((int)value.EwaybillLength);

            value.EwaybillInfo = reader.ReadString((int)value.EwaybillLength);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]电子运单数据内容", value.EwaybillInfo);
        }
예제 #26
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            var value = new JT809_0x1400_0x1412();

            value.SourceDataType = reader.ReadUInt16();
            writer.WriteString($"[{value.SourceDataType.ReadNumber()}]对应启动车辆定位信息交换请求消息源子业务类型标识", ((JT809SubBusinessType)value.SourceDataType).ToString());
            value.SourceMsgSn = reader.ReadUInt32();
            writer.WriteNumber($"[{value.SourceMsgSn.ReadNumber()}对应启动车辆定位信息交换请求消息源报文序列号]", value.SourceMsgSn);
            value.Result = (JT809_0x1412_Result)reader.ReadByte();
            writer.WriteString($"[{value.Result.ToByteValue()}]报警处理结果", value.Result.ToString());
        }
예제 #27
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            JT809_0x1003 value = new JT809_0x1003();

            value.UserId = reader.ReadUInt32();
            writer.WriteNumber($"[{value.UserId.ReadNumber()}]用户名", value.UserId);
            var virtualHex = reader.ReadVirtualArray(8);

            value.Password = reader.ReadString(8);
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]密码", value.Password);
        }
예제 #28
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);
        }
예제 #29
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);
        }
예제 #30
0
        public JT809_0x1600_0x1601 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x1600_0x1601 value = new JT809_0x1600_0x1601();

            if (config.Version == JT809Version.JTT2019)
            {
                value.SourceDataType = reader.ReadUInt16();
                value.SourceMsgSn    = reader.ReadUInt32();
            }
            value.CarInfo = reader.ReadRemainStringContent();
            return(value);
        }