From 762070e8764b23ec62a0c853db7ced348f6bf84c Mon Sep 17 00:00:00 2001 From: waterliu99 Date: Sun, 29 Nov 2020 22:45:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8D=8F=E8=AE=AEjson?= =?UTF-8?q?=E5=BA=8F=E5=88=97=E5=8C=96=E6=97=B6=EF=BC=8C=E4=BA=8C=E8=BF=9B?= =?UTF-8?q?=E5=88=B6=E4=BD=8D=E5=8F=8D=E4=BA=86=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/JT808.Protocol/MessageBody/JT808_0x0107.cs | 7 ++++--- src/JT808.Protocol/MessageBody/JT808_0x0200.cs | 2 +- src/JT808.Protocol/MessageBody/JT808_0x8203.cs | 3 ++- src/JT808.Protocol/MessageBody/JT808_0x8300.cs | 3 ++- src/JT808.Protocol/MessageBody/JT808_0x8500.cs | 3 ++- src/JT808.Protocol/MessageBody/JT808_0x8600.cs | 3 ++- src/JT808.Protocol/MessageBody/JT808_0x8602.cs | 3 ++- src/JT808.Protocol/MessageBody/JT808_0x8604.cs | 3 ++- src/JT808.Protocol/MessageBody/JT808_0x8606.cs | 3 ++- 9 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/JT808.Protocol/MessageBody/JT808_0x0107.cs b/src/JT808.Protocol/MessageBody/JT808_0x0107.cs index 891c003..66ed640 100644 --- a/src/JT808.Protocol/MessageBody/JT808_0x0107.cs +++ b/src/JT808.Protocol/MessageBody/JT808_0x0107.cs @@ -5,6 +5,7 @@ using JT808.Protocol.Interfaces; using JT808.Protocol.MessagePack; using System; using System.Collections; +using System.Linq; using System.Text.Json; namespace JT808.Protocol.MessageBody @@ -143,7 +144,7 @@ namespace JT808.Protocol.MessageBody JT808_0x0107 jT808_0X0107 = new JT808_0x0107(); jT808_0X0107.TerminalType = reader.ReadUInt16(); writer.WriteNumber($"[{jT808_0X0107.TerminalType.ReadNumber()}]终端类型", jT808_0X0107.TerminalType); - ReadOnlySpan terminalTypeBits = Convert.ToString(jT808_0X0107.TerminalType, 2).PadLeft(16, '0').AsSpan(); + ReadOnlySpan terminalTypeBits =string.Join("", Convert.ToString(jT808_0X0107.TerminalType, 2).PadLeft(16, '0').Reverse()).AsSpan(); writer.WriteStartObject("终端类型"); writer.WriteString("bit0", terminalTypeBits[0] == '0' ? "不适用客运车辆" : "适用客运车辆"); writer.WriteString("bit1", terminalTypeBits[1] == '0' ? "不适用危险品车辆" : "适用危险品车辆"); @@ -194,7 +195,7 @@ namespace JT808.Protocol.MessageBody jT808_0X0107.Terminal_Firmware_Version_Num = reader.ReadString(jT808_0X0107.Terminal_Firmware_Version_Length); writer.WriteString($"[{firmwareVersionNumSpan.ToArray().ToHexString()}]终端固件版本号", jT808_0X0107.Terminal_Firmware_Version_Num); jT808_0X0107.GNSSModule = reader.ReadByte(); - ReadOnlySpan gNSSModuleBits = Convert.ToString(jT808_0X0107.GNSSModule, 2).PadLeft(8,'0').AsSpan(); + ReadOnlySpan gNSSModuleBits =string.Join("", Convert.ToString(jT808_0X0107.GNSSModule, 2).PadLeft(8,'0').Reverse()).AsSpan(); writer.WriteNumber($"[{jT808_0X0107.GNSSModule.ReadNumber()}]GNSS模块属性", jT808_0X0107.GNSSModule); writer.WriteStartObject("GNSS模块属性"); writer.WriteString("bit0", gNSSModuleBits[0] == '0' ? "不支持GPS定位" : "支持GPS定位"); @@ -203,7 +204,7 @@ namespace JT808.Protocol.MessageBody writer.WriteString("bit3", gNSSModuleBits[3] == '0' ? "不支持Galileo定位" : "支持Galileo定位"); writer.WriteEndObject(); jT808_0X0107.CommunicationModule = reader.ReadByte(); - ReadOnlySpan communicationModuleBits=Convert.ToString(jT808_0X0107.CommunicationModule, 2).PadLeft(8, '0').AsSpan(); + ReadOnlySpan communicationModuleBits=string.Join("",Convert.ToString(jT808_0X0107.CommunicationModule, 2).PadLeft(8, '0').Reverse()).AsSpan(); writer.WriteNumber($"[{jT808_0X0107.CommunicationModule.ReadNumber()}]通信模块属性", jT808_0X0107.CommunicationModule); writer.WriteStartObject("通信模块属性"); writer.WriteString("bit0", communicationModuleBits[0] == '0' ? "不支持GPRS通信" : "支持GPRS通信"); diff --git a/src/JT808.Protocol/MessageBody/JT808_0x0200.cs b/src/JT808.Protocol/MessageBody/JT808_0x0200.cs index 92b2d05..16fd453 100644 --- a/src/JT808.Protocol/MessageBody/JT808_0x0200.cs +++ b/src/JT808.Protocol/MessageBody/JT808_0x0200.cs @@ -212,7 +212,7 @@ namespace JT808.Protocol.MessageBody value.AlarmFlag = reader.ReadUInt32(); writer.WriteNumber($"[{value.AlarmFlag.ReadBinary().ToString()}]报警标志", value.AlarmFlag); value.StatusFlag = reader.ReadUInt32(); - var alarmFlagBits = Convert.ToString(value.AlarmFlag, 2).PadLeft(32, '0').AsSpan(); + var alarmFlagBits =string.Join("", Convert.ToString(value.AlarmFlag, 2).PadLeft(32, '0').Reverse()).AsSpan(); writer.WriteStartObject("报警标志对象"); if (reader.Version == JT808Version.JTT2019) { diff --git a/src/JT808.Protocol/MessageBody/JT808_0x8203.cs b/src/JT808.Protocol/MessageBody/JT808_0x8203.cs index afe89fd..6faa6d2 100644 --- a/src/JT808.Protocol/MessageBody/JT808_0x8203.cs +++ b/src/JT808.Protocol/MessageBody/JT808_0x8203.cs @@ -3,6 +3,7 @@ using JT808.Protocol.Formatters; using JT808.Protocol.Interfaces; using JT808.Protocol.MessagePack; using System; +using System.Linq; using System.Text.Json; namespace JT808.Protocol.MessageBody @@ -46,7 +47,7 @@ namespace JT808.Protocol.MessageBody writer.WriteNumber($"[{ value.AlarmMsgNum.ReadNumber()}]报警消息流水号", value.AlarmMsgNum); value.ManualConfirmAlarmType = reader.ReadUInt32(); writer.WriteNumber($"[{ value.ManualConfirmAlarmType.ReadNumber()}]人工确认报警类型", value.ManualConfirmAlarmType); - ReadOnlySpan manualConfirmAlarmTypeBits = Convert.ToString(value.ManualConfirmAlarmType, 2).PadLeft(32, '0').AsSpan(); + ReadOnlySpan manualConfirmAlarmTypeBits =string.Join("", Convert.ToString(value.ManualConfirmAlarmType, 2).PadLeft(32, '0').Reverse()).AsSpan(); writer.WriteStartObject($"人工确认报警对象[{manualConfirmAlarmTypeBits.ToString()}]"); writer.WriteString("[bit29~bit31]保留", manualConfirmAlarmTypeBits.Slice(29,3).ToString()); writer.WriteString($"[bit28]{manualConfirmAlarmTypeBits[28]}","确认车辆非法位移报警"); diff --git a/src/JT808.Protocol/MessageBody/JT808_0x8300.cs b/src/JT808.Protocol/MessageBody/JT808_0x8300.cs index 5dc16f1..1e46940 100644 --- a/src/JT808.Protocol/MessageBody/JT808_0x8300.cs +++ b/src/JT808.Protocol/MessageBody/JT808_0x8300.cs @@ -5,6 +5,7 @@ using JT808.Protocol.Formatters; using JT808.Protocol.Interfaces; using JT808.Protocol.MessagePack; using System; +using System.Linq; using System.Text.Json; namespace JT808.Protocol.MessageBody @@ -59,7 +60,7 @@ namespace JT808.Protocol.MessageBody JT808_0x8300 value = new JT808_0x8300(); value.TextFlag = reader.ReadByte(); writer.WriteNumber($"[{ value.TextFlag.ReadNumber()}]文本信息标志位", value.TextFlag); - ReadOnlySpan textFlagBits = Convert.ToString(value.TextFlag, 2).PadLeft(8, '0').AsSpan(); + ReadOnlySpan textFlagBits =string.Join("",Convert.ToString(value.TextFlag, 2).PadLeft(8, '0').Reverse()).AsSpan(); if (reader.Version == JT808Version.JTT2019) { writer.WriteStartObject($"文本信息标志对象[{textFlagBits.ToString()}]"); diff --git a/src/JT808.Protocol/MessageBody/JT808_0x8500.cs b/src/JT808.Protocol/MessageBody/JT808_0x8500.cs index 96161e1..a0cd666 100644 --- a/src/JT808.Protocol/MessageBody/JT808_0x8500.cs +++ b/src/JT808.Protocol/MessageBody/JT808_0x8500.cs @@ -5,6 +5,7 @@ using JT808.Protocol.Interfaces; using JT808.Protocol.MessagePack; using System; using System.Collections.Generic; +using System.Linq; using System.Text.Json; namespace JT808.Protocol.MessageBody @@ -65,7 +66,7 @@ namespace JT808.Protocol.MessageBody { value.ControlFlag = reader.ReadByte(); writer.WriteNumber($"[{ value.ControlFlag.ReadNumber()}]控制标志", value.ControlFlag); - ReadOnlySpan controlFlagBits = Convert.ToString(value.ControlFlag, 2).PadLeft(8, '0').AsSpan(); + ReadOnlySpan controlFlagBits =string.Join("", Convert.ToString(value.ControlFlag, 2).PadLeft(8, '0').Reverse()).AsSpan(); writer.WriteStartObject($"控制标志对象[{controlFlagBits.ToString()}]"); writer.WriteString("[bit1~bit7]保留", controlFlagBits.Slice(1, 7).ToString()); writer.WriteString("[bit0]", controlFlagBits[0]=='0'? "车门解锁" : "车门加锁"); diff --git a/src/JT808.Protocol/MessageBody/JT808_0x8600.cs b/src/JT808.Protocol/MessageBody/JT808_0x8600.cs index ca05366..b5265ac 100644 --- a/src/JT808.Protocol/MessageBody/JT808_0x8600.cs +++ b/src/JT808.Protocol/MessageBody/JT808_0x8600.cs @@ -6,6 +6,7 @@ using JT808.Protocol.MessagePack; using JT808.Protocol.Metadata; using System; using System.Collections.Generic; +using System.Linq; using System.Text.Json; namespace JT808.Protocol.MessageBody @@ -143,7 +144,7 @@ namespace JT808.Protocol.MessageBody writer.WriteNumber($"[{ jT808CircleAreaProperty.AreaId.ReadNumber()}]区域ID", jT808CircleAreaProperty.AreaId); jT808CircleAreaProperty.AreaProperty = reader.ReadUInt16(); writer.WriteNumber($"[{ jT808CircleAreaProperty.AreaProperty.ReadNumber()}]区域属性", jT808CircleAreaProperty.AreaProperty); - ReadOnlySpan areaPropertyBits = Convert.ToString(jT808CircleAreaProperty.AreaProperty, 2).PadLeft(16, '0').AsSpan(); + ReadOnlySpan areaPropertyBits =string.Join("", Convert.ToString(jT808CircleAreaProperty.AreaProperty, 2).PadLeft(16, '0').Reverse()).AsSpan(); writer.WriteStartObject($"区域属性对象[{areaPropertyBits.ToString()}]"); if (reader.Version == JT808Version.JTT2019) { diff --git a/src/JT808.Protocol/MessageBody/JT808_0x8602.cs b/src/JT808.Protocol/MessageBody/JT808_0x8602.cs index ce67314..fd5b681 100644 --- a/src/JT808.Protocol/MessageBody/JT808_0x8602.cs +++ b/src/JT808.Protocol/MessageBody/JT808_0x8602.cs @@ -6,6 +6,7 @@ using JT808.Protocol.MessagePack; using JT808.Protocol.Metadata; using System; using System.Collections.Generic; +using System.Linq; using System.Text.Json; namespace JT808.Protocol.MessageBody @@ -142,7 +143,7 @@ namespace JT808.Protocol.MessageBody areaProperty.AreaId = reader.ReadUInt32(); writer.WriteNumber($"[{areaProperty.AreaId.ReadNumber()}]区域ID", areaProperty.AreaId); areaProperty.AreaProperty = reader.ReadUInt16(); - ReadOnlySpan areaPropertyBits = Convert.ToString(areaProperty.AreaProperty, 2).PadLeft(16, '0').AsSpan(); + ReadOnlySpan areaPropertyBits =string.Join("", Convert.ToString(areaProperty.AreaProperty, 2).PadLeft(16, '0').Reverse()).AsSpan(); writer.WriteStartObject($"区域属性对象[{areaPropertyBits.ToString()}]"); if (reader.Version == JT808Version.JTT2019) { diff --git a/src/JT808.Protocol/MessageBody/JT808_0x8604.cs b/src/JT808.Protocol/MessageBody/JT808_0x8604.cs index 478c1dc..bc961d6 100644 --- a/src/JT808.Protocol/MessageBody/JT808_0x8604.cs +++ b/src/JT808.Protocol/MessageBody/JT808_0x8604.cs @@ -6,6 +6,7 @@ using JT808.Protocol.MessagePack; using JT808.Protocol.Metadata; using System; using System.Collections.Generic; +using System.Linq; using System.Text.Json; namespace JT808.Protocol.MessageBody @@ -167,7 +168,7 @@ namespace JT808.Protocol.MessageBody writer.WriteNumber($"[{ value.AreaId.ReadNumber()}]区域ID", value.AreaId); value.AreaProperty = reader.ReadUInt16(); writer.WriteNumber($"[{ value.AreaProperty.ReadNumber()}]区域属性", value.AreaProperty); - ReadOnlySpan areaPropertyBits = Convert.ToString(value.AreaProperty, 2).PadLeft(16, '0').AsSpan(); + ReadOnlySpan areaPropertyBits =string.Join("", Convert.ToString(value.AreaProperty, 2).PadLeft(16, '0').Reverse()).AsSpan(); writer.WriteStartObject($"区域属性对象[{areaPropertyBits.ToString()}]"); if (reader.Version == JT808Version.JTT2019) { diff --git a/src/JT808.Protocol/MessageBody/JT808_0x8606.cs b/src/JT808.Protocol/MessageBody/JT808_0x8606.cs index 7ae10c2..4f32cfa 100644 --- a/src/JT808.Protocol/MessageBody/JT808_0x8606.cs +++ b/src/JT808.Protocol/MessageBody/JT808_0x8606.cs @@ -6,6 +6,7 @@ using JT808.Protocol.MessagePack; using JT808.Protocol.Metadata; using System; using System.Collections.Generic; +using System.Linq; using System.Text.Json; namespace JT808.Protocol.MessageBody @@ -168,7 +169,7 @@ namespace JT808.Protocol.MessageBody writer.WriteNumber($"[{ value.RouteId.ReadNumber()}]路线ID", value.RouteId); value.RouteProperty = reader.ReadUInt16(); writer.WriteNumber($"[{ value.RouteProperty.ReadNumber()}]路线属性", value.RouteProperty); - ReadOnlySpan routeProperty16Bit = Convert.ToString(value.RouteProperty, 2).PadLeft(16, '0').AsSpan(); + ReadOnlySpan routeProperty16Bit =string.Join("", Convert.ToString(value.RouteProperty, 2).PadLeft(16, '0').Reverse()).AsSpan(); writer.WriteStartObject($"路线属性对象[{routeProperty16Bit.ToString()}]"); if (reader.Version == JT808Version.JTT2019) {