From af53d7ee1be6a45e3ac87d28dcaaa258e72377f8 Mon Sep 17 00:00:00 2001 From: "SmallChi(Koike)" <564952747@qq.com> Date: Wed, 28 Apr 2021 09:57:24 +0800 Subject: [PATCH] =?UTF-8?q?v2.3.8=20=E4=BF=AE=E5=A4=8D0x0100=E3=80=810x010?= =?UTF-8?q?2=E3=80=810x0107=E7=BB=84=E5=8C=85=E8=A1=A5\0=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../JT808.Protocol.Test.csproj | 6 ++--- .../MessageBody/JT808_0x0100Test.cs | 22 +++++++++---------- .../MessageBody/JT808_0x0102Test.cs | 6 ++--- .../MessageBody/JT808_0x0107Test.cs | 7 +++--- src/JT808.Protocol/JT808.Protocol.csproj | 4 ++-- .../MessageBody/JT808_0x0100.cs | 12 +++++----- .../MessageBody/JT808_0x0102.cs | 2 +- .../MessageBody/JT808_0x0107.cs | 10 ++++----- 8 files changed, 34 insertions(+), 35 deletions(-) diff --git a/src/JT808.Protocol.Test/JT808.Protocol.Test.csproj b/src/JT808.Protocol.Test/JT808.Protocol.Test.csproj index ff83a9e..0a3eb0e 100644 --- a/src/JT808.Protocol.Test/JT808.Protocol.Test.csproj +++ b/src/JT808.Protocol.Test/JT808.Protocol.Test.csproj @@ -108,10 +108,10 @@ - + - - + + diff --git a/src/JT808.Protocol.Test/MessageBody/JT808_0x0100Test.cs b/src/JT808.Protocol.Test/MessageBody/JT808_0x0100Test.cs index 8925a07..affce6f 100644 --- a/src/JT808.Protocol.Test/MessageBody/JT808_0x0100Test.cs +++ b/src/JT808.Protocol.Test/MessageBody/JT808_0x0100Test.cs @@ -32,13 +32,13 @@ namespace JT808.Protocol.Test.MessageBody } }; var hex = JT808Serializer.Serialize(jT808_0X0100).ToHexString(); - Assert.Equal("7E0100002D000123456789000A002800323132333430736D616C6C6368693132333030303030303030304348493132333001D4C1413132333435BA7E", hex); + Assert.Equal("7E0100002D000123456789000A002800323132333400736D616C6C6368693132330000000000000000004348493132330001D4C14131323334358A7E", hex); } [Fact] public void Test1_1() { - byte[] bytes = "7E 01 00 00 2D 00 01 23 45 67 89 00 0A 00 28 00 32 31 32 33 34 30 73 6D 61 6C 6C 63 68 69 31 32 33 30 30 30 30 30 30 30 30 30 43 48 49 31 32 33 30 01 D4 C1 41 31 32 33 34 35 BA 7E".ToHexBytes(); + byte[] bytes = "7E0100002D000123456789000A002800323132333400736D616C6C6368693132330000000000000000004348493132330001D4C14131323334358A7E".ToHexBytes(); JT808Package jT808_0X0100 = JT808Serializer.Deserialize(bytes); Assert.Equal(Enums.JT808MsgId.终端注册.ToUInt16Value(), jT808_0X0100.Header.MsgId); Assert.Equal(10, jT808_0X0100.Header.MsgNum); @@ -47,11 +47,11 @@ namespace JT808.Protocol.Test.MessageBody JT808_0x0100 JT808Bodies = (JT808_0x0100)jT808_0X0100.Bodies; Assert.Equal(40, JT808Bodies.AreaID); Assert.Equal(50, JT808Bodies.CityOrCountyId); - Assert.Equal("12340", JT808Bodies.MakerId); + Assert.Equal("1234", JT808Bodies.MakerId); Assert.Equal(1, JT808Bodies.PlateColor); Assert.Equal("粤A12345", JT808Bodies.PlateNo); - Assert.Equal("CHI1230", JT808Bodies.TerminalId); - Assert.Equal("smallchi123000000000", JT808Bodies.TerminalModel); + Assert.Equal("CHI123", JT808Bodies.TerminalId); + Assert.Equal("smallchi123", JT808Bodies.TerminalModel); } [Fact] @@ -80,13 +80,13 @@ namespace JT808.Protocol.Test.MessageBody JT808HeaderMessageBodyProperty jT808HeaderMessageBodyProperty = new JT808HeaderMessageBodyProperty(true); jT808_0X0100.Header.MessageBodyProperty = jT808HeaderMessageBodyProperty; var hex = JT808Serializer.Serialize(jT808_0X0100).ToHexString(); - Assert.Equal("7E010040540100000000000123456789000A00280032303030303030303132333430303030303030303030303030303030303030736D616C6C63686931323330303030303030303030303030303030303030303030303043484931323301D4C1413132333435B27E", hex); + Assert.Equal("7E010040540100000000000123456789000A002800323132333400000000000000736D616C6C6368693132330000000000000000000000000000000000000043484931323300000000000000000000000000000000000000000000000001D4C1413132333435B27E", hex); } [Fact] public void Test2019_2() { - byte[] bytes = "7E010040540100000000000123456789000A00280032303030303030303132333430303030303030303030303030303030303030736D616C6C63686931323330303030303030303030303030303030303030303030303043484931323301D4C1413132333435B27E".ToHexBytes(); + byte[] bytes = "7E010040540100000000000123456789000A002800323132333400000000000000736D616C6C6368693132330000000000000000000000000000000000000043484931323300000000000000000000000000000000000000000000000001D4C1413132333435B27E".ToHexBytes(); JT808Package jT808_0X0100 = JT808Serializer.Deserialize(bytes); Assert.Equal(JT808MsgId.终端注册.ToUInt16Value(), jT808_0X0100.Header.MsgId); Assert.Equal(1, jT808_0X0100.Header.ProtocolVersion); @@ -98,11 +98,11 @@ namespace JT808.Protocol.Test.MessageBody JT808_0x0100 JT808Bodies = (JT808_0x0100)jT808_0X0100.Bodies; Assert.Equal(40, JT808Bodies.AreaID); Assert.Equal(50, JT808Bodies.CityOrCountyId); - Assert.Equal("1234".PadLeft(11,'0'), JT808Bodies.MakerId); + Assert.Equal("1234", JT808Bodies.MakerId); Assert.Equal(1, JT808Bodies.PlateColor); Assert.Equal("粤A12345", JT808Bodies.PlateNo); - Assert.Equal("CHI123".PadLeft(30, '0'), JT808Bodies.TerminalId); - Assert.Equal("smallchi123".PadLeft(30, '0'), JT808Bodies.TerminalModel); + Assert.Equal("CHI123", JT808Bodies.TerminalId); + Assert.Equal("smallchi123", JT808Bodies.TerminalModel); } [Fact] @@ -126,7 +126,7 @@ namespace JT808.Protocol.Test.MessageBody }); var data = JT808Serializer.Serialize(package); var hex = data.ToHexString(); - Assert.Equal("7e0100405401000000000222222222220001000000003030304b6f696b65303032303030303030303030303030303030303030303030304b6f696b65303032303030303030303030303030303030303030303030304b6f696b6530303202d4c1413132333436107e".ToUpper(), hex); + Assert.Equal("7E0100405401000000000222222222220001000000004B6F696B653030320000004B6F696B65303032000000000000000000000000000000000000000000004B6F696B653030320000000000000000000000000000000000000000000002D4C1413132333436207E".ToUpper(), hex); } [Fact] diff --git a/src/JT808.Protocol.Test/MessageBody/JT808_0x0102Test.cs b/src/JT808.Protocol.Test/MessageBody/JT808_0x0102Test.cs index a11d8eb..680b2f2 100644 --- a/src/JT808.Protocol.Test/MessageBody/JT808_0x0102Test.cs +++ b/src/JT808.Protocol.Test/MessageBody/JT808_0x0102Test.cs @@ -44,18 +44,18 @@ namespace JT808.Protocol.Test.MessageBody SoftwareVersion="v2.0.0" }; string hex = JT808Serializer.Serialize(jT808LoginRequestProperty,JT808Version.JTT2019).ToHexString(); - Assert.Equal("05343536313231323334353637383930616263646576322E302E303030303030303030303030303030", hex); + Assert.Equal("05343536313231323334353637383930616263646576322E302E300000000000000000000000000000", hex); } [Fact] public void Test2019_2() { - byte[] bodys = "05343536313231323334353637383930616263646576322E302E303030303030303030303030303030".ToHexBytes(); + byte[] bodys = "05343536313231323334353637383930616263646576322E302E300000000000000000000000000000".ToHexBytes(); JT808_0x0102 jT808LoginRequest = JT808Serializer.Deserialize(bodys, JT808Version.JTT2019); Assert.Equal("45612", jT808LoginRequest.Code); Assert.Equal(5, jT808LoginRequest.CodeLength); Assert.Equal("1234567890abcde", jT808LoginRequest.IMEI); - Assert.Equal("v2.0.0".PadRight(20,'0'), jT808LoginRequest.SoftwareVersion); + Assert.Equal("v2.0.0", jT808LoginRequest.SoftwareVersion); } [Fact] diff --git a/src/JT808.Protocol.Test/MessageBody/JT808_0x0107Test.cs b/src/JT808.Protocol.Test/MessageBody/JT808_0x0107Test.cs index 05b155a..2d90389 100644 --- a/src/JT808.Protocol.Test/MessageBody/JT808_0x0107Test.cs +++ b/src/JT808.Protocol.Test/MessageBody/JT808_0x0107Test.cs @@ -36,14 +36,13 @@ namespace JT808.Protocol.Test.MessageBody }; jT808Package.Bodies = jT808_0X0107; string hex = JT808Serializer.Serialize(jT808Package).ToHexString(); - //"7E0107004111223344556622B8000531303630313130343535353435393535313033303030303030346436613133301234567890123456789007616263646566670A706F69757974726577710709DA7E - Assert.Equal("7E0107004111223344556622B8000531303630313130343535353435393535313033303030303030346436613133301234567890123456789007616263646566670A706F69757974726577710709DA7E".Replace(" ", ""), hex); + Assert.Equal("7E0107004111223344556622B8000531303630313130343535353435393535313033000000000000346436613133301234567890123456789007616263646566670A706F69757974726577710709DA7E".Replace(" ", ""), hex); } [Fact] public void Test2() { - byte[] bytes = "7E0107004111223344556622B8000531303630313130343535353435393535313033303030303030346436613133301234567890123456789007616263646566670A706F69757974726577710709DA7E".ToHexBytes(); + byte[] bytes = "7E0107004111223344556622B8000531303630313130343535353435393535313033000000000000346436613133301234567890123456789007616263646566670A706F69757974726577710709DA7E".ToHexBytes(); JT808Package jT808Package = JT808Serializer.Deserialize(bytes); JT808_0x0107 jT808_0X0107 = (JT808_0x0107)jT808Package.Bodies; Assert.Equal(8888, jT808Package.Header.MsgNum); @@ -51,7 +50,7 @@ namespace JT808.Protocol.Test.MessageBody Assert.Equal(Enums.JT808MsgId.查询终端属性应答.ToUInt16Value(), jT808Package.Header.MsgId); Assert.Equal(5, jT808_0X0107.TerminalType); Assert.Equal("10601", jT808_0X0107.MakerId); - Assert.Equal("10455545955103000000", jT808_0X0107.TerminalModel); + Assert.Equal("10455545955103", jT808_0X0107.TerminalModel); Assert.Equal("4d6a130", jT808_0X0107.TerminalId); Assert.Equal("12345678901234567890", jT808_0X0107.Terminal_SIM_ICCID); Assert.Equal("abcdefg", jT808_0X0107.Terminal_Hardware_Version_Num); diff --git a/src/JT808.Protocol/JT808.Protocol.csproj b/src/JT808.Protocol/JT808.Protocol.csproj index 6b24e4c..014d172 100644 --- a/src/JT808.Protocol/JT808.Protocol.csproj +++ b/src/JT808.Protocol/JT808.Protocol.csproj @@ -15,7 +15,7 @@ https://github.com/SmallChi/JT808/blob/master/LICENSE JT808.Protocol.xml false - 2.3.7 + 2.3.8 LICENSE latest true @@ -71,7 +71,7 @@ - + diff --git a/src/JT808.Protocol/MessageBody/JT808_0x0100.cs b/src/JT808.Protocol/MessageBody/JT808_0x0100.cs index 6911a2f..791a452 100644 --- a/src/JT808.Protocol/MessageBody/JT808_0x0100.cs +++ b/src/JT808.Protocol/MessageBody/JT808_0x0100.cs @@ -111,15 +111,15 @@ namespace JT808.Protocol.MessageBody writer.WriteUInt16(value.CityOrCountyId); if (writer.Version == JT808Version.JTT2019) { - writer.WriteString(value.MakerId.PadLeft(11, '0').ValiString(nameof(value.MakerId),11)); - writer.WriteString(value.TerminalModel.PadLeft(30, '0').ValiString(nameof(value.TerminalModel), 30)); - writer.WriteString(value.TerminalId.PadLeft(30, '0').ValiString(nameof(value.TerminalId), 30)); + writer.WriteString(value.MakerId.PadRight(11, '\0').ValiString(nameof(value.MakerId),11)); + writer.WriteString(value.TerminalModel.PadRight(30, '\0').ValiString(nameof(value.TerminalModel), 30)); + writer.WriteString(value.TerminalId.PadRight(30, '\0').ValiString(nameof(value.TerminalId), 30)); } else { - writer.WriteString(value.MakerId.PadRight(5, '0').ValiString(nameof(value.MakerId), 5)); - writer.WriteString(value.TerminalModel.PadRight(20, '0').ValiString(nameof(value.TerminalModel), 20)); - writer.WriteString(value.TerminalId.PadRight(7, '0').ValiString(nameof(value.TerminalId), 7)); + writer.WriteString(value.MakerId.PadRight(5, '\0').ValiString(nameof(value.MakerId), 5)); + writer.WriteString(value.TerminalModel.PadRight(20, '\0').ValiString(nameof(value.TerminalModel), 20)); + writer.WriteString(value.TerminalId.PadRight(7, '\0').ValiString(nameof(value.TerminalId), 7)); } writer.WriteByte(value.PlateColor); writer.WriteString(value.PlateNo); diff --git a/src/JT808.Protocol/MessageBody/JT808_0x0102.cs b/src/JT808.Protocol/MessageBody/JT808_0x0102.cs index 081de45..57a4cbc 100644 --- a/src/JT808.Protocol/MessageBody/JT808_0x0102.cs +++ b/src/JT808.Protocol/MessageBody/JT808_0x0102.cs @@ -75,7 +75,7 @@ namespace JT808.Protocol.MessageBody writer.WriteString(value.Code); writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - CodeLengthPosition - 1), CodeLengthPosition); writer.WriteString(value.IMEI); - writer.WriteString(value.SoftwareVersion.PadRight(20,'0').ValiString(nameof(value.SoftwareVersion),20)); + writer.WriteString(value.SoftwareVersion.PadRight(20,'\0').ValiString(nameof(value.SoftwareVersion),20)); } else { diff --git a/src/JT808.Protocol/MessageBody/JT808_0x0107.cs b/src/JT808.Protocol/MessageBody/JT808_0x0107.cs index a45a05a..569d418 100644 --- a/src/JT808.Protocol/MessageBody/JT808_0x0107.cs +++ b/src/JT808.Protocol/MessageBody/JT808_0x0107.cs @@ -135,14 +135,14 @@ namespace JT808.Protocol.MessageBody writer.WriteUInt16(value.TerminalType); if (writer.Version == JT808Version.JTT2019) { - writer.WriteString(value.MakerId.PadLeft(11, '0').ValiString(nameof(value.MakerId),11)); - writer.WriteString(value.TerminalModel.PadLeft(30, '0').ValiString(nameof(value.TerminalModel), 30)); - writer.WriteString(value.TerminalId.PadLeft(30, '0').ValiString(nameof(value.TerminalId), 30)); + writer.WriteString(value.MakerId.PadRight(11, '\0').ValiString(nameof(value.MakerId),11)); + writer.WriteString(value.TerminalModel.PadRight(30, '\0').ValiString(nameof(value.TerminalModel), 30)); + writer.WriteString(value.TerminalId.PadRight(30, '\0').ValiString(nameof(value.TerminalId), 30)); } else { - writer.WriteString(value.MakerId.PadRight(5, '0').ValiString(nameof(value.MakerId), 5)); - writer.WriteString(value.TerminalModel.PadRight(20, '0').ValiString(nameof(value.TerminalModel), 20)); + writer.WriteString(value.MakerId.PadRight(5, '\0').ValiString(nameof(value.MakerId), 5)); + writer.WriteString(value.TerminalModel.PadRight(20, '\0').ValiString(nameof(value.TerminalModel), 20)); writer.WriteString(value.TerminalId.PadRight(7, '0').ValiString(nameof(value.TerminalId), 7)); } writer.WriteBCD(value.Terminal_SIM_ICCID.ValiString(nameof(value.Terminal_SIM_ICCID), 20), 20);