@@ -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<char> terminalTypeBits = Convert.ToString(jT808_0X0107.TerminalType, 2).PadLeft(16, '0').AsSpan(); | |||
ReadOnlySpan<char> 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<char> gNSSModuleBits = Convert.ToString(jT808_0X0107.GNSSModule, 2).PadLeft(8,'0').AsSpan(); | |||
ReadOnlySpan<char> 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<char> communicationModuleBits=Convert.ToString(jT808_0X0107.CommunicationModule, 2).PadLeft(8, '0').AsSpan(); | |||
ReadOnlySpan<char> 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通信"); | |||
@@ -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) | |||
{ | |||
@@ -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<char> manualConfirmAlarmTypeBits = Convert.ToString(value.ManualConfirmAlarmType, 2).PadLeft(32, '0').AsSpan(); | |||
ReadOnlySpan<char> 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]}","确认车辆非法位移报警"); | |||
@@ -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<char> textFlagBits = Convert.ToString(value.TextFlag, 2).PadLeft(8, '0').AsSpan(); | |||
ReadOnlySpan<char> textFlagBits =string.Join("",Convert.ToString(value.TextFlag, 2).PadLeft(8, '0').Reverse()).AsSpan(); | |||
if (reader.Version == JT808Version.JTT2019) | |||
{ | |||
writer.WriteStartObject($"文本信息标志对象[{textFlagBits.ToString()}]"); | |||
@@ -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<char> controlFlagBits = Convert.ToString(value.ControlFlag, 2).PadLeft(8, '0').AsSpan(); | |||
ReadOnlySpan<char> 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'? "车门解锁" : "车门加锁"); | |||
@@ -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<char> areaPropertyBits = Convert.ToString(jT808CircleAreaProperty.AreaProperty, 2).PadLeft(16, '0').AsSpan(); | |||
ReadOnlySpan<char> areaPropertyBits =string.Join("", Convert.ToString(jT808CircleAreaProperty.AreaProperty, 2).PadLeft(16, '0').Reverse()).AsSpan(); | |||
writer.WriteStartObject($"区域属性对象[{areaPropertyBits.ToString()}]"); | |||
if (reader.Version == JT808Version.JTT2019) | |||
{ | |||
@@ -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<char> areaPropertyBits = Convert.ToString(areaProperty.AreaProperty, 2).PadLeft(16, '0').AsSpan(); | |||
ReadOnlySpan<char> areaPropertyBits =string.Join("", Convert.ToString(areaProperty.AreaProperty, 2).PadLeft(16, '0').Reverse()).AsSpan(); | |||
writer.WriteStartObject($"区域属性对象[{areaPropertyBits.ToString()}]"); | |||
if (reader.Version == JT808Version.JTT2019) | |||
{ | |||
@@ -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<char> areaPropertyBits = Convert.ToString(value.AreaProperty, 2).PadLeft(16, '0').AsSpan(); | |||
ReadOnlySpan<char> areaPropertyBits =string.Join("", Convert.ToString(value.AreaProperty, 2).PadLeft(16, '0').Reverse()).AsSpan(); | |||
writer.WriteStartObject($"区域属性对象[{areaPropertyBits.ToString()}]"); | |||
if (reader.Version == JT808Version.JTT2019) | |||
{ | |||
@@ -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<char> routeProperty16Bit = Convert.ToString(value.RouteProperty, 2).PadLeft(16, '0').AsSpan(); | |||
ReadOnlySpan<char> routeProperty16Bit =string.Join("", Convert.ToString(value.RouteProperty, 2).PadLeft(16, '0').Reverse()).AsSpan(); | |||
writer.WriteStartObject($"路线属性对象[{routeProperty16Bit.ToString()}]"); | |||
if (reader.Version == JT808Version.JTT2019) | |||
{ | |||