Просмотр исходного кода

修复一下8300json解析的问题

tags/v2.4.2
waterliu99 3 лет назад
Родитель
Сommit
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]
public void Test5_3()
{
byte[] bytes = "7e0100402d01003000067906ff000000003730393639455632350000000000000000000000000000000030303030363739090000000000000000cf7e".ToHexBytes();
byte[] bytes = "7E0102400C01003000068109024A3130303330303030363831857E".ToHexBytes();
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 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($"[bit3]{textFlagBits[3]}", "终端TTS播读");
writer.WriteString($"[bit2]{textFlagBits[2]}", "终端显示器显示");
var bit0And1= textFlagBits.Slice(0, 2).ToString();
var bit0And1= textFlagBits.Slice(0, 2).ToString().Reverse();
switch (bit0And1)
{
case "01":
writer.WriteString($"[bit0]{textFlagBits[0]}", "服务");
writer.WriteString($"[bit0~1]{textFlagBits[0]}", "服务");
break;
case "10":
writer.WriteString($"[bit0]{textFlagBits[0]}", "紧急");
writer.WriteString($"[bit0~1]{textFlagBits[0]}", "紧急");
break;
case "11":
writer.WriteString($"[bit0]{textFlagBits[0]}", "通知");
writer.WriteString($"[bit0~1]{textFlagBits[0]}", "通知");
break;
case "00":
writer.WriteString($"[bit0]{textFlagBits[0]}", "保留");
writer.WriteString($"[bit0~1]{textFlagBits[0]}", "保留");
break;
}
writer.WriteEndObject();
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
{


Загрузка…
Отмена
Сохранить