diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index f3cef7c..84f29c7 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -12,7 +12,7 @@ jobs: - name: Setup .NET Core uses: actions/setup-dotnet@master with: - dotnet-version: 5.0.100 + dotnet-version: 9.0.100 - name: dotnet info run: dotnet --info - name: dotnet restore diff --git a/README.md b/README.md index cfb6711..aeaeb59 100644 --- a/README.md +++ b/README.md @@ -11,5 +11,5 @@ JTActiveSafety协议、道路运输车辆主动安全智能防控系统-主动 | Package Name | Version | Downloads| Remark | | --------------------- | -------------------------------------------------- | --------------------------------------------------- |--------------------------------------------------- | -| Install-Package JTActiveSafety| ![JTActiveSafety](https://img.shields.io/nuget/v/JTActiveSafety.svg) | ![JT808](https://img.shields.io/nuget/dt/JTActiveSafety.svg) |主动安全的附件协议| +| Install-Package JTActiveSafety| ![JTActiveSafety](https://img.shields.io/nuget/v/JTActiveSafety.svg) | ![JTActiveSafety](https://img.shields.io/nuget/dt/JTActiveSafety.svg) |主动安全的附件协议| diff --git a/src/JTActiveSafety.Protocol.Test/JTActiveSafety.Protocol.Test.csproj b/src/JTActiveSafety.Protocol.Test/JTActiveSafety.Protocol.Test.csproj index e93a723..ccacb98 100644 --- a/src/JTActiveSafety.Protocol.Test/JTActiveSafety.Protocol.Test.csproj +++ b/src/JTActiveSafety.Protocol.Test/JTActiveSafety.Protocol.Test.csproj @@ -1,15 +1,15 @@ - net5.0 + net9.0 false - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/JTActiveSafety.Protocol.Test/JTActiveSafetySerializerTest.cs b/src/JTActiveSafety.Protocol.Test/JTActiveSafetySerializerTest.cs index 6a1d46d..1c0ad96 100644 --- a/src/JTActiveSafety.Protocol.Test/JTActiveSafetySerializerTest.cs +++ b/src/JTActiveSafety.Protocol.Test/JTActiveSafetySerializerTest.cs @@ -2,11 +2,19 @@ using System; using Xunit; using JTActiveSafety.Protocol; using JTActiveSafety.Protocol.Extensions; +using System.Text.Encodings.Web; +using System.Text.Json; +using System.Text.Unicode; namespace JTActiveSafety.Protocol.Test { public class JTActiveSafetySerializerTest { + public readonly static JsonWriterOptions Instance = new System.Text.Json.JsonWriterOptions + { + Indented = true, + Encoder = JavaScriptEncoder.Create(UnicodeRanges.All) + }; [Fact] public void SerializeTest1() { @@ -15,16 +23,16 @@ namespace JTActiveSafety.Protocol.Test package.Offset = 1; package.Bodies = new byte[5] { 1, 2, 3, 4, 5 }; 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] 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); 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(5u, package.Length); Assert.Equal(new byte[5] { 1, 2, 3, 4, 5 }, package.Bodies); @@ -33,8 +41,8 @@ namespace JTActiveSafety.Protocol.Test [Fact] 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); } } } diff --git a/src/JTActiveSafety.Protocol/JTActiveSafety.Protocol.csproj b/src/JTActiveSafety.Protocol/JTActiveSafety.Protocol.csproj index a5e5e60..9dc8979 100644 --- a/src/JTActiveSafety.Protocol/JTActiveSafety.Protocol.csproj +++ b/src/JTActiveSafety.Protocol/JTActiveSafety.Protocol.csproj @@ -1,8 +1,8 @@  - netstandard2.0;netstandard2.1;net5.0; - 9.0 + net9.0 + 13.0 Copyright 2019. SmallChi(Koike) JTActiveSafety @@ -16,16 +16,9 @@ https://github.com/SmallChi/JTActiveSafety/blob/master/LICENSE false JTActiveSafety.Protocol.xml - 1.0.1 + 1.0.2 LICENSE - - - - - - - True diff --git a/src/JTActiveSafety.Protocol/JTActiveSafetySerializer.cs b/src/JTActiveSafety.Protocol/JTActiveSafetySerializer.cs index 3c459bb..9d9738c 100644 --- a/src/JTActiveSafety.Protocol/JTActiveSafetySerializer.cs +++ b/src/JTActiveSafety.Protocol/JTActiveSafetySerializer.cs @@ -6,7 +6,9 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; +using System.Text.Encodings.Web; using System.Text.Json; +using System.Text.Unicode; namespace JTActiveSafety.Protocol { @@ -28,7 +30,7 @@ namespace JTActiveSafety.Protocol { JTActiveSafetyMessagePackWriter writer = new JTActiveSafetyMessagePackWriter(buffer); 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((uint)package.Bodies.Length); writer.WriteArray(package.Bodies);