@@ -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: 5.0.100 | |||||
dotnet-version: 9.0.100 | |||||
- name: dotnet info | - name: dotnet info | ||||
run: dotnet --info | run: dotnet --info | ||||
- name: dotnet restore | - name: dotnet restore | ||||
@@ -11,5 +11,5 @@ JTActiveSafety协议、道路运输车辆主动安全智能防控系统-主动 | |||||
| Package Name | Version | Downloads| Remark | | | Package Name | Version | Downloads| Remark | | ||||
| --------------------- | -------------------------------------------------- | --------------------------------------------------- |--------------------------------------------------- | | | --------------------- | -------------------------------------------------- | --------------------------------------------------- |--------------------------------------------------- | | ||||
| Install-Package JTActiveSafety|  |  |主动安全的附件协议| | |||||
| Install-Package JTActiveSafety|  |  |主动安全的附件协议| | |||||
@@ -1,15 +1,15 @@ | |||||
<Project Sdk="Microsoft.NET.Sdk"> | <Project Sdk="Microsoft.NET.Sdk"> | ||||
<PropertyGroup> | <PropertyGroup> | ||||
<TargetFramework>net5.0</TargetFramework> | |||||
<TargetFramework>net9.0</TargetFramework> | |||||
<IsPackable>false</IsPackable> | <IsPackable>false</IsPackable> | ||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3" /> | |||||
<PackageReference Include="xunit" Version="2.4.1" /> | |||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3"> | |||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" /> | |||||
<PackageReference Include="xunit" Version="2.9.2" /> | |||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2"> | |||||
<PrivateAssets>all</PrivateAssets> | <PrivateAssets>all</PrivateAssets> | ||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | ||||
</PackageReference> | </PackageReference> | ||||
@@ -2,11 +2,19 @@ using System; | |||||
using Xunit; | using Xunit; | ||||
using JTActiveSafety.Protocol; | using JTActiveSafety.Protocol; | ||||
using JTActiveSafety.Protocol.Extensions; | using JTActiveSafety.Protocol.Extensions; | ||||
using System.Text.Encodings.Web; | |||||
using System.Text.Json; | |||||
using System.Text.Unicode; | |||||
namespace JTActiveSafety.Protocol.Test | namespace JTActiveSafety.Protocol.Test | ||||
{ | { | ||||
public class JTActiveSafetySerializerTest | public class JTActiveSafetySerializerTest | ||||
{ | { | ||||
public readonly static JsonWriterOptions Instance = new System.Text.Json.JsonWriterOptions | |||||
{ | |||||
Indented = true, | |||||
Encoder = JavaScriptEncoder.Create(UnicodeRanges.All) | |||||
}; | |||||
[Fact] | [Fact] | ||||
public void SerializeTest1() | public void SerializeTest1() | ||||
{ | { | ||||
@@ -15,16 +23,16 @@ namespace JTActiveSafety.Protocol.Test | |||||
package.Offset = 1; | package.Offset = 1; | ||||
package.Bodies = new byte[5] { 1, 2, 3, 4, 5 }; | package.Bodies = new byte[5] { 1, 2, 3, 4, 5 }; | ||||
var hex = JTActiveSafetySerializer.Serialize(package).ToHexString(); | var hex = JTActiveSafetySerializer.Serialize(package).ToHexString(); | ||||
Assert.Equal("30 31 63 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 61 6C 61 72 6D 2E 78 6C 73 78 00 00 00 01 00 00 00 05 01 02 03 04 05", hex); | |||||
Assert.Equal("30 31 63 64 61 6C 61 72 6D 2E 78 6C 73 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 05 01 02 03 04 05", hex); | |||||
} | } | ||||
[Fact] | [Fact] | ||||
public void DeserializeTest1() | public void DeserializeTest1() | ||||
{ | { | ||||
var data = "30 31 63 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 61 6C 61 72 6D 2E 78 6C 73 78 00 00 00 01 00 00 00 05 01 02 03 04 05".ToHexBytes(); | |||||
var data = "30 31 63 64 61 6C 61 72 6D 2E 78 6C 73 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 05 01 02 03 04 05".ToHexBytes(); | |||||
var package = JTActiveSafetySerializer.Deserialize(data); | var package = JTActiveSafetySerializer.Deserialize(data); | ||||
Assert.Equal(JTActiveSafetyPackage.FH, package.FH_Flag); | Assert.Equal(JTActiveSafetyPackage.FH, package.FH_Flag); | ||||
Assert.Equal("alarm.xlsx", package.FileName.TrimStart('\0')); | |||||
Assert.Equal("alarm.xlsx", package.FileName.TrimEnd('\0')); | |||||
Assert.Equal(1u, package.Offset); | Assert.Equal(1u, package.Offset); | ||||
Assert.Equal(5u, package.Length); | Assert.Equal(5u, package.Length); | ||||
Assert.Equal(new byte[5] { 1, 2, 3, 4, 5 }, package.Bodies); | Assert.Equal(new byte[5] { 1, 2, 3, 4, 5 }, package.Bodies); | ||||
@@ -33,8 +41,8 @@ namespace JTActiveSafety.Protocol.Test | |||||
[Fact] | [Fact] | ||||
public void AnalyzeTest1() | public void AnalyzeTest1() | ||||
{ | { | ||||
var data = "30 31 63 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 61 6C 61 72 6D 2E 78 6C 73 78 00 00 00 01 00 00 00 05 01 02 03 04 05".ToHexBytes(); | |||||
var json = JTActiveSafetySerializer.Analyze(data); | |||||
var data = "30 31 63 64 61 6C 61 72 6D 2E 78 6C 73 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 05 01 02 03 04 05".ToHexBytes(); | |||||
var json = JTActiveSafetySerializer.Analyze(data, Instance); | |||||
} | } | ||||
} | } | ||||
} | } |
@@ -1,8 +1,8 @@ | |||||
<Project Sdk="Microsoft.NET.Sdk"> | <Project Sdk="Microsoft.NET.Sdk"> | ||||
<PropertyGroup> | <PropertyGroup> | ||||
<TargetFrameworks>netstandard2.0;netstandard2.1;net5.0;</TargetFrameworks> | |||||
<LangVersion>9.0</LangVersion> | |||||
<TargetFrameworks>net9.0</TargetFrameworks> | |||||
<LangVersion>13.0</LangVersion> | |||||
<Copyright>Copyright 2019.</Copyright> | <Copyright>Copyright 2019.</Copyright> | ||||
<Authors>SmallChi(Koike)</Authors> | <Authors>SmallChi(Koike)</Authors> | ||||
<PackageId>JTActiveSafety</PackageId> | <PackageId>JTActiveSafety</PackageId> | ||||
@@ -16,16 +16,9 @@ | |||||
<license>https://github.com/SmallChi/JTActiveSafety/blob/master/LICENSE</license> | <license>https://github.com/SmallChi/JTActiveSafety/blob/master/LICENSE</license> | ||||
<GeneratePackageOnBuild>false</GeneratePackageOnBuild> | <GeneratePackageOnBuild>false</GeneratePackageOnBuild> | ||||
<DocumentationFile>JTActiveSafety.Protocol.xml</DocumentationFile> | <DocumentationFile>JTActiveSafety.Protocol.xml</DocumentationFile> | ||||
<Version>1.0.1</Version> | |||||
<Version>1.0.2</Version> | |||||
<PackageLicenseFile>LICENSE</PackageLicenseFile> | <PackageLicenseFile>LICENSE</PackageLicenseFile> | ||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' "> | |||||
<PackageReference Include="System.Memory" Version="4.5.4" /> | |||||
</ItemGroup> | |||||
<ItemGroup> | |||||
<PackageReference Include="System.Text.Json" Version="5.0.1" /> | |||||
</ItemGroup> | |||||
<ItemGroup> | <ItemGroup> | ||||
<None Include="..\..\LICENSE"> | <None Include="..\..\LICENSE"> | ||||
<Pack>True</Pack> | <Pack>True</Pack> | ||||
@@ -6,7 +6,9 @@ using System.Collections.Generic; | |||||
using System.IO; | using System.IO; | ||||
using System.Linq; | using System.Linq; | ||||
using System.Text; | using System.Text; | ||||
using System.Text.Encodings.Web; | |||||
using System.Text.Json; | using System.Text.Json; | ||||
using System.Text.Unicode; | |||||
namespace JTActiveSafety.Protocol | namespace JTActiveSafety.Protocol | ||||
{ | { | ||||
@@ -28,7 +30,7 @@ namespace JTActiveSafety.Protocol | |||||
{ | { | ||||
JTActiveSafetyMessagePackWriter writer = new JTActiveSafetyMessagePackWriter(buffer); | JTActiveSafetyMessagePackWriter writer = new JTActiveSafetyMessagePackWriter(buffer); | ||||
writer.WriteUInt32(package.FH_Flag); | writer.WriteUInt32(package.FH_Flag); | ||||
writer.WriteString(package.FileName.PadLeft(50, '\0')); | |||||
writer.WriteString(package.FileName.PadRight(50, '\0')); | |||||
writer.WriteUInt32(package.Offset); | writer.WriteUInt32(package.Offset); | ||||
writer.WriteUInt32((uint)package.Bodies.Length); | writer.WriteUInt32((uint)package.Bodies.Length); | ||||
writer.WriteArray(package.Bodies); | writer.WriteArray(package.Bodies); | ||||