浏览代码

v2.3.9

修复0x0107、0x0702、0x8108补\0操作
tags/v2.3.9
SmallChi(Koike) 4 年前
父节点
当前提交
a0e717abf1
共有 6 个文件被更改,包括 17 次插入17 次删除
  1. +3
    -3
      src/JT808.Protocol.Test/MessageBody/JT808_0x0107Test.cs
  2. +8
    -8
      src/JT808.Protocol.Test/MessageBody/JT808_0x0702Test.cs
  3. +1
    -1
      src/JT808.Protocol/JT808.Protocol.csproj
  4. +1
    -1
      src/JT808.Protocol/MessageBody/JT808_0x0107.cs
  5. +2
    -2
      src/JT808.Protocol/MessageBody/JT808_0x0702.cs
  6. +2
    -2
      src/JT808.Protocol/MessageBody/JT808_0x8108.cs

+ 3
- 3
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);


+ 8
- 8
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<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]


+ 1
- 1
src/JT808.Protocol/JT808.Protocol.csproj 查看文件

@@ -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>


+ 1
- 1
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);


+ 2
- 2
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));
}
}
}


+ 2
- 2
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);


正在加载...
取消
保存