@@ -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); | |||
@@ -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<JT808_0x0702>(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<JT808_0x0702>(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] | |||
@@ -15,7 +15,7 @@ | |||
<license>https://github.com/SmallChi/JT808/blob/master/LICENSE</license> | |||
<DocumentationFile>JT808.Protocol.xml</DocumentationFile> | |||
<GeneratePackageOnBuild>false</GeneratePackageOnBuild> | |||
<Version>2.3.8</Version> | |||
<Version>2.3.9</Version> | |||
<PackageLicenseFile>LICENSE</PackageLicenseFile> | |||
<AnalysisLevel>latest</AnalysisLevel> | |||
<EnableNETAnalyzers>true</EnableNETAnalyzers> | |||
@@ -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); | |||
@@ -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)); | |||
} | |||
} | |||
} | |||
@@ -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); | |||