Преглед изворни кода

修复一下8300json解析的问题

tags/v2.4.2
waterliu99 пре 3 година
родитељ
комит
a97ec6cf16
2 измењених фајлова са 18 додато и 8 уклоњено
  1. +2
    -2
      src/JT808.Protocol.Test/MessageBody/JT808_0x0200Test.cs
  2. +16
    -6
      src/JT808.Protocol/MessageBody/JT808_0x8300.cs

+ 2
- 2
src/JT808.Protocol.Test/MessageBody/JT808_0x0200Test.cs Прегледај датотеку

@@ -312,9 +312,9 @@ namespace JT808.Protocol.Test.MessageBody
[Fact] [Fact]
public void Test5_3() public void Test5_3()
{ {
byte[] bytes = "7e0100402d01003000067906ff000000003730393639455632350000000000000000000000000000000030303030363739090000000000000000cf7e".ToHexBytes();
byte[] bytes = "7E0102400C01003000068109024A3130303330303030363831857E".ToHexBytes();
var jT808Package = JT808Serializer.Deserialize<JT808Package>(bytes,JT808Version.JTT2013Force); var jT808Package = JT808Serializer.Deserialize<JT808Package>(bytes,JT808Version.JTT2013Force);
jT808Package.Header.ProtocolVersion = 0;//修改成 2013协议标识
jT808Package.Header.MessageBodyProperty.VersionFlag = false;//修改成 2013协议标识
var newBytes = JT808Serializer.Serialize(jT808Package);//重新序列化 var newBytes = JT808Serializer.Serialize(jT808Package);//重新序列化
var jt808PackageNew = JT808Serializer.Deserialize(newBytes);//验证是否修改标识符成功 var jt808PackageNew = JT808Serializer.Deserialize(newBytes);//验证是否修改标识符成功
} }


+ 16
- 6
src/JT808.Protocol/MessageBody/JT808_0x8300.cs Прегледај датотеку

@@ -90,25 +90,35 @@ namespace JT808.Protocol.MessageBody
writer.WriteString($"[bit4]{textFlagBits[4]}", "-"); writer.WriteString($"[bit4]{textFlagBits[4]}", "-");
writer.WriteString($"[bit3]{textFlagBits[3]}", "终端TTS播读"); writer.WriteString($"[bit3]{textFlagBits[3]}", "终端TTS播读");
writer.WriteString($"[bit2]{textFlagBits[2]}", "终端显示器显示"); writer.WriteString($"[bit2]{textFlagBits[2]}", "终端显示器显示");
var bit0And1= textFlagBits.Slice(0, 2).ToString();
var bit0And1= textFlagBits.Slice(0, 2).ToString().Reverse();
switch (bit0And1) switch (bit0And1)
{ {
case "01": case "01":
writer.WriteString($"[bit0]{textFlagBits[0]}", "服务");
writer.WriteString($"[bit0~1]{textFlagBits[0]}", "服务");
break; break;
case "10": case "10":
writer.WriteString($"[bit0]{textFlagBits[0]}", "紧急");
writer.WriteString($"[bit0~1]{textFlagBits[0]}", "紧急");
break; break;
case "11": case "11":
writer.WriteString($"[bit0]{textFlagBits[0]}", "通知");
writer.WriteString($"[bit0~1]{textFlagBits[0]}", "通知");
break; break;
case "00": case "00":
writer.WriteString($"[bit0]{textFlagBits[0]}", "保留");
writer.WriteString($"[bit0~1]{textFlagBits[0]}", "保留");
break; break;
} }
writer.WriteEndObject(); writer.WriteEndObject();
value.TextType = reader.ReadByte(); value.TextType = reader.ReadByte();
writer.WriteNumber($"[{ value.TextType.ReadNumber()}]文本类型-{(value.TextType==1? "通知":"服务")}", value.TextType);
if (value.TextType == 1)
{
writer.WriteNumber($"[{ value.TextType.ReadNumber()}]文本类型-通知", value.TextType);
}
else if (value.TextType == 2)
{
writer.WriteNumber($"[{ value.TextType.ReadNumber()}]文本类型-服务", value.TextType);
}
else {
writer.WriteNumber($"[{ value.TextType.ReadNumber()}]文本类型-未设置}", value.TextType);
}
} }
else else
{ {


Loading…
Откажи
Сачувај