diff --git a/src/JT808.Protocol.Test/MessageBody/JT808_0x0107Test.cs b/src/JT808.Protocol.Test/MessageBody/JT808_0x0107Test.cs index 2d90389..b600fe5 100644 --- a/src/JT808.Protocol.Test/MessageBody/JT808_0x0107Test.cs +++ b/src/JT808.Protocol.Test/MessageBody/JT808_0x0107Test.cs @@ -36,13 +36,13 @@ namespace JT808.Protocol.Test.MessageBody }; jT808Package.Bodies = jT808_0X0107; string hex = JT808Serializer.Serialize(jT808Package).ToHexString(); - Assert.Equal("7E0107004111223344556622B8000531303630313130343535353435393535313033000000000000346436613133301234567890123456789007616263646566670A706F69757974726577710709DA7E".Replace(" ", ""), hex); + Assert.Equal("7E0107004111223344556622B8000531303630313130343535353435393535313033000000000000346436613133001234567890123456789007616263646566670A706F69757974726577710709EA7E".Replace(" ", ""), hex); } [Fact] public void Test2() { - byte[] bytes = "7E0107004111223344556622B8000531303630313130343535353435393535313033000000000000346436613133301234567890123456789007616263646566670A706F69757974726577710709DA7E".ToHexBytes(); + byte[] bytes = "7E0107004111223344556622B8000531303630313130343535353435393535313033000000000000346436613133001234567890123456789007616263646566670A706F69757974726577710709EA7E".ToHexBytes(); JT808Package jT808Package = JT808Serializer.Deserialize(bytes); JT808_0x0107 jT808_0X0107 = (JT808_0x0107)jT808Package.Bodies; Assert.Equal(8888, jT808Package.Header.MsgNum); @@ -51,7 +51,7 @@ namespace JT808.Protocol.Test.MessageBody Assert.Equal(5, jT808_0X0107.TerminalType); Assert.Equal("10601", jT808_0X0107.MakerId); Assert.Equal("10455545955103", jT808_0X0107.TerminalModel); - Assert.Equal("4d6a130", jT808_0X0107.TerminalId); + Assert.Equal("4d6a13", jT808_0X0107.TerminalId); Assert.Equal("12345678901234567890", jT808_0X0107.Terminal_SIM_ICCID); Assert.Equal("abcdefg", jT808_0X0107.Terminal_Hardware_Version_Num); Assert.Equal("poiuytrewq", jT808_0X0107.Terminal_Firmware_Version_Num); diff --git a/src/JT808.Protocol.Test/MessageBody/JT808_0x0702Test.cs b/src/JT808.Protocol.Test/MessageBody/JT808_0x0702Test.cs index 5bf9654..0f12221 100644 --- a/src/JT808.Protocol.Test/MessageBody/JT808_0x0702Test.cs +++ b/src/JT808.Protocol.Test/MessageBody/JT808_0x0702Test.cs @@ -66,21 +66,21 @@ namespace JT808.Protocol.Test.MessageBody LicenseIssuing = "qwertx", CertificateExpiresDate = DateTime.Parse("2018-08-16") }; + var hex = JT808Serializer.Serialize(jT808_0X0702).ToHexString(); - Assert.Equal("01 18 08 16 09 16 16 00 05 6B 6F 69 6B 65 71 77 65 31 32 33 34 35 36 61 61 61 30 30 30 30 30 30 30 30 06 71 77 65 72 74 78 20 18 08 16".Replace(" ", ""), hex); - //"01 18 08 16 09 16 16 00 05 6B 6F 69 6B 65 71 77 65 31 32 33 34 35 36 61 61 61 30 30 30 30 30 30 30 30 06 71 77 65 72 74 78 20 18 08 16" + Assert.Equal("0118081609161600056B6F696B6571776531323334353661616100000000000000000671776572747820180816".Replace(" ", ""), hex); } [Fact] public void Test3_1() { - byte[] bytes = "01 18 08 16 09 16 16 00 05 6B 6F 69 6B 65 71 77 65 31 32 33 34 35 36 61 61 61 30 30 30 30 30 30 30 30 06 71 77 65 72 74 78 20 18 08 16".ToHexBytes(); + byte[] bytes = "0118081609161600056B6F696B6571776531323334353661616100000000000000000671776572747820180816".ToHexBytes(); JT808_0x0702 jT808_0X0702 = JT808Serializer.Deserialize(bytes); Assert.Equal(JT808ICCardStatus.从业资格证IC卡插入_驾驶员上班, jT808_0X0702.IC_Card_Status); Assert.Equal(DateTime.Parse("2018-08-16 09:16:16"), jT808_0X0702.IC_Card_PlugDateTime); Assert.Equal(JT808ICCardReadResult.IC卡读卡成功, jT808_0X0702.IC_Card_ReadResult); Assert.Equal("koike", jT808_0X0702.DriverUserName); - Assert.Equal("qwe123456aaa00000000", jT808_0X0702.QualificationCode); + Assert.Equal("qwe123456aaa", jT808_0X0702.QualificationCode); Assert.Equal("qwertx", jT808_0X0702.LicenseIssuing); Assert.Equal(DateTime.Parse("2018-08-16"), jT808_0X0702.CertificateExpiresDate); } @@ -100,23 +100,23 @@ namespace JT808.Protocol.Test.MessageBody DriverIdentityCard="12345678901234567" }; var hex = JT808Serializer.Serialize(jT808_0X0702, JT808Version.JTT2019).ToHexString(); - Assert.Equal("0119120111111100056B6F696B65717765313233343536616161303030303030303006717765727478201912013132333435363738393031323334353637303030", hex); + Assert.Equal("0119120111111100056B6F696B65717765313233343536616161000000000000000006717765727478201912013132333435363738393031323334353637000000", hex); } [Fact] public void Test_2019_2() { - byte[] bytes = "0119120111111100056B6F696B65717765313233343536616161303030303030303006717765727478201912013132333435363738393031323334353637303030".ToHexBytes(); + byte[] bytes = "0119120111111100056B6F696B65717765313233343536616161000000000000000006717765727478201912013132333435363738393031323334353637000000".ToHexBytes(); JT808_0x0702 jT808_0X0702 = JT808Serializer.Deserialize(bytes, JT808Version.JTT2019); Assert.Equal(JT808ICCardStatus.从业资格证IC卡插入_驾驶员上班, jT808_0X0702.IC_Card_Status); Assert.Equal(DateTime.Parse("2019-12-01 11:11:11"), jT808_0X0702.IC_Card_PlugDateTime); Assert.Equal(JT808ICCardReadResult.IC卡读卡成功, jT808_0X0702.IC_Card_ReadResult); Assert.Equal("koike", jT808_0X0702.DriverUserName); - Assert.Equal("qwe123456aaa00000000", jT808_0X0702.QualificationCode); + Assert.Equal("qwe123456aaa", jT808_0X0702.QualificationCode); Assert.Equal("qwertx", jT808_0X0702.LicenseIssuing); Assert.Equal(DateTime.Parse("2019-12-01"), jT808_0X0702.CertificateExpiresDate); - Assert.Equal("12345678901234567000", jT808_0X0702.DriverIdentityCard); + Assert.Equal("12345678901234567", jT808_0X0702.DriverIdentityCard); } [Fact] diff --git a/src/JT808.Protocol/JT808.Protocol.csproj b/src/JT808.Protocol/JT808.Protocol.csproj index 014d172..fcc3fa1 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.8 + 2.3.9 LICENSE latest true diff --git a/src/JT808.Protocol/MessageBody/JT808_0x0107.cs b/src/JT808.Protocol/MessageBody/JT808_0x0107.cs index 569d418..ff97cc2 100644 --- a/src/JT808.Protocol/MessageBody/JT808_0x0107.cs +++ b/src/JT808.Protocol/MessageBody/JT808_0x0107.cs @@ -143,7 +143,7 @@ namespace JT808.Protocol.MessageBody { 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.TerminalId.PadRight(7, '\0').ValiString(nameof(value.TerminalId), 7)); } writer.WriteBCD(value.Terminal_SIM_ICCID.ValiString(nameof(value.Terminal_SIM_ICCID), 20), 20); writer.WriteByte((byte)value.Terminal_Hardware_Version_Num.Length); diff --git a/src/JT808.Protocol/MessageBody/JT808_0x0702.cs b/src/JT808.Protocol/MessageBody/JT808_0x0702.cs index 19bf720..1dbec23 100644 --- a/src/JT808.Protocol/MessageBody/JT808_0x0702.cs +++ b/src/JT808.Protocol/MessageBody/JT808_0x0702.cs @@ -163,13 +163,13 @@ namespace JT808.Protocol.MessageBody { writer.WriteByte((byte)value.DriverUserName.Length); writer.WriteString(value.DriverUserName); - writer.WriteString(value.QualificationCode.PadRight(20, '0').ValiString(nameof(value.QualificationCode),20)); + writer.WriteString(value.QualificationCode.PadRight(20, '\0').ValiString(nameof(value.QualificationCode),20)); writer.WriteByte((byte)value.LicenseIssuing.Length); writer.WriteString(value.LicenseIssuing); writer.WriteDateTime4(value.CertificateExpiresDate); if (writer.Version == JT808Version.JTT2019) { - writer.WriteString(value.DriverIdentityCard.PadRight(20,'0').ValiString(nameof(value.DriverIdentityCard), 20)); + writer.WriteString(value.DriverIdentityCard.PadRight(20,'\0').ValiString(nameof(value.DriverIdentityCard), 20)); } } } diff --git a/src/JT808.Protocol/MessageBody/JT808_0x8108.cs b/src/JT808.Protocol/MessageBody/JT808_0x8108.cs index c810fab..5a378ff 100644 --- a/src/JT808.Protocol/MessageBody/JT808_0x8108.cs +++ b/src/JT808.Protocol/MessageBody/JT808_0x8108.cs @@ -81,11 +81,11 @@ namespace JT808.Protocol.MessageBody writer.WriteByte((byte)value.UpgradeType); if (writer.Version == JT808Version.JTT2019) { - writer.WriteString(value.MakerId.PadLeft(11, '0')); + writer.WriteString(value.MakerId.PadLeft(11, '\0')); } else { - writer.WriteString(value.MakerId.PadRight(5, '0')); + writer.WriteString(value.MakerId.PadRight(5, '\0')); } writer.WriteByte((byte)value.VersionNum.Length); writer.WriteString(value.VersionNum);