Explorar el Código

1.升级net6

2.新增车辆颜色为2021标准
3.修改文档
tags/v2.2.1
SmallChi(Koike) hace 3 años
padre
commit
064b511769
Se han modificado 15 ficheros con 83 adiciones y 66 borrados
  1. +1
    -1
      .github/workflows/dotnetcore.yml
  2. +13
    -13
      README.md
  3. +6
    -6
      src/Info.props
  4. +2
    -2
      src/JT809.Protocol.Benchmark/JT809.Protocol.Benchmark.csproj
  5. +1
    -1
      src/JT809.Protocol.Benchmark/JT809SerializerContext.cs
  6. +4
    -4
      src/JT809.Protocol.Test/JT809.Protocol.Test.csproj
  7. +4
    -4
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1500_0x1502Test.cs
  8. +1
    -1
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x9500_0x9502Test.cs
  9. +9
    -5
      src/JT809.Protocol/Enums/JT809VehicleColorType.cs
  10. +1
    -1
      src/JT809.Protocol/Enums/JT809_0x9502_ImageType.cs
  11. +1
    -1
      src/JT809.Protocol/Enums/JT809_0x9502_SizeType.cs
  12. +30
    -17
      src/JT809.Protocol/JT809.Protocol.csproj
  13. +1
    -1
      src/JT809.Protocol/JT809.Protocol.xml
  14. +6
    -6
      src/JT809.Protocol/SubMessageBody/JT809_0x1500_0x1502.cs
  15. +3
    -3
      src/JT809.Protocol/SubMessageBody/JT809_0x9500_0x9502.cs

+ 1
- 1
.github/workflows/dotnetcore.yml Ver fichero

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


+ 13
- 13
README.md Ver fichero

@@ -301,23 +301,23 @@ public class JT809_2019_Config : JT809GlobalConfigBase

``` ini

BenchmarkDotNet=v0.12.1, OS=Windows 10.0.19041.630 (2004/?/20H1)
BenchmarkDotNet=v0.13.1, OS=Windows 10.0.22000
Intel Core i7-8700K CPU 3.70GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores
.NET Core SDK=5.0.100
[Host] : .NET Core 5.0.0 (CoreCLR 5.0.20.51904, CoreFX 5.0.20.51904), X64 RyuJIT
Job-VIMLSX : .NET Core 5.0.0 (CoreCLR 5.0.20.51904, CoreFX 5.0.20.51904), X64 RyuJIT
.NET SDK=6.0.101
[Host] : .NET 6.0.1 (6.0.121.56705), X64 RyuJIT
Job-GLUSZL : .NET 6.0.1 (6.0.121.56705), X64 RyuJIT

Platform=AnyCpu Server=False Toolchain=.NET Core 5.0
Platform=AnyCpu Server=False Toolchain=.NET 6.0

```
| Method | N | Mean | Error | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---------------------------------------- |------- |-------------:|------------:|-------------:|-----------:|------:|------:|-------------:|
| **JT809_0x9400_0x9401_Package_Deserialize** | **100** | **466.5 μs** | **2.08 μs** | **1.85 μs** | **16.6016** | **-** | **-** | **103.13 KB** |
| JT809_0x9400_0x9401_Package_Serialize | 100 | 202.8 μs | 3.98 μs | 4.09 μs | 14.6484 | - | - | 90.63 KB |
| **JT809_0x9400_0x9401_Package_Deserialize** | **10000** | **46,739.4 μs** | **230.36 μs** | **179.85 μs** | **1636.3636** | **-** | **-** | **10312.53 KB** |
| JT809_0x9400_0x9401_Package_Serialize | 10000 | 19,994.5 μs | 155.11 μs | 129.53 μs | 1468.7500 | - | - | 9062.51 KB |
| **JT809_0x9400_0x9401_Package_Deserialize** | **100000** | **479,053.9 μs** | **9,378.79 μs** | **11,518.00 μs** | **16000.0000** | **-** | **-** | **103125.28 KB** |
| JT809_0x9400_0x9401_Package_Serialize | 100000 | 205,928.8 μs | 2,074.26 μs | 1,940.26 μs | 14000.0000 | - | - | 90625.28 KB |
| Method | N | Mean | Error | StdDev | Gen 0 | Allocated |
|---------------------------------------- |------- |-------------:|------------:|------------:|-----------:|-----------:|
| **JT809_0x9400_0x9401_Package_Deserialize** | **100** | **518.6 μs** | **4.07 μs** | **3.40 μs** | **16.6016** | **103 KB** |
| JT809_0x9400_0x9401_Package_Serialize | 100 | 182.1 μs | 1.60 μs | 1.34 μs | 14.6484 | 91 KB |
| **JT809_0x9400_0x9401_Package_Deserialize** | **10000** | **50,367.9 μs** | **477.53 μs** | **446.68 μs** | **1600.0000** | **10,313 KB** |
| JT809_0x9400_0x9401_Package_Serialize | 10000 | 18,303.2 μs | 176.25 μs | 164.87 μs | 1468.7500 | 9,063 KB |
| **JT809_0x9400_0x9401_Package_Deserialize** | **100000** | **502,960.6 μs** | **2,001.44 μs** | **1,774.22 μs** | **16000.0000** | **103,129 KB** |
| JT809_0x9400_0x9401_Package_Serialize | 100000 | 182,137.2 μs | 1,709.29 μs | 1,598.87 μs | 14000.0000 | 90,626 KB |

## JT809协议消息对照表



+ 6
- 6
src/Info.props Ver fichero

@@ -1,14 +1,14 @@
<Project>
<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net5.0;</TargetFrameworks>
<LangVersion>9.0</LangVersion>
<TargetFrameworks>netstandard2.0;netstandard2.1;net5.0;net6.0</TargetFrameworks>
<LangVersion>10.0</LangVersion>
<Copyright>Copyright 2018.</Copyright>
<Authors>SmallChi(Koike)</Authors>
<RepositoryUrl>https://github.com/SmallChi/JT809</RepositoryUrl>
<PackageProjectUrl>https://github.com/SmallChi/JT809</PackageProjectUrl>
<license>https://github.com/SmallChi/JT809/blob/master/LICENSE</license>
<licenseUrl>https://github.com/SmallChi/JT809/blob/master/LICENSE</licenseUrl>
<Version>2.2.1-preview1</Version>
<Version>2.2.1-preview2</Version>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
<AnalysisLevel>latest</AnalysisLevel>
@@ -16,8 +16,8 @@
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<PackageReadmeFile>README.md</PackageReadmeFile>
<DebugSymbols>true</DebugSymbols>
<DebugType>embedded</DebugType>
<DebugSymbols>true</DebugSymbols>
<DebugType>embedded</DebugType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
@@ -26,6 +26,6 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All"/>
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All"/>
</ItemGroup>
</Project>

+ 2
- 2
src/JT809.Protocol.Benchmark/JT809.Protocol.Benchmark.csproj Ver fichero

@@ -2,11 +2,11 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="BenchmarkDotNet" Version="0.12.1" />
<PackageReference Include="BenchmarkDotNet" Version="0.13.1" />
<PackageReference Include="System.Buffers" Version="4.5.1" />
<PackageReference Include="System.Memory" Version="4.5.4" />
</ItemGroup>


+ 1
- 1
src/JT809.Protocol.Benchmark/JT809SerializerContext.cs Ver fichero

@@ -87,7 +87,7 @@ namespace JT809.Protocol.Benchmark
{
public JT809SerializerContextConfig()
{
AddJob(Job.Default.WithGcServer(false).WithToolchain(CsProjCoreToolchain.NetCoreApp50).WithPlatform(Platform.AnyCpu));
AddJob(Job.Default.WithGcServer(false).WithToolchain(CsProjCoreToolchain.NetCoreApp60).WithPlatform(Platform.AnyCpu));
}
}
}

+ 4
- 4
src/JT809.Protocol.Test/JT809.Protocol.Test.csproj Ver fichero

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
<IsPackable>false</IsPackable>
<NoWarn>1701;1702;1591</NoWarn>
</PropertyGroup>
@@ -11,9 +11,9 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="JT808" Version="2.4.4" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="5.0.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.11.0" />
<PackageReference Include="JT808" Version="2.4.5" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
<PrivateAssets>all</PrivateAssets>


+ 4
- 4
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1500_0x1502Test.cs Ver fichero

@@ -41,8 +41,8 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
Alarm = 1
},
LensID = 123,
SizeType = JT809__0x9502_SizeType._320x240,
Type = JT809__0x9502_ImageType.jpg,
SizeType = JT809_0x9502_SizeType._320x240,
Type = JT809_0x9502_ImageType.jpg,
};
var hex = JT809Serializer.Serialize(jT809_0x1500_0x1502).ToHexString();
//"01 00 13 07 07 DC 0F 0F 0F 07 EF 4D 80 01 70 18 40 00 35 00 2D 00 00 04 D2 00 2D 00 2D 00 00 00 01 00 00 00 01 7B 00 00 00 00 01 01"
@@ -74,8 +74,8 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
Assert.Equal((uint)1, vehiclePosition.State);
Assert.Equal((uint)1, vehiclePosition.Alarm);
Assert.Equal(123, jT809_0x1500_0x1502.LensID);
Assert.Equal(JT809__0x9502_SizeType._320x240, jT809_0x1500_0x1502.SizeType);
Assert.Equal(JT809__0x9502_ImageType.jpg, jT809_0x1500_0x1502.Type);
Assert.Equal(JT809_0x9502_SizeType._320x240, jT809_0x1500_0x1502.SizeType);
Assert.Equal(JT809_0x9502_ImageType.jpg, jT809_0x1500_0x1502.Type);
}
}
}

+ 1
- 1
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x9500_0x9502Test.cs Ver fichero

@@ -19,7 +19,7 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
JT809_0x9500_0x9502 jT809_0X9500_0X9502 = new JT809_0x9500_0x9502
{
LensID=0x09,
SizeType= Enums.JT809__0x9502_SizeType._320x240
SizeType= Enums.JT809_0x9502_SizeType._320x240
};
var hex = JT809Serializer.Serialize(jT809_0X9500_0X9502).ToHexString();
Assert.Equal("0901", hex);


+ 9
- 5
src/JT809.Protocol/Enums/JT809VehicleColorType.cs Ver fichero

@@ -5,14 +5,18 @@ using System.Text;
namespace JT809.Protocol.Enums
{
/// <summary>
/// 车辆颜色,按照 JT/T415-2006 中5.4.12 的规定
/// 车辆颜色,按照 JT/T 415-2021 中5.4.12 的规定
/// </summary>
public enum JT809VehicleColorType:byte
public enum JT809VehicleColorType : byte
{
蓝色=0x01,
黄色=0x02,
蓝色 = 0x01,
黄色 = 0x02,
黑色 = 0x03,
白色 = 0x04,
其他 =0x09,
其他 = 0x09,
农黄色 = 91,
农绿色 = 92,
黄绿色 = 93,
渐变绿 = 94,
}
}

src/JT809.Protocol/Enums/JT809__0x9502_ImageType.cs → src/JT809.Protocol/Enums/JT809_0x9502_ImageType.cs Ver fichero

@@ -4,7 +4,7 @@ using System.Text;

namespace JT809.Protocol.Enums
{
public enum JT809__0x9502_ImageType
public enum JT809_0x9502_ImageType
{
jpg=0x01,
gif=0x02,

src/JT809.Protocol/Enums/JT809__0x9502_SizeType.cs → src/JT809.Protocol/Enums/JT809_0x9502_SizeType.cs Ver fichero

@@ -4,7 +4,7 @@ using System.Text;

namespace JT809.Protocol.Enums
{
public enum JT809__0x9502_SizeType
public enum JT809_0x9502_SizeType
{
_320x240=0x01,
_640x480=0x02,

+ 30
- 17
src/JT809.Protocol/JT809.Protocol.csproj Ver fichero

@@ -31,8 +31,8 @@
<None Remove="Enums\**" />
<None Remove="Escape\**" />
<None Remove="ProtocolPacket\**" />
<None Include="..\..\README.md" Pack="true" PackagePath=""/>
<None Include="..\..\LICENSE" Pack="true" PackagePath=""/>
<None Include="..\..\README.md" Pack="true" PackagePath="" />
<None Include="..\..\LICENSE" Pack="true" PackagePath="" />
</ItemGroup>
<ItemGroup>
@@ -84,24 +84,37 @@
<Compile Include="Enums\JT809_9401_SupervisionLevel.cs" />
<Compile Include="Enums\JT809_LinkType.cs" />
<Compile Include="Enums\JT809_VehiclePositionEncrypt.cs" />
<Compile Include="Enums\JT809__0x9502_ImageType.cs" />
<Compile Include="Enums\JT809__0x9502_SizeType.cs" />
<Compile Include="Enums\JT809_0x9502_ImageType.cs" />
<Compile Include="Enums\JT809_0x9502_SizeType.cs" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
<PackageReference Include="Microsoft.CSharp" Version="4.6.0" />
<PackageReference Include="System.Buffers" Version="4.5.1" />
<PackageReference Include="System.Dynamic.Runtime" Version="4.3.0" />
<PackageReference Include="System.Memory" Version="4.5.4" />
<PackageReference Include="System.Reflection.Extensions" Version="4.3.0" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="System.Buffers" Version="4.5.1" />
<PackageReference Include="System.Dynamic.Runtime" Version="4.3.0" />
<PackageReference Include="System.Memory" Version="4.5.4" />
<PackageReference Include="System.Reflection.Extensions" Version="4.3.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="6.0.0" />
<PackageReference Include="System.Text.Json" Version="6.0.0" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="6.0.0" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="5.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="5.0.0" />
<PackageReference Include="System.Text.Json" Version="5.0.0" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.1' ">
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="System.Text.Json" Version="6.0.0" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="6.0.0" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net5.0' ">
<PackageReference Include="System.Text.Encoding.CodePages" Version="5.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="5.0.0" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net6.0' ">
<PackageReference Include="System.Text.Encoding.CodePages" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="6.0.0" />
</ItemGroup>
<ItemGroup>
<Compile Update="Extensions\JT809PackageExtensionsTemplate.cs">


+ 1
- 1
src/JT809.Protocol/JT809.Protocol.xml Ver fichero

@@ -4369,7 +4369,7 @@
</member>
<member name="T:JT809.Protocol.Enums.JT809VehicleColorType">
<summary>
车辆颜色,按照 JT/T415-2006 中5.4.12 的规定
车辆颜色,按照 JT/T 415-2021 中5.4.12 的规定
</summary>
</member>
<member name="T:JT809.Protocol.Enums.JT809WarnSrc">


+ 6
- 6
src/JT809.Protocol/SubMessageBody/JT809_0x1500_0x1502.cs Ver fichero

@@ -45,11 +45,11 @@ namespace JT809.Protocol.SubMessageBody
/// <summary>
/// 图片大小
/// </summary>
public JT809__0x9502_SizeType SizeType { get; set; }
public JT809_0x9502_SizeType SizeType { get; set; }
/// <summary>
/// 图像格式
/// </summary>
public JT809__0x9502_ImageType Type { get; set; }
public JT809_0x9502_ImageType Type { get; set; }
/// <summary>
/// 图片内容
/// </summary>
@@ -72,9 +72,9 @@ namespace JT809.Protocol.SubMessageBody
writer.WriteNumber($"[{value.LensID}]镜头ID", value.LensID);
value.PhotoLen = reader.ReadUInt32();
writer.WriteNumber($"[{value.PhotoLen}]图片长度", value.PhotoLen);
value.SizeType = (JT809__0x9502_SizeType)reader.ReadByte();
value.SizeType = (JT809_0x9502_SizeType)reader.ReadByte();
writer.WriteString($"[{value.SizeType.ToByteValue()}]图片大小", value.SizeType.ToString());
value.Type = (JT809__0x9502_ImageType)reader.ReadByte();
value.Type = (JT809_0x9502_ImageType)reader.ReadByte();
writer.WriteString($"[{value.Type.ToByteValue()}]图像格式", value.Type.ToString());
if (value.PhotoLen > 0)
{
@@ -97,8 +97,8 @@ namespace JT809.Protocol.SubMessageBody
}
value.LensID = reader.ReadByte();
value.PhotoLen = reader.ReadUInt32();
value.SizeType = (JT809__0x9502_SizeType)reader.ReadByte();
value.Type = (JT809__0x9502_ImageType)reader.ReadByte();
value.SizeType = (JT809_0x9502_SizeType)reader.ReadByte();
value.Type = (JT809_0x9502_ImageType)reader.ReadByte();
if (value.PhotoLen > 0)
{
value.Photo = reader.ReadArray((int)value.PhotoLen).ToArray();


+ 3
- 3
src/JT809.Protocol/SubMessageBody/JT809_0x9500_0x9502.cs Ver fichero

@@ -32,14 +32,14 @@ namespace JT809.Protocol.SubMessageBody
/// 0x07:704x288[HALF D];
/// Ox08:704x576[DI]
/// </summary>
public JT809__0x9502_SizeType SizeType { get; set; }
public JT809_0x9502_SizeType SizeType { get; set; }

public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
{
JT809_0x9500_0x9502 value = new JT809_0x9500_0x9502();
value.LensID = reader.ReadByte();
writer.WriteNumber($"[{value.LensID.ReadNumber() }]镜头ID", value.LensID);
value.SizeType = (JT809__0x9502_SizeType)reader.ReadByte();
value.SizeType = (JT809_0x9502_SizeType)reader.ReadByte();
writer.WriteString($"[{value.SizeType.ToByteValue()}]图片大小", value.SizeType.ToString());
}

@@ -47,7 +47,7 @@ namespace JT809.Protocol.SubMessageBody
{
JT809_0x9500_0x9502 value = new JT809_0x9500_0x9502();
value.LensID = reader.ReadByte();
value.SizeType = (JT809__0x9502_SizeType)reader.ReadByte();
value.SizeType = (JT809_0x9502_SizeType)reader.ReadByte();
return value;
}
public void Serialize(ref JT809MessagePackWriter writer, JT809_0x9500_0x9502 value, IJT809Config config)


Cargando…
Cancelar
Guardar