Browse Source

v2.2.11

1.升级core版本
2.修改数据包解析器自动识别版本
3.完善0200分析器输出
tags/v2.2.11
SmallChi(Koike) 4 years ago
parent
commit
461e3c3105
6 changed files with 56 additions and 12 deletions
  1. +1
    -1
      .github/workflows/dotnetcore.yml
  2. +4
    -4
      src/JT808.Protocol.Test/JT808.Protocol.Test.csproj
  3. +42
    -0
      src/JT808.Protocol.Test/MessageBody/JT808_0x0100Test.cs
  4. +5
    -5
      src/JT808.Protocol/JT808.Protocol.csproj
  5. +2
    -0
      src/JT808.Protocol/JT808Package.cs
  6. +2
    -2
      src/JT808.Protocol/MessageBody/JT808_0x0200.cs

+ 1
- 1
.github/workflows/dotnetcore.yml View File

@@ -12,7 +12,7 @@ jobs:
- name: Setup .NET Core - name: Setup .NET Core
uses: actions/setup-dotnet@master uses: actions/setup-dotnet@master
with: with:
dotnet-version: 3.1.101
dotnet-version: 3.1.401
- name: dotnet info - name: dotnet info
run: dotnet --info run: dotnet --info
- name: dotnet restore - name: dotnet restore


+ 4
- 4
src/JT808.Protocol.Test/JT808.Protocol.Test.csproj View File

@@ -107,22 +107,22 @@
</ItemGroup> </ItemGroup>


<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8">
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.3.0">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.0" />
<PackageReference Include="NETStandard.Library" Version="2.0.3" /> <PackageReference Include="NETStandard.Library" Version="2.0.3" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="System.Drawing.Common" Version="4.7.0" /> <PackageReference Include="System.Drawing.Common" Version="4.7.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.1.3" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.1.7" />
<PackageReference Include="System.Runtime.InteropServices.RuntimeInformation" Version="4.3.0" /> <PackageReference Include="System.Runtime.InteropServices.RuntimeInformation" Version="4.3.0" />
<PackageReference Include="xunit" Version="2.4.1" /> <PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.console" Version="2.4.1"> <PackageReference Include="xunit.runner.console" Version="2.4.1">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference> </PackageReference>


+ 42
- 0
src/JT808.Protocol.Test/MessageBody/JT808_0x0100Test.cs View File

@@ -110,6 +110,48 @@ namespace JT808.Protocol.Test.MessageBody
{ {
byte[] bytes = "7E010040540100000000000123456789000A00280032303030303030303132333430303030303030303030303030303030303030736D616C6C63686931323330303030303030303030303030303030303030303030303043484931323301D4C1413132333435B27E".ToHexBytes(); byte[] bytes = "7E010040540100000000000123456789000A00280032303030303030303132333430303030303030303030303030303030303030736D616C6C63686931323330303030303030303030303030303030303030303030303043484931323301D4C1413132333435B27E".ToHexBytes();
string json = JT808Serializer.Analyze<JT808Package>(bytes); string json = JT808Serializer.Analyze<JT808Package>(bytes);
}
[Fact]
public void Test2019_4_1()
{
var package = JT808MsgId.终端注册.Create2019("22222222222", new JT808_0x0100()
{
PlateNo = "粤A12346",
PlateColor = 2,
AreaID = 0,
CityOrCountyId = 0,
MakerId = "Koike002",
TerminalId = "Koike002",
TerminalModel = "Koike002"
});
var data = JT808Serializer.Serialize(package);
var hex = data.ToHexString();
Assert.Equal("7e0100405401000000000222222222220001000000003030304b6f696b65303032303030303030303030303030303030303030303030304b6f696b65303032303030303030303030303030303030303030303030304b6f696b6530303202d4c1413132333436107e".ToUpper(), hex);
}

[Fact]
public void Test2019_4_2()
{
byte[] bytes = "7e0100405401000000000222222222220001000000003030304b6f696b65303032303030303030303030303030303030303030303030304b6f696b65303032303030303030303030303030303030303030303030304b6f696b6530303202d4c1413132333436107e".ToHexBytes();
JT808Package jT808_0X0100 = JT808Serializer.Deserialize<JT808Package>(bytes);
Assert.Equal("22222222222", jT808_0X0100.Header.TerminalPhoneNo);
Assert.Equal(1, jT808_0X0100.Header.ProtocolVersion);
Assert.NotNull(jT808_0X0100.Bodies);
JT808_0x0100 body = jT808_0X0100.Bodies as JT808_0x0100;
Assert.Equal(0, body.AreaID);
Assert.Equal(2, body.PlateColor);
Assert.Equal(0, body.CityOrCountyId);
Assert.Equal("粤A12346", body.PlateNo.TrimStart());
Assert.Equal("Koike002", body.MakerId.TrimStart('0'));
Assert.Equal("Koike002", body.TerminalId.TrimStart('0'));
Assert.Equal("Koike002", body.TerminalModel.TrimStart('0'));
}

[Fact]
public void Test2019_4_3()
{
byte[] bytes = "7e0100405401000000000222222222220001000000003030304b6f696b65303032303030303030303030303030303030303030303030304b6f696b65303032303030303030303030303030303030303030303030304b6f696b6530303202d4c1413132333436107e".ToHexBytes();
string json = JT808Serializer.Analyze<JT808Package>(bytes);
} }
} }
} }

+ 5
- 5
src/JT808.Protocol/JT808.Protocol.csproj View File

@@ -14,7 +14,7 @@
<licenseUrl>https://github.com/SmallChi/JT808/blob/master/LICENSE</licenseUrl> <licenseUrl>https://github.com/SmallChi/JT808/blob/master/LICENSE</licenseUrl>
<license>https://github.com/SmallChi/JT808/blob/master/LICENSE</license> <license>https://github.com/SmallChi/JT808/blob/master/LICENSE</license>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild> <GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<Version>2.2.10</Version>
<Version>2.2.11</Version>
<PackageLicenseFile>LICENSE</PackageLicenseFile> <PackageLicenseFile>LICENSE</PackageLicenseFile>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
@@ -65,14 +65,14 @@
</ItemGroup> </ItemGroup>


<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8">
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.3.0">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" /> <PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.7.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.1.3" />
<PackageReference Include="System.Text.Json" Version="4.7.1" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.7.1" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.1.7" />
<PackageReference Include="System.Text.Json" Version="4.7.2" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>


+ 2
- 0
src/JT808.Protocol/JT808Package.cs View File

@@ -269,6 +269,7 @@ namespace JT808.Protocol
writer.WriteNumber($"[{messageBodyPropertyReadOnlySpan.ToString()}]消息体属性", messageBodyPropertyValue); writer.WriteNumber($"[{messageBodyPropertyReadOnlySpan.ToString()}]消息体属性", messageBodyPropertyValue);
if (headerMessageBodyProperty.VersionFlag) if (headerMessageBodyProperty.VersionFlag)
{ {
reader.Version = JT808Version.JTT2019;
writer.WriteNumber( "[bit15]保留", 0); writer.WriteNumber( "[bit15]保留", 0);
writer.WriteBoolean("[bit14]协议版本标识", headerMessageBodyProperty.VersionFlag); writer.WriteBoolean("[bit14]协议版本标识", headerMessageBodyProperty.VersionFlag);
writer.WriteBoolean("[bit13]是否分包", headerMessageBodyProperty.IsPackage); writer.WriteBoolean("[bit13]是否分包", headerMessageBodyProperty.IsPackage);
@@ -285,6 +286,7 @@ namespace JT808.Protocol
} }
else else
{ {
reader.Version = JT808Version.JTT2013;
writer.WriteNumber("[bit15]保留", 0); writer.WriteNumber("[bit15]保留", 0);
writer.WriteNumber("[bit14]保留", 0); writer.WriteNumber("[bit14]保留", 0);
writer.WriteBoolean("[bit13]是否分包", headerMessageBodyProperty.IsPackage); writer.WriteBoolean("[bit13]是否分包", headerMessageBodyProperty.IsPackage);


+ 2
- 2
src/JT808.Protocol/MessageBody/JT808_0x0200.cs View File

@@ -210,7 +210,7 @@ namespace JT808.Protocol.MessageBody
{ {
JT808_0x0200 value = new JT808_0x0200(); JT808_0x0200 value = new JT808_0x0200();
value.AlarmFlag = reader.ReadUInt32(); value.AlarmFlag = reader.ReadUInt32();
writer.WriteNumber($"[{value.AlarmFlag.ReadNumber()}]报警标志", value.AlarmFlag);
writer.WriteNumber($"[{value.AlarmFlag.ReadBinary().ToString()}]报警标志", value.AlarmFlag);
value.StatusFlag = reader.ReadUInt32(); value.StatusFlag = reader.ReadUInt32();
var alarmFlagBits = Convert.ToString(value.AlarmFlag, 2).PadLeft(32, '0').AsSpan(); var alarmFlagBits = Convert.ToString(value.AlarmFlag, 2).PadLeft(32, '0').AsSpan();
writer.WriteStartObject("报警标志对象"); writer.WriteStartObject("报警标志对象");
@@ -261,7 +261,7 @@ namespace JT808.Protocol.MessageBody
writer.WriteString($"[bit1]超速报警", $"{alarmFlagBits[1]}"); writer.WriteString($"[bit1]超速报警", $"{alarmFlagBits[1]}");
writer.WriteString($"[bit0]紧急报警,触动报警开关后触发", $"{alarmFlagBits[0]}"); writer.WriteString($"[bit0]紧急报警,触动报警开关后触发", $"{alarmFlagBits[0]}");
writer.WriteEndObject(); writer.WriteEndObject();
writer.WriteNumber($"[{value.StatusFlag.ReadNumber()}]状态位标志", value.StatusFlag);
writer.WriteNumber($"[{value.StatusFlag.ReadBinary().ToString()}]状态位标志", value.StatusFlag);
var StatusFlagBits = Convert.ToString(value.StatusFlag, 2).PadLeft(32, '0').AsSpan(); var StatusFlagBits = Convert.ToString(value.StatusFlag, 2).PadLeft(32, '0').AsSpan();
writer.WriteStartObject("状态标志对象"); writer.WriteStartObject("状态标志对象");
if (reader.Version == JT808Version.JTT2019) if (reader.Version == JT808Version.JTT2019)


Loading…
Cancel
Save