浏览代码

修复查岗对象id读取长度

tags/v2.2.0
yedajiang44 4 年前
父节点
当前提交
77e26818ae
共有 2 个文件被更改,包括 6 次插入6 次删除
  1. +2
    -2
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x9300_0x9301Test.cs
  2. +4
    -4
      src/JT809.Protocol/SubMessageBody/JT809_0x9300_0x9301.cs

+ 2
- 2
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x9300_0x9301Test.cs 查看文件

@@ -63,13 +63,13 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
};
var hex = JT809_2019_Serializer.Serialize(jT809_0x9300_0x9301).ToHexString();
testOutput.WriteLine(hex);
Assert.Equal("02736D616C6C636869000000000000000D10000000057265706C79", hex);
Assert.Equal("02736D616C6C6368690000000000000000000000000000000D10000000057265706C79", hex);
}

[Fact(DisplayName = "2019版反序化")]
public void Test4()
{
var bytes = "02736D616C6C636869000000000000000D10000000057265706C79".ToHexBytes();
var bytes = "02736D616C6C6368690000000000000000000000000000000D10000000057265706C79".ToHexBytes();
JT809_0x9300_0x9301 jT809_0x9300_0x9301 = JT809_2019_Serializer.Deserialize<JT809_0x9300_0x9301>(bytes);
Assert.Equal(JT809_0x9301_ObjectType.下级平台所属单一业户, jT809_0x9300_0x9301.ObjectType);
Assert.Equal((uint)3344, jT809_0x9300_0x9301.InfoID);


+ 4
- 4
src/JT809.Protocol/SubMessageBody/JT809_0x9300_0x9301.cs 查看文件

@@ -51,8 +51,8 @@ namespace JT809.Protocol.SubMessageBody
{
value.ObjectType = (JT809_0x9301_ObjectType)reader.ReadByte();
writer.WriteString($"[{value.ObjectType.ToByteValue()}]查岗对象的类型", value.ObjectType.ToString());
virtualHex = reader.ReadVirtualArray(12);
value.ObjectID = reader.ReadString(12);
virtualHex = reader.ReadVirtualArray(20);
value.ObjectID = reader.ReadString(20);
writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]查岗对象的ID", value.ObjectID);
writer.WriteNumber($"[{value.AnswerTime.ReadNumber()}]查岗应答时限", value.AnswerTime);
}
@@ -71,7 +71,7 @@ namespace JT809.Protocol.SubMessageBody
if (config.Version == JT809Version.JTT2019)
{
value.ObjectType = (JT809_0x9301_ObjectType)reader.ReadByte();
value.ObjectID = reader.ReadString(12);
value.ObjectID = reader.ReadString(20);
value.AnswerTime = reader.ReadByte();
}
value.InfoID = reader.ReadUInt32();
@@ -86,7 +86,7 @@ namespace JT809.Protocol.SubMessageBody
if (config.Version == JT809Version.JTT2019)
{
writer.WriteByte((byte)value.ObjectType);
writer.WriteStringPadRight(value.ObjectID, 12);
writer.WriteStringPadRight(value.ObjectID, 20);
writer.WriteByte(value.AnswerTime);
}
writer.WriteUInt32(value.InfoID);


正在加载...
取消
保存