From adaa563151593a08921b2d59408f0cb6ea5dd4b7 Mon Sep 17 00:00:00 2001
From: "SmallChi(Koike)" <564952747@qq.com>
Date: Sat, 22 May 2021 14:04:43 +0800
Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E4=B8=BB=E5=8A=A8=E5=AE=89=E5=85=A8?=
=?UTF-8?q?=E6=89=A9=E5=B1=95808=E7=9A=84=E9=A1=B9=E7=9B=AE=E7=A7=BB?=
=?UTF-8?q?=E9=99=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.github/workflows/dotnetcore.yml | 6 +-
README.md | 33 -
...ocol.Extensions.JTActiveSafety.Test.csproj | 30 -
.../JT808_0x0200_0x64_Test.cs | 100 -
.../JT808_0x0200_0x65_Test.cs | 94 -
.../JT808_0x0200_0x66_Test.cs | 114 -
.../JT808_0x0200_0x67_Test.cs | 89 -
.../JT808_0x0900_Test.cs | 120 -
.../JT808_0x1210_Test.cs | 81 -
.../JT808_0x1211_Test.cs | 50 -
.../JT808_0x1212_Test.cs | 44 -
.../JT808_0x8103_0xF364_Test.cs | 139 --
.../JT808_0x8103_0xF365_Test.cs | 116 -
.../JT808_0x8103_0xF366_Test.cs | 69 -
.../JT808_0x8103_0xF367_Test.cs | 51 -
.../JT808_0x8900_Test.cs | 46 -
.../JT808_0x9208_Test.cs | 64 -
.../JT808_0x9212_Test.cs | 66 -
.../Enums/ActivePhotographyStrategyType.cs | 33 -
.../Enums/JT808_JTActiveSafety_MsgId.cs | 33 -
.../Enums/PhotoResolutionType.cs | 41 -
.../Enums/USBIDType.cs | 29 -
.../Enums/VideoRecordingResolutionType.cs | 45 -
.../Enums/WorkingConditionType.cs | 33 -
....Protocol.Extensions.JTActiveSafety.csproj | 36 -
...808.Protocol.Extensions.JTActiveSafety.xml | 2028 -----------------
.../JT808_JTActiveSafety_Constants.cs | 53 -
...tiveSafetyDependencyInjectionExtensions.cs | 28 -
.../MessageBody/JT808_0x0200_0x64.cs | 344 ---
.../MessageBody/JT808_0x0200_0x65.cs | 295 ---
.../MessageBody/JT808_0x0200_0x66.cs | 312 ---
.../MessageBody/JT808_0x0200_0x67.cs | 279 ---
.../MessageBody/JT808_0x0900_0xF7.cs | 122 -
.../MessageBody/JT808_0x0900_0xF8.cs | 175 --
.../MessageBody/JT808_0x1210.cs | 175 --
.../MessageBody/JT808_0x1211.cs | 87 -
.../MessageBody/JT808_0x1212.cs | 87 -
.../MessageBody/JT808_0x8103_0xF364.cs | 456 ----
.../MessageBody/JT808_0x8103_0xF365.cs | 365 ---
.../MessageBody/JT808_0x8103_0xF366.cs | 151 --
.../MessageBody/JT808_0x8103_0xF367.cs | 77 -
.../MessageBody/JT808_0x8900_0xF7.cs | 89 -
.../MessageBody/JT808_0x8900_0xF8.cs | 89 -
.../MessageBody/JT808_0x9208.cs | 139 --
.../MessageBody/JT808_0x9212.cs | 139 --
.../Metadata/AlarmIdentificationProperty.cs | 34 -
.../Metadata/AlarmOrEventProperty.cs | 33 -
.../Metadata/AttachProperty.cs | 26 -
.../Metadata/DataPackageProperty.cs | 21 -
.../Metadata/JT808_0x0900_0xF7_USB.cs | 31 -
.../Metadata/JT808_0x0900_0xF8_USB.cs | 72 -
src/JTActiveSafety.sln | 12 -
52 files changed, 1 insertion(+), 7280 deletions(-)
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808.Protocol.Extensions.JTActiveSafety.Test.csproj
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x0200_0x64_Test.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x0200_0x65_Test.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x0200_0x66_Test.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x0200_0x67_Test.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x0900_Test.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x1210_Test.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x1211_Test.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x1212_Test.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x8103_0xF364_Test.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x8103_0xF365_Test.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x8103_0xF366_Test.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x8103_0xF367_Test.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x8900_Test.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x9208_Test.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x9212_Test.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/Enums/ActivePhotographyStrategyType.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/Enums/JT808_JTActiveSafety_MsgId.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/Enums/PhotoResolutionType.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/Enums/USBIDType.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/Enums/VideoRecordingResolutionType.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/Enums/WorkingConditionType.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/JT808.Protocol.Extensions.JTActiveSafety.csproj
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/JT808.Protocol.Extensions.JTActiveSafety.xml
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/JT808_JTActiveSafety_Constants.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/JTActiveSafetyDependencyInjectionExtensions.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x64.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x65.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x66.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x67.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0900_0xF7.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0900_0xF8.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1210.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1211.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1212.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF364.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF365.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF366.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF367.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8900_0xF7.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8900_0xF8.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x9208.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x9212.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/AlarmIdentificationProperty.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/AlarmOrEventProperty.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/AttachProperty.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/DataPackageProperty.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/JT808_0x0900_0xF7_USB.cs
delete mode 100644 src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/JT808_0x0900_0xF8_USB.cs
diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml
index 9f89175..f3cef7c 100644
--- a/.github/workflows/dotnetcore.yml
+++ b/.github/workflows/dotnetcore.yml
@@ -18,8 +18,4 @@ jobs:
- name: dotnet restore
run: dotnet restore ./src/JTActiveSafety.sln
- name: dotnet JTActiveSafety.Protocol build
- run: dotnet build ./src/JTActiveSafety.Protocol.Test/JTActiveSafety.Protocol.Test.csproj
- - name: dotnet JT808.Protocol.Extensions.JTActiveSafety build
- run: dotnet test ./src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808.Protocol.Extensions.JTActiveSafety.Test.csproj
- - name: dotnet JT808.Protocol.Extensions.JTActiveSafety test
- run: dotnet test ./src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808.Protocol.Extensions.JTActiveSafety.Test.csproj
\ No newline at end of file
+ run: dotnet build ./src/JTActiveSafety.Protocol.Test/JTActiveSafety.Protocol.Test.csproj
\ No newline at end of file
diff --git a/README.md b/README.md
index 52a9ffd..cfb6711 100644
--- a/README.md
+++ b/README.md
@@ -12,37 +12,4 @@ JTActiveSafety协议、道路运输车辆主动安全智能防控系统-主动
| Package Name | Version | Downloads| Remark |
| --------------------- | -------------------------------------------------- | --------------------------------------------------- |--------------------------------------------------- |
| Install-Package JTActiveSafety|  |  |主动安全的附件协议|
-| Install-Package JT808 |  |  |基础JT808协议|
-| Install-Package JT808.Protocol.Extensions.JTActiveSafety|  |  |基于JT808扩展的JTActiveSafety消息协议|
-### JT808扩展协议消息对照表
-
-| 序号 | 消息ID | 完成情况 | 测试情况 | 消息体名称 |
-| :---: | :---: | :---: | :---: | :---:|
-| 1 | 0x1210 | √ | √ | 报警附件信息消息 |
-| 2 | 0x1211 | √ | √ | 文件信息上传 |
-| 3 | 0x1212 | √ | √ | 文件上传完成消息 |
-| 4 | 0x9208 | √ | √ | 报警附件上传指令 |
-| 5 | 0x9212 | √ | √ | 文件上传完成消息应答 |
-| 6 | 0x0200_0x64 | √ | √ | 高级驾驶辅助系统报警信息 |
-| 7 | 0x0200_0x65 | √ | √ | 驾驶员状态监测系统报警信息 |
-| 8 | 0x0200_0x66 | √ | √ | 胎压监测系统报警信息 |
-| 9 | 0x0200_0x67 | √ | √ | 盲区监测系统报警信息 |
-| 10 | 0x8103_0xF364 | √ | √ | 高级驾驶辅助系统参数 |
-| 11 | 0x8103_0xF365 | √ | √ | 驾驶员状态监测系统参数 |
-| 12 | 0x8103_0xF366 | √ | √ | 胎压监测系统参数 |
-| 13 | 0x8103_0xF367 | √ | √ | 盲区监测系统参数 |
-| 14 | 0x0900 | √ | √ | 上传基本信息 |
-| 15 | 0x0900_0xF7 | √ | √ | 外设工作状态 |
-| 16 | 0x0900_0xF8 | √ | √ | 外设系统信息 |
-| 17 | 0x8900 | √ | √ | 查询基本信息 |
-| 18 | 0x8900_0xF7 | √ | √ | 外设工作状态 |
-| 19 | 0x8900_0xF8 | √ | √ | 外设系统信息 |
-
-### 使用方法
-
-```dotnet
-IServiceCollection serviceDescriptors1 = new ServiceCollection();
-serviceDescriptors1.AddJT808Configure()
- .AddJTActiveSafetyConfigure();
-```
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808.Protocol.Extensions.JTActiveSafety.Test.csproj b/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808.Protocol.Extensions.JTActiveSafety.Test.csproj
deleted file mode 100644
index c7ce9d9..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808.Protocol.Extensions.JTActiveSafety.Test.csproj
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
- net5.0
-
- false
-
-
-
-
-
- True
-
-
-
-
-
-
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
-
-
-
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x0200_0x64_Test.cs b/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x0200_0x64_Test.cs
deleted file mode 100644
index 91f92d8..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x0200_0x64_Test.cs
+++ /dev/null
@@ -1,100 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.MessageBody;
-using JT808.Protocol.MessageBody;
-using Microsoft.Extensions.DependencyInjection;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Xunit;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Test
-{
- public class JT808_0x0200_0x64_Test
- {
- JT808Serializer JT808Serializer;
- public JT808_0x0200_0x64_Test()
- {
- ServiceCollection serviceDescriptors = new ServiceCollection();
- serviceDescriptors.AddJT808Configure()
- .AddJTActiveSafetyConfigure();
- IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService();
- JT808Serializer = new JT808Serializer(jT808Config);
- }
- [Fact]
- public void Serializer()
- {
- JT808_0x0200 jT808UploadLocationRequest = new JT808_0x0200
- {
- AlarmFlag = 1,
- Altitude = 40,
- GPSTime = DateTime.Parse("2018-07-15 10:10:10"),
- Lat = 12222222,
- Lng = 132444444,
- Speed = 60,
- Direction = 0,
- StatusFlag = 2,
- JT808LocationAttachData = new Dictionary()
- };
- jT808UploadLocationRequest.JT808LocationAttachData.Add(JT808_JTActiveSafety_Constants.JT808_0X0200_0x64, new JT808_0x0200_0x64
- {
- AlarmId = 1,
- AlarmIdentification = new Metadata.AlarmIdentificationProperty
- {
- AttachCount = 2,
- SN = 3,
- TerminalID = "4444444",
- Time = Convert.ToDateTime("2019-12-10 18:31:00")
- },
- AlarmLevel = 5,
- AlarmOrEventType = 6,
- AlarmTime = Convert.ToDateTime("2019-12-11 18:31:00"),
- Altitude = 7,
- CarOrPedestrianDistanceAhead = 10,
- DeviateType = 11,
- FlagState = 12,
- Latitude = 13,
- Longitude = 14,
- RoadSignIdentificationData = 15,
- RoadSignIdentificationType = 16,
- Speed = 17,
- VehicleSpeed = 18,
- VehicleState = 19
- });
- var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString();
- Assert.Equal("000000010000000200BA7F0E07E4F11C0028003C00001807151010106420000000010C0605120A0B100F1100070000000D0000000E191211183100001334343434343434191210183100030200", hex);
- }
- [Fact]
- public void Deserialize()
- {
- var jT808UploadLocationRequest = JT808Serializer.Deserialize("000000010000000200BA7F0E07E4F11C0028003C00001807151010106420000000010C0605120A0B100F1100070000000D0000000E191211183100001334343434343434191210183100030200".ToHexBytes());
- jT808UploadLocationRequest.JT808LocationAttachData.TryGetValue(JT808_JTActiveSafety_Constants.JT808_0X0200_0x64, out var value);
- JT808_0x0200_0x64 jT808_0X0200_0X64 = value as JT808_0x0200_0x64;
- Assert.Equal(1u, jT808_0X0200_0X64.AlarmId);
- Assert.Equal(2, jT808_0X0200_0X64.AlarmIdentification.AttachCount);
- Assert.Equal(3, jT808_0X0200_0X64.AlarmIdentification.SN);
- Assert.Equal("4444444", jT808_0X0200_0X64.AlarmIdentification.TerminalID);
- Assert.Equal(Convert.ToDateTime("2019-12-10 18:31:00"), jT808_0X0200_0X64.AlarmIdentification.Time);
- Assert.Equal(5, jT808_0X0200_0X64.AlarmLevel);
- Assert.Equal(6, jT808_0X0200_0X64.AlarmOrEventType);
- Assert.Equal(Convert.ToDateTime("2019-12-11 18:31:00"), jT808_0X0200_0X64.AlarmTime);
- Assert.Equal(7, jT808_0X0200_0X64.Altitude);
- Assert.Equal(0x64, jT808_0X0200_0X64.AttachInfoId);
- Assert.Equal(32, jT808_0X0200_0X64.AttachInfoLength);
- Assert.Equal(10, jT808_0X0200_0X64.CarOrPedestrianDistanceAhead);
- Assert.Equal(11, jT808_0X0200_0X64.DeviateType);
- Assert.Equal(12, jT808_0X0200_0X64.FlagState);
- Assert.Equal(13, jT808_0X0200_0X64.Latitude);
- Assert.Equal(14, jT808_0X0200_0X64.Longitude);
- Assert.Equal(15, jT808_0X0200_0X64.RoadSignIdentificationData);
- Assert.Equal(16, jT808_0X0200_0X64.RoadSignIdentificationType);
- Assert.Equal(17, jT808_0X0200_0X64.Speed);
- Assert.Equal(18, jT808_0X0200_0X64.VehicleSpeed);
- Assert.Equal(19, jT808_0X0200_0X64.VehicleState);
- }
-
- [Fact]
- public void Deserialize1()
- {
- var json = JT808Serializer.Analyze("000000010000000200BA7F0E07E4F11C0028003C00001807151010106420000000010C0605120A0B100F1100070000000D0000000E191211183100001334343434343434191210183100030200".ToHexBytes());
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x0200_0x65_Test.cs b/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x0200_0x65_Test.cs
deleted file mode 100644
index ccef77b..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x0200_0x65_Test.cs
+++ /dev/null
@@ -1,94 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.MessageBody;
-using JT808.Protocol.MessageBody;
-using Microsoft.Extensions.DependencyInjection;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Xunit;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Test
-{
- public class JT808_0x0200_0x65_Test
- {
- JT808Serializer JT808Serializer;
- public JT808_0x0200_0x65_Test()
- {
- ServiceCollection serviceDescriptors = new ServiceCollection();
- serviceDescriptors.AddJT808Configure()
- .AddJTActiveSafetyConfigure();
- IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService();
- JT808Serializer = new JT808Serializer(jT808Config);
- }
- [Fact]
- public void Serializer()
- {
- JT808_0x0200 jT808UploadLocationRequest = new JT808_0x0200
- {
- AlarmFlag = 1,
- Altitude = 40,
- GPSTime = DateTime.Parse("2018-07-15 10:10:10"),
- Lat = 12222222,
- Lng = 132444444,
- Speed = 60,
- Direction = 0,
- StatusFlag = 2,
- JT808LocationAttachData = new Dictionary()
- };
- jT808UploadLocationRequest.JT808LocationAttachData.Add(JT808_JTActiveSafety_Constants.JT808_0X0200_0x65, new JT808_0x0200_0x65
- {
- AlarmId = 1,
- AlarmIdentification = new Metadata.AlarmIdentificationProperty
- {
- AttachCount = 2,
- SN = 3,
- TerminalID = "4444444",
- Time = Convert.ToDateTime("2019-12-10 18:31:00")
- },
- AlarmLevel = 5,
- AlarmOrEventType = 6,
- AlarmTime = Convert.ToDateTime("2019-12-11 18:31:00"),
- Altitude = 7,
- Retain=new byte[] { 1, 2, 3, 4 },
- FlagState = 12,
- Latitude = 13,
- Longitude = 14,
- Speed = 17,
- Fatigue=18,
- VehicleState = 19
- });
- var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString();
- Assert.Equal("000000010000000200BA7F0E07E4F11C0028003C0000180715101010652F000000010C060512010203041100070000000D0000000E191211183100001334343434343434191210183100030200", hex);
- }
- [Fact]
- public void Deserialize()
- {
- var jT808UploadLocationRequest = JT808Serializer.Deserialize("000000010000000200BA7F0E07E4F11C0028003C00001807151010106520000000010C060512010203041100070000000D0000000E191211183100001334343434343434191210183100030200".ToHexBytes());
- jT808UploadLocationRequest.JT808LocationAttachData.TryGetValue(JT808_JTActiveSafety_Constants.JT808_0X0200_0x65, out var value);
- JT808_0x0200_0x65 jT808_0X0200_0X65 = value as JT808_0x0200_0x65;
- Assert.Equal(1u, jT808_0X0200_0X65.AlarmId);
- Assert.Equal(2, jT808_0X0200_0X65.AlarmIdentification.AttachCount);
- Assert.Equal(3, jT808_0X0200_0X65.AlarmIdentification.SN);
- Assert.Equal("4444444", jT808_0X0200_0X65.AlarmIdentification.TerminalID);
- Assert.Equal(Convert.ToDateTime("2019-12-10 18:31:00"), jT808_0X0200_0X65.AlarmIdentification.Time);
- Assert.Equal(5, jT808_0X0200_0X65.AlarmLevel);
- Assert.Equal(6, jT808_0X0200_0X65.AlarmOrEventType);
- Assert.Equal(Convert.ToDateTime("2019-12-11 18:31:00"), jT808_0X0200_0X65.AlarmTime);
- Assert.Equal(7, jT808_0X0200_0X65.Altitude);
- Assert.Equal(0x65, jT808_0X0200_0X65.AttachInfoId);
- Assert.Equal(32, jT808_0X0200_0X65.AttachInfoLength);
- Assert.Equal(new byte[] { 1, 2, 3, 4 }.ToHexString(), jT808_0X0200_0X65.Retain.ToHexString());
- Assert.Equal(12, jT808_0X0200_0X65.FlagState);
- Assert.Equal(13, jT808_0X0200_0X65.Latitude);
- Assert.Equal(14, jT808_0X0200_0X65.Longitude);
- Assert.Equal(17, jT808_0X0200_0X65.Speed);
- Assert.Equal(18, jT808_0X0200_0X65.Fatigue);
- Assert.Equal(19, jT808_0X0200_0X65.VehicleState);
- }
-
- [Fact]
- public void Json()
- {
- var json = JT808Serializer.Analyze("000000010000000200BA7F0E07E4F11C0028003C00001807151010106520000000010C060512010203041100070000000D0000000E191211183100001334343434343434191210183100030200".ToHexBytes());
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x0200_0x66_Test.cs b/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x0200_0x66_Test.cs
deleted file mode 100644
index 76cb5ca..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x0200_0x66_Test.cs
+++ /dev/null
@@ -1,114 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.MessageBody;
-using JT808.Protocol.MessageBody;
-using Microsoft.Extensions.DependencyInjection;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Xunit;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Test
-{
- public class JT808_0x0200_0x66_Test
- {
- JT808Serializer JT808Serializer;
- public JT808_0x0200_0x66_Test()
- {
- ServiceCollection serviceDescriptors = new ServiceCollection();
- serviceDescriptors.AddJT808Configure()
- .AddJTActiveSafetyConfigure();
- IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService();
- JT808Serializer = new JT808Serializer(jT808Config);
- }
- [Fact]
- public void Serializer()
- {
- JT808_0x0200 jT808UploadLocationRequest = new JT808_0x0200
- {
- AlarmFlag = 1,
- Altitude = 40,
- GPSTime = DateTime.Parse("2018-07-15 10:10:10"),
- Lat = 12222222,
- Lng = 132444444,
- Speed = 60,
- Direction = 0,
- StatusFlag = 2,
- JT808LocationAttachData = new Dictionary()
- };
- jT808UploadLocationRequest.JT808LocationAttachData.Add(JT808_JTActiveSafety_Constants.JT808_0X0200_0x66, new JT808_0x0200_0x66
- {
- AlarmId = 1,
- AlarmIdentification = new Metadata.AlarmIdentificationProperty
- {
- AttachCount = 2,
- SN = 3,
- TerminalID = "4444444",
- Time = Convert.ToDateTime("2019-12-10 18:31:00")
- },
- AlarmTime = Convert.ToDateTime("2019-12-11 18:31:00"),
- Altitude = 7,
- AlarmOrEventCount = 2,
- AlarmOrEvents = new List {
- new Metadata.AlarmOrEventProperty{
- AlarmOrEventType=1,
- BatteryLevel=2,
- TirePressure=3,
- TirePressureAlarmPosition=4,
- TireTemperature=5
- },
- new Metadata.AlarmOrEventProperty{
- AlarmOrEventType=6,
- BatteryLevel=7,
- TirePressure=8,
- TirePressureAlarmPosition=9,
- TireTemperature=10
- }
- },
- FlagState = 12,
- Latitude = 13,
- Longitude = 14,
- Speed = 17,
- VehicleState = 19
- });
- var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString();
- Assert.Equal("000000010000000200BA7F0E07E4F11C0028003C0000180715101010663B000000010C1100070000000D0000000E191211183100001334343434343434191210183100030200020400010003000500020900060008000A0007", hex);
- }
-
- [Fact]
- public void Deserialize()
- {
- var jT808UploadLocationRequest = JT808Serializer.Deserialize("000000010000000200BA7F0E07E4F11C0028003C0000180715101010663B000000010C1100070000000D0000000E191211183100001334343434343434191210183100030200020400010003000500020900060008000A0007".ToHexBytes());
- jT808UploadLocationRequest.JT808LocationAttachData.TryGetValue(JT808_JTActiveSafety_Constants.JT808_0X0200_0x66, out var value);
- JT808_0x0200_0x66 jT808_0X0200_0X66 = value as JT808_0x0200_0x66;
- Assert.Equal(1u, jT808_0X0200_0X66.AlarmId);
- Assert.Equal(2, jT808_0X0200_0X66.AlarmIdentification.AttachCount);
- Assert.Equal(3, jT808_0X0200_0X66.AlarmIdentification.SN);
- Assert.Equal("4444444", jT808_0X0200_0X66.AlarmIdentification.TerminalID);
- Assert.Equal(Convert.ToDateTime("2019-12-10 18:31:00"), jT808_0X0200_0X66.AlarmIdentification.Time);
- Assert.Equal(Convert.ToDateTime("2019-12-11 18:31:00"), jT808_0X0200_0X66.AlarmTime);
- Assert.Equal(7, jT808_0X0200_0X66.Altitude);
- Assert.Equal(2, jT808_0X0200_0X66.AlarmOrEventCount);
- Assert.Equal(1, jT808_0X0200_0X66.AlarmOrEvents[0].AlarmOrEventType);
- Assert.Equal(2, jT808_0X0200_0X66.AlarmOrEvents[0].BatteryLevel);
- Assert.Equal(3, jT808_0X0200_0X66.AlarmOrEvents[0].TirePressure);
- Assert.Equal(4, jT808_0X0200_0X66.AlarmOrEvents[0].TirePressureAlarmPosition);
- Assert.Equal(5, jT808_0X0200_0X66.AlarmOrEvents[0].TireTemperature);
- Assert.Equal(6, jT808_0X0200_0X66.AlarmOrEvents[1].AlarmOrEventType);
- Assert.Equal(7, jT808_0X0200_0X66.AlarmOrEvents[1].BatteryLevel);
- Assert.Equal(8, jT808_0X0200_0X66.AlarmOrEvents[1].TirePressure);
- Assert.Equal(9, jT808_0X0200_0X66.AlarmOrEvents[1].TirePressureAlarmPosition);
- Assert.Equal(10, jT808_0X0200_0X66.AlarmOrEvents[1].TireTemperature);
- Assert.Equal(0x66, jT808_0X0200_0X66.AttachInfoId);
- Assert.Equal(12, jT808_0X0200_0X66.FlagState);
- Assert.Equal(13, jT808_0X0200_0X66.Latitude);
- Assert.Equal(14, jT808_0X0200_0X66.Longitude);
- Assert.Equal(17, jT808_0X0200_0X66.Speed);
- Assert.Equal(19, jT808_0X0200_0X66.VehicleState);
- }
-
- [Fact]
- public void Json()
- {
- var json = JT808Serializer.Analyze("000000010000000200BA7F0E07E4F11C0028003C0000180715101010663B000000010C1100070000000D0000000E191211183100001334343434343434191210183100030200020400010003000500020900060008000A0007".ToHexBytes());
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x0200_0x67_Test.cs b/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x0200_0x67_Test.cs
deleted file mode 100644
index ac19c82..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x0200_0x67_Test.cs
+++ /dev/null
@@ -1,89 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.MessageBody;
-using JT808.Protocol.MessageBody;
-using Microsoft.Extensions.DependencyInjection;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Xunit;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Test
-{
- public class JT808_0x0200_0x67_Test
- {
- JT808Serializer JT808Serializer;
- public JT808_0x0200_0x67_Test()
- {
- ServiceCollection serviceDescriptors = new ServiceCollection();
- serviceDescriptors.AddJT808Configure()
- .AddJTActiveSafetyConfigure();
- IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService();
- JT808Serializer = new JT808Serializer(jT808Config);
- }
- [Fact]
- public void Serializer()
- {
- JT808_0x0200 jT808UploadLocationRequest = new JT808_0x0200
- {
- AlarmFlag = 1,
- Altitude = 40,
- GPSTime = DateTime.Parse("2018-07-15 10:10:10"),
- Lat = 12222222,
- Lng = 132444444,
- Speed = 60,
- Direction = 0,
- StatusFlag = 2,
- JT808LocationAttachData = new Dictionary()
- };
- jT808UploadLocationRequest.JT808LocationAttachData.Add(JT808_JTActiveSafety_Constants.JT808_0X0200_0x67, new JT808_0x0200_0x67
- {
- AlarmId = 1,
- AlarmIdentification = new Metadata.AlarmIdentificationProperty
- {
- AttachCount = 2,
- SN = 3,
- TerminalID = "4444444",
- Time = Convert.ToDateTime("2019-12-10 18:31:00")
- },
- AlarmTime = Convert.ToDateTime("2019-12-11 18:31:00"),
- Altitude = 7,
- AlarmLevel=8,
- AlarmOrEventType=9,
- FlagState = 12,
- Latitude = 13,
- Longitude = 14,
- Speed = 17,
- VehicleState = 19
- });
- var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString();
- Assert.Equal("000000010000000200BA7F0E07E4F11C0028003C0000180715101010671A000000010C09081100070000000D0000000E191211183100001334343434343434191210183100030200", hex);
- }
- [Fact]
- public void Deserialize()
- {
- var jT808UploadLocationRequest = JT808Serializer.Deserialize("000000010000000200BA7F0E07E4F11C0028003C0000180715101010671A000000010C09081100070000000D0000000E191211183100001334343434343434191210183100030200".ToHexBytes());
- jT808UploadLocationRequest.JT808LocationAttachData.TryGetValue(JT808_JTActiveSafety_Constants.JT808_0X0200_0x67, out var value);
- JT808_0x0200_0x67 jT808_0X0200_0X67 = value as JT808_0x0200_0x67;
- Assert.Equal(1u, jT808_0X0200_0X67.AlarmId);
- Assert.Equal(2, jT808_0X0200_0X67.AlarmIdentification.AttachCount);
- Assert.Equal(3, jT808_0X0200_0X67.AlarmIdentification.SN);
- Assert.Equal("4444444", jT808_0X0200_0X67.AlarmIdentification.TerminalID);
- Assert.Equal(Convert.ToDateTime("2019-12-10 18:31:00"), jT808_0X0200_0X67.AlarmIdentification.Time);
- Assert.Equal(Convert.ToDateTime("2019-12-11 18:31:00"), jT808_0X0200_0X67.AlarmTime);
- Assert.Equal(7, jT808_0X0200_0X67.Altitude);
- Assert.Equal(8, jT808_0X0200_0X67.AlarmLevel);
- Assert.Equal(9, jT808_0X0200_0X67.AlarmOrEventType);
- Assert.Equal(0x67, jT808_0X0200_0X67.AttachInfoId);
- Assert.Equal(26, jT808_0X0200_0X67.AttachInfoLength);
- Assert.Equal(12, jT808_0X0200_0X67.FlagState);
- Assert.Equal(13, jT808_0X0200_0X67.Latitude);
- Assert.Equal(14, jT808_0X0200_0X67.Longitude);
- Assert.Equal(17, jT808_0X0200_0X67.Speed);
- Assert.Equal(19, jT808_0X0200_0X67.VehicleState);
- }
- [Fact]
- public void Json()
- {
- var json = JT808Serializer.Analyze("000000010000000200BA7F0E07E4F11C0028003C0000180715101010671A000000010C09081100070000000D0000000E191211183100001334343434343434191210183100030200".ToHexBytes());
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x0900_Test.cs b/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x0900_Test.cs
deleted file mode 100644
index 1cffc5e..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x0900_Test.cs
+++ /dev/null
@@ -1,120 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.MessageBody;
-using JT808.Protocol.Extensions.JTActiveSafety.Metadata;
-using JT808.Protocol.MessageBody;
-using Microsoft.Extensions.DependencyInjection;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Xunit;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Test
-{
- public class JT808_0x0900_Test
- {
- JT808Serializer JT808Serializer;
- public JT808_0x0900_Test()
- {
- ServiceCollection serviceDescriptors = new ServiceCollection();
- serviceDescriptors.AddJT808Configure()
- .AddJTActiveSafetyConfigure();
- IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService();
- JT808Serializer = new JT808Serializer(jT808Config);
- }
-
- [Fact]
- public void Test_0xF7_1()
- {
- JT808_0x0900_0xF7 jT808_0x0900_0xF7 = new JT808_0x0900_0xF7
- {
- USBMessageCount = 2,
- USBMessages = new List {
- new JT808_0x0900_0xF7_USB {
- USBID = 1,
- AlarmStatus = 1,
- WorkingCondition = 2
- },
- new JT808_0x0900_0xF7_USB {
- USBID = 2,
- AlarmStatus = 1,
- WorkingCondition = 2
- }
- }
- };
- var hex = JT808Serializer.Serialize(jT808_0x0900_0xF7).ToHexString();
- Assert.Equal("020105020000000102050200000001", hex);
- }
-
- [Fact]
- public void Test_0xF7_2()
- {
- var jT808_0x0900_0xF7 = JT808Serializer.Deserialize("020105020000000102050200000001".ToHexBytes());
-
- Assert.Equal(JT808_JTActiveSafety_Constants.JT808_0X0900_0xF7, jT808_0x0900_0xF7.PassthroughType);
- Assert.Equal(2, jT808_0x0900_0xF7.USBMessageCount);
- Assert.Equal(1, jT808_0x0900_0xF7.USBMessages[0].USBID);
- Assert.Equal(5, jT808_0x0900_0xF7.USBMessages[0].MessageLength);
- Assert.Equal(2, jT808_0x0900_0xF7.USBMessages[0].WorkingCondition);
- Assert.Equal(1u, jT808_0x0900_0xF7.USBMessages[0].AlarmStatus);
-
- Assert.Equal(2, jT808_0x0900_0xF7.USBMessages[1].USBID);
- Assert.Equal(5, jT808_0x0900_0xF7.USBMessages[1].MessageLength);
- Assert.Equal(2, jT808_0x0900_0xF7.USBMessages[1].WorkingCondition);
- Assert.Equal(1u, jT808_0x0900_0xF7.USBMessages[1].AlarmStatus);
- }
-
- [Fact]
- public void Test_0xF7_3()
- {
- var json = JT808Serializer.Analyze("020105020000000102050200000001".ToHexBytes());
- }
-
- [Fact]
- public void Test_0xF8_1()
- {
- JT808_0x0900_0xF8 jT808_0x0900_0xF8 = new JT808_0x0900_0xF8
- {
- USBMessageCount = 1,
- USBMessages = new List {
- new JT808_0x0900_0xF8_USB {
- USBID = 1,
- CompantName = "CompantName",
- CustomerCode = "CustomerCode",
- DevicesID = "DevicesID",
- HardwareVersionNumber = "HardwareVersionNumber",
- ProductModel = "ProductModel",
- SoftwareVersionNumber = "SoftwareVersionNumber"
- }
- }
- };
- var hex = JT808Serializer.Serialize(jT808_0x0900_0xF8).ToHexString();
- Assert.Equal("01015C0B436F6D70616E744E616D650C50726F647563744D6F64656C15486172647761726556657273696F6E4E756D62657215536F66747761726556657273696F6E4E756D626572094465766963657349440C437573746F6D6572436F6465", hex);
- }
-
- [Fact]
- public void Test_0xF8_2()
- {
- var jT808_0x0900_0xF8 = JT808Serializer.Deserialize("01015C0B436F6D70616E744E616D650C50726F647563744D6F64656C15486172647761726556657273696F6E4E756D62657215536F66747761726556657273696F6E4E756D626572094465766963657349440C437573746F6D6572436F6465".ToHexBytes());
- Assert.Equal(JT808_JTActiveSafety_Constants.JT808_0X0900_0xF8, jT808_0x0900_0xF8.PassthroughType);
- Assert.Equal(1, jT808_0x0900_0xF8.USBMessageCount);
- Assert.Equal(1, jT808_0x0900_0xF8.USBMessages[0].USBID);
- Assert.Equal("CompantName", jT808_0x0900_0xF8.USBMessages[0].CompantName);
- Assert.Equal("CompantName".Length, jT808_0x0900_0xF8.USBMessages[0].CompantNameLength);
- Assert.Equal("CustomerCode", jT808_0x0900_0xF8.USBMessages[0].CustomerCode);
- Assert.Equal("CustomerCode".Length, jT808_0x0900_0xF8.USBMessages[0].CustomerCodeLength);
- Assert.Equal("DevicesID", jT808_0x0900_0xF8.USBMessages[0].DevicesID);
- Assert.Equal("DevicesID".Length, jT808_0x0900_0xF8.USBMessages[0].DevicesIDLength);
- Assert.Equal("HardwareVersionNumber", jT808_0x0900_0xF8.USBMessages[0].HardwareVersionNumber);
- Assert.Equal("HardwareVersionNumber".Length, jT808_0x0900_0xF8.USBMessages[0].HardwareVersionNumberLength);
- Assert.Equal("ProductModel", jT808_0x0900_0xF8.USBMessages[0].ProductModel);
- Assert.Equal("ProductModel".Length, jT808_0x0900_0xF8.USBMessages[0].ProductModelLength);
- Assert.Equal("SoftwareVersionNumber", jT808_0x0900_0xF8.USBMessages[0].SoftwareVersionNumber);
- Assert.Equal("SoftwareVersionNumber".Length, jT808_0x0900_0xF8.USBMessages[0].SoftwareVersionNumberLength);
- }
-
- [Fact]
- public void Test_0xF8_3()
- {
- var json = JT808Serializer.Analyze("01015C0B436F6D70616E744E616D650C50726F647563744D6F64656C15486172647761726556657273696F6E4E756D62657215536F66747761726556657273696F6E4E756D626572094465766963657349440C437573746F6D6572436F6465".ToHexBytes());
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x1210_Test.cs b/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x1210_Test.cs
deleted file mode 100644
index f250bf5..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x1210_Test.cs
+++ /dev/null
@@ -1,81 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.MessageBody;
-using JT808.Protocol.MessageBody;
-using Microsoft.Extensions.DependencyInjection;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Xunit;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Test
-{
- public class JT808_0x1210_Test
- {
- JT808Serializer JT808Serializer;
- public JT808_0x1210_Test()
- {
- ServiceCollection serviceDescriptors = new ServiceCollection();
- serviceDescriptors.AddJT808Configure()
- .AddJTActiveSafetyConfigure();
- IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService();
- JT808Serializer = new JT808Serializer(jT808Config);
- }
- [Fact]
- public void Serializer()
- {
- JT808_0x1210 jT808UploadLocationRequest = new JT808_0x1210
- {
- AlarmId = "11111111111111111111111111111111",
- AlarmIdentification = new Metadata.AlarmIdentificationProperty
- {
- Retain = 1,
- AttachCount = 2,
- SN = 3,
- TerminalID = "4444444",
- Time = Convert.ToDateTime("2019-12-10 18:31:00")
- },
- AttachInfos = new List {
- new Metadata.AttachProperty{
- FileName="filename",
- FileSize=9
- },
- new Metadata.AttachProperty{
- FileName="filename1",
- FileSize=10
- }
- },
- MakerID = "4444444",
- InfoType = 0
- };
- var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString();
- Assert.Equal("3434343434343434343434343434191210183100030201313131313131313131313131313131313131313131313131313131313131313100020866696C656E616D65000000090966696C656E616D65310000000A", hex);
- }
- [Fact]
- public void Deserialize()
- {
- var jT808UploadLocationRequest = JT808Serializer.Deserialize("3434343434343434343434343434191210183100030201313131313131313131313131313131313131313131313131313131313131313100020866696C656E616D65000000090966696C656E616D65310000000A".ToHexBytes());
- Assert.Equal("11111111111111111111111111111111", jT808UploadLocationRequest.AlarmId);
- Assert.Equal(2, jT808UploadLocationRequest.AlarmIdentification.AttachCount);
- Assert.Equal(3, jT808UploadLocationRequest.AlarmIdentification.SN);
- Assert.Equal("4444444", jT808UploadLocationRequest.AlarmIdentification.TerminalID);
- Assert.Equal(Convert.ToDateTime("2019-12-10 18:31:00"), jT808UploadLocationRequest.AlarmIdentification.Time);
- Assert.Equal(2, jT808UploadLocationRequest.AttachCount);
-
- Assert.Equal("filename", jT808UploadLocationRequest.AttachInfos[0].FileName);
- Assert.Equal(8, jT808UploadLocationRequest.AttachInfos[0].FileNameLength);
- Assert.Equal(9u, jT808UploadLocationRequest.AttachInfos[0].FileSize);
-
- Assert.Equal("filename1", jT808UploadLocationRequest.AttachInfos[1].FileName);
- Assert.Equal(9, jT808UploadLocationRequest.AttachInfos[1].FileNameLength);
- Assert.Equal(10u, jT808UploadLocationRequest.AttachInfos[1].FileSize);
-
- Assert.Equal("4444444", jT808UploadLocationRequest.MakerID);
- Assert.Equal(0, jT808UploadLocationRequest.InfoType);
-
- }
- [Fact]
- public void Json()
- {
- var json = JT808Serializer.Analyze("3434343434343434343434343434191210183100030201313131313131313131313131313131313131313131313131313131313131313100020866696C656E616D65000000090966696C656E616D65310000000A".ToHexBytes());
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x1211_Test.cs b/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x1211_Test.cs
deleted file mode 100644
index 96f24a0..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x1211_Test.cs
+++ /dev/null
@@ -1,50 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.MessageBody;
-using JT808.Protocol.MessageBody;
-using Microsoft.Extensions.DependencyInjection;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Xunit;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Test
-{
- public class JT808_0x1211_Test
- {
- JT808Serializer JT808Serializer;
- public JT808_0x1211_Test()
- {
- ServiceCollection serviceDescriptors = new ServiceCollection();
- serviceDescriptors.AddJT808Configure()
- .AddJTActiveSafetyConfigure();
- IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService();
- JT808Serializer = new JT808Serializer(jT808Config);
- }
- [Fact]
- public void Serializer()
- {
- JT808_0x1211 jT808UploadLocationRequest = new JT808_0x1211
- {
- FileName= "FileName",
- FileSize=1,
- FileType=2
- };
- var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString();
- Assert.Equal("0846696C654E616D650200000001", hex);
- }
- [Fact]
- public void Deserialize()
- {
- var jT808UploadLocationRequest = JT808Serializer.Deserialize("0846696C654E616D650200000001".ToHexBytes());
- Assert.Equal("FileName", jT808UploadLocationRequest.FileName);
- Assert.Equal(1u, jT808UploadLocationRequest.FileSize);
- Assert.Equal(2, jT808UploadLocationRequest.FileType);
- Assert.Equal("FileName".Length, jT808UploadLocationRequest.FileNameLength);
- }
-
- [Fact]
- public void Json()
- {
- var json = JT808Serializer.Analyze("0846696C654E616D650200000001".ToHexBytes());
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x1212_Test.cs b/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x1212_Test.cs
deleted file mode 100644
index f91515f..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x1212_Test.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.MessageBody;
-using JT808.Protocol.MessageBody;
-using Microsoft.Extensions.DependencyInjection;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Xunit;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Test
-{
- public class JT808_0x1212_Test
- {
- JT808Serializer JT808Serializer;
- public JT808_0x1212_Test()
- {
- ServiceCollection serviceDescriptors = new ServiceCollection();
- serviceDescriptors.AddJT808Configure()
- .AddJTActiveSafetyConfigure();
- IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService();
- JT808Serializer = new JT808Serializer(jT808Config);
- }
- [Fact]
- public void Serializer()
- {
- JT808_0x1212 jT808UploadLocationRequest = new JT808_0x1212
- {
- FileName= "FileName",
- FileSize=1,
- FileType=2
- };
- var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString();
- Assert.Equal("0846696C654E616D650200000001", hex);
- }
- [Fact]
- public void Deserialize()
- {
- var jT808UploadLocationRequest = JT808Serializer.Deserialize("0846696C654E616D650200000001".ToHexBytes());
- Assert.Equal("FileName", jT808UploadLocationRequest.FileName);
- Assert.Equal(1u, jT808UploadLocationRequest.FileSize);
- Assert.Equal(2, jT808UploadLocationRequest.FileType);
- Assert.Equal("FileName".Length, jT808UploadLocationRequest.FileNameLength);
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x8103_0xF364_Test.cs b/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x8103_0xF364_Test.cs
deleted file mode 100644
index d00b610..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x8103_0xF364_Test.cs
+++ /dev/null
@@ -1,139 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.MessageBody;
-using JT808.Protocol.MessageBody;
-using Microsoft.Extensions.DependencyInjection;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Xunit;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Test
-{
- public class JT808_0x8103_0xF364_Test
- {
- JT808Serializer JT808Serializer;
- public JT808_0x8103_0xF364_Test()
- {
- ServiceCollection serviceDescriptors = new ServiceCollection();
- serviceDescriptors.AddJT808Configure()
- .AddJTActiveSafetyConfigure();
- IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService();
- JT808Serializer = new JT808Serializer(jT808Config);
- }
- [Fact]
- public void Serializer()
- {
- JT808_0x8103 jT808UploadLocationRequest = new JT808_0x8103
- {
- ParamList=new List {
- new JT808_0x8103_0xF364{
- ActiveDistancePhotographyDistanceInterval=1,
- ActivelyTimePhotoInterval=2,
- ActivePhotographyStrategy=3,
- AlarmEnable=4,
- AlarmJudgeSpeedThreshold=5,
- AlarmPhotoVehicleCloseDistance=6,
- AlarmPhotoVehicleCloseDistanceInterval=7,
- BarrierAlarmPhotographs=8,
- DistanceThresholdObstacleAlarm=9,
- EventEnable=10,
- ForwardCollisionAlarmInterval=11,
- ForwardCollisionAlarmPhotographs=12,
- ForwardCollisionWarningTimeThreshold=13,
- FrequentAlarmJudgmentNumberChannelChange=14,
- FrequentChannelChangeAlarmJudgmentTimePeriod=15,
- FrequentChannelChangeAlarmPhotos=16,
- FrequentLaneChangeAlarmInterval=17,
- GradedSpeedThresholdLaneDeviationAlarm=18,
- HierarchicalSpeedThresholdForwardCollisionWarning=19,
- HierarchicalSpeedThresholdFrequentChannelChangeAlarm=20,
- HierarchicalSpeedThresholdObstacleAlarm=21,
- LaneDepartureAlarmPhoto=22,
- LaneDepartureAlarmPhotoInterval=23,
- ObstacleAlarmInterval=24,
- PedestrianCollisionAlarmEnablingSpeedThreshold=25,
- PedestrianCollisionAlarmInterval=26,
- PedestrianCollisionAlarmPhotos=27,
- PedestrianCollisionAlarmTimeThreshold=28,
- PhotoResolution=29,
- Placeholder1=30,
- Placeholder2=new byte[]{1,2,3,4 },
- RoadSignRecognitionPhotographs=32,
- RoadSignRecognitionPhotographsInterval=33,
- SingleInitiativePhotos=34,
- SingleInitiativePhotosInterval=35,
- VehicleDistanceMonitoringAlarmDistanceThreshold=36,
- VehicleDistanceMonitoringAndAlarmClassificationSpeedThreshold=37,
- VideoRecordingResolution=38,
- VideoRecordingTimeBeforeAndAfterAlarmVehicleProximity=39,
- VideoRecordingTimeBeforeAndAfterForwardCollisionAlarm=40,
- VideoRecordingTimeBeforeAndAfterFrequentLaneChangeAlarm=41,
- VideoRecordingTimeBeforeAndAfterLaneDepartureAlarm=42,
- VideoRecordingTimeBeforeAndAfterObstacleAlarm=43,
- VideoRecordingTimeBeforeAndAfterPedestrianCollisionAlarm=44,
- WarningVolume=45
- }
- }
- };
- var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString();
- Assert.Equal("010000F36438052D030002000122231D26000000040000000A1E09152B08180F0E14291011122A16170D13280C0B1C192C1B1A2425270607202101020304", hex);
- }
- [Fact]
- public void Deserialize()
- {
- var jT808UploadLocationRequest = JT808Serializer.Deserialize("010000F36438052D030002000122231D26000000040000000A1E09152B08180F0E14291011122A16170D13280C0B1C192C1B1A2425270607202101020304".ToHexBytes());
- JT808_0x8103_0xF364 jT808_0X8103_0XF364 = jT808UploadLocationRequest.ParamList[0] as JT808_0x8103_0xF364;
- Assert.Equal(1, jT808_0X8103_0XF364.ActiveDistancePhotographyDistanceInterval);
- Assert.Equal(2, jT808_0X8103_0XF364.ActivelyTimePhotoInterval);
- Assert.Equal(3, jT808_0X8103_0XF364.ActivePhotographyStrategy);
- Assert.Equal(4u, jT808_0X8103_0XF364.AlarmEnable);
- Assert.Equal(5, jT808_0X8103_0XF364.AlarmJudgeSpeedThreshold);
- Assert.Equal(6, jT808_0X8103_0XF364.AlarmPhotoVehicleCloseDistance);
- Assert.Equal(7, jT808_0X8103_0XF364.AlarmPhotoVehicleCloseDistanceInterval);
- Assert.Equal(8, jT808_0X8103_0XF364.BarrierAlarmPhotographs);
- Assert.Equal(9, jT808_0X8103_0XF364.DistanceThresholdObstacleAlarm);
- Assert.Equal(10u, jT808_0X8103_0XF364.EventEnable);
- Assert.Equal(11, jT808_0X8103_0XF364.ForwardCollisionAlarmInterval);
- Assert.Equal(12, jT808_0X8103_0XF364.ForwardCollisionAlarmPhotographs);
- Assert.Equal(13, jT808_0X8103_0XF364.ForwardCollisionWarningTimeThreshold);
- Assert.Equal(14, jT808_0X8103_0XF364.FrequentAlarmJudgmentNumberChannelChange);
- Assert.Equal(15, jT808_0X8103_0XF364.FrequentChannelChangeAlarmJudgmentTimePeriod);
- Assert.Equal(16, jT808_0X8103_0XF364.FrequentChannelChangeAlarmPhotos);
- Assert.Equal(17, jT808_0X8103_0XF364.FrequentLaneChangeAlarmInterval);
- Assert.Equal(18, jT808_0X8103_0XF364.GradedSpeedThresholdLaneDeviationAlarm);
- Assert.Equal(19, jT808_0X8103_0XF364.HierarchicalSpeedThresholdForwardCollisionWarning);
- Assert.Equal(20, jT808_0X8103_0XF364.HierarchicalSpeedThresholdFrequentChannelChangeAlarm);
- Assert.Equal(21, jT808_0X8103_0XF364.HierarchicalSpeedThresholdObstacleAlarm);
- Assert.Equal(22, jT808_0X8103_0XF364.LaneDepartureAlarmPhoto);
- Assert.Equal(23, jT808_0X8103_0XF364.LaneDepartureAlarmPhotoInterval);
- Assert.Equal(24, jT808_0X8103_0XF364.ObstacleAlarmInterval);
- Assert.Equal(25, jT808_0X8103_0XF364.PedestrianCollisionAlarmEnablingSpeedThreshold);
- Assert.Equal(26, jT808_0X8103_0XF364.PedestrianCollisionAlarmInterval);
- Assert.Equal(27, jT808_0X8103_0XF364.PedestrianCollisionAlarmPhotos);
- Assert.Equal(28, jT808_0X8103_0XF364.PedestrianCollisionAlarmTimeThreshold);
- Assert.Equal(29, jT808_0X8103_0XF364.PhotoResolution);
- Assert.Equal(30, jT808_0X8103_0XF364.Placeholder1);
- Assert.Equal(new byte[] { 1, 2, 3, 4 }.ToHexString(), jT808_0X8103_0XF364.Placeholder2.ToHexString());
- Assert.Equal(32, jT808_0X8103_0XF364.RoadSignRecognitionPhotographs);
- Assert.Equal(33, jT808_0X8103_0XF364.RoadSignRecognitionPhotographsInterval);
- Assert.Equal(34, jT808_0X8103_0XF364.SingleInitiativePhotos);
- Assert.Equal(35, jT808_0X8103_0XF364.SingleInitiativePhotosInterval);
- Assert.Equal(36, jT808_0X8103_0XF364.VehicleDistanceMonitoringAlarmDistanceThreshold);
- Assert.Equal(37, jT808_0X8103_0XF364.VehicleDistanceMonitoringAndAlarmClassificationSpeedThreshold);
- Assert.Equal(38, jT808_0X8103_0XF364.VideoRecordingResolution);
- Assert.Equal(39, jT808_0X8103_0XF364.VideoRecordingTimeBeforeAndAfterAlarmVehicleProximity);
- Assert.Equal(40, jT808_0X8103_0XF364.VideoRecordingTimeBeforeAndAfterForwardCollisionAlarm);
- Assert.Equal(41, jT808_0X8103_0XF364.VideoRecordingTimeBeforeAndAfterFrequentLaneChangeAlarm);
- Assert.Equal(42, jT808_0X8103_0XF364.VideoRecordingTimeBeforeAndAfterLaneDepartureAlarm);
- Assert.Equal(43, jT808_0X8103_0XF364.VideoRecordingTimeBeforeAndAfterObstacleAlarm);
- Assert.Equal(44, jT808_0X8103_0XF364.VideoRecordingTimeBeforeAndAfterPedestrianCollisionAlarm);
- Assert.Equal(45, jT808_0X8103_0XF364.WarningVolume);
- Assert.Equal(JT808_JTActiveSafety_Constants.JT808_0X8103_0xF364, jT808_0X8103_0XF364.ParamId);
- }
-
- [Fact]
- public void Json()
- {
- var json = JT808Serializer.Analyze("010000F36438052D030002000122231D26000000040000000A1E09152B08180F0E14291011122A16170D13280C0B1C192C1B1A2425270607202101020304".ToHexBytes());
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x8103_0xF365_Test.cs b/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x8103_0xF365_Test.cs
deleted file mode 100644
index 9e1e511..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x8103_0xF365_Test.cs
+++ /dev/null
@@ -1,116 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.MessageBody;
-using JT808.Protocol.MessageBody;
-using Microsoft.Extensions.DependencyInjection;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Xunit;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Test
-{
- public class JT808_0x8103_0xF365_Test
- {
- JT808Serializer JT808Serializer;
- public JT808_0x8103_0xF365_Test()
- {
- ServiceCollection serviceDescriptors = new ServiceCollection();
- serviceDescriptors.AddJT808Configure()
- .AddJTActiveSafetyConfigure();
- IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService();
- JT808Serializer = new JT808Serializer(jT808Config);
- }
- [Fact]
- public void Serializer()
- {
- JT808_0x8103 jT808UploadLocationRequest = new JT808_0x8103
- {
- ParamList=new List {
- new JT808_0x8103_0xF365{
- ActiveDistancePhotographyDistanceInterval=1,
- ActivelyTimePhotoInterval=2,
- ActivePhotographyStrategy=3,
- AlarmEnable=4,
- AlarmJudgeSpeedThreshold=5,
- EventEnable=10,
- PhotoResolution=29,
- SingleInitiativePhotos=34,
- SingleInitiativePhotosInterval=35,
- VideoRecordingResolution=38,
- WarningVolume=45,
- CallAlarmDetermineTimeInterval=46,
- CallAlarmTakePicturesDriverFacialFeatures=47,
- CallAlarmTakePicturesDriverFacialFeaturesInterval=48,
- ClassifiedSpeedThresholdCallAlarm=49,
- ClassifiedSpeedThresholdDistractedDrivingAlarm=50,
- ClassifiedSpeedThresholdSmokingAlarm=51,
- DistractedDrivingAlarmPhotography=52,
- DistractedDrivingAlarmPhotographyInterval=53,
- DriverIdentificationTrigger=54,
- FatigueDrivingAlarmPhotograph=55,
- FatigueDrivingAlarmPhotographInterval=56,
- GradedSpeedThresholdFatigueDrivingAlarm=57,
- PhotographsAbnormalDrivingBehavior=58,
- PictureIntervalAbnormalDrivingBehavior=59,
- Reserve=new byte[]{1,2,3 },
- Retain=new byte[]{5,6 },
- SmokingAlarmPhotographsDriverFaceCharacteristics=60,
- SmokingAlarmPhotographsDriverFaceCharacteristicsInterval=61,
- TimeIntervalSmokingAlarmJudgment=62,
- VideoRecordingTimeAbnormalDrivingBehavior=63,
- VideoRecordingTimeBeforeAndAfterCallAlarm=64,
- VideoRecordingTimeBeforeAndAfterFatigueDrivingAlarm=65,
- VideoRecordingTimeBeforeAndAfterSmokingAlarm=66
- }
- }
- };
- var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString();
- Assert.Equal("010000F3652F052D030002000122231D26000000040000000A003E002E0102033941373831402F3033423C3D3234353F3A3B360506", hex);
- }
- [Fact]
- public void Deserialize()
- {
- var jT808UploadLocationRequest = JT808Serializer.Deserialize("010000F3652F052D030002000122231D26000000040000000A003E002E0102033941373831402F3033423C3D3234353F3A3B360506".ToHexBytes());
- JT808_0x8103_0xF365 jT808_0X8103_0XF365 = jT808UploadLocationRequest.ParamList[0] as JT808_0x8103_0xF365;
- Assert.Equal(1, jT808_0X8103_0XF365.ActiveDistancePhotographyDistanceInterval);
- Assert.Equal(2, jT808_0X8103_0XF365.ActivelyTimePhotoInterval);
- Assert.Equal(3, jT808_0X8103_0XF365.ActivePhotographyStrategy);
- Assert.Equal(4u, jT808_0X8103_0XF365.AlarmEnable);
- Assert.Equal(5, jT808_0X8103_0XF365.AlarmJudgeSpeedThreshold);
- Assert.Equal(10u, jT808_0X8103_0XF365.EventEnable);
- Assert.Equal(29, jT808_0X8103_0XF365.PhotoResolution);
- Assert.Equal(34, jT808_0X8103_0XF365.SingleInitiativePhotos);
- Assert.Equal(35, jT808_0X8103_0XF365.SingleInitiativePhotosInterval);
- Assert.Equal(38, jT808_0X8103_0XF365.VideoRecordingResolution);
- Assert.Equal(45, jT808_0X8103_0XF365.WarningVolume);
- Assert.Equal(46, jT808_0X8103_0XF365.CallAlarmDetermineTimeInterval);
- Assert.Equal(47, jT808_0X8103_0XF365.CallAlarmTakePicturesDriverFacialFeatures);
- Assert.Equal(48, jT808_0X8103_0XF365.CallAlarmTakePicturesDriverFacialFeaturesInterval);
- Assert.Equal(49, jT808_0X8103_0XF365.ClassifiedSpeedThresholdCallAlarm);
- Assert.Equal(50, jT808_0X8103_0XF365.ClassifiedSpeedThresholdDistractedDrivingAlarm);
- Assert.Equal(51, jT808_0X8103_0XF365.ClassifiedSpeedThresholdSmokingAlarm);
- Assert.Equal(52, jT808_0X8103_0XF365.DistractedDrivingAlarmPhotography);
- Assert.Equal(53, jT808_0X8103_0XF365.DistractedDrivingAlarmPhotographyInterval);
- Assert.Equal(54, jT808_0X8103_0XF365.DriverIdentificationTrigger);
- Assert.Equal(55, jT808_0X8103_0XF365.FatigueDrivingAlarmPhotograph);
- Assert.Equal(56, jT808_0X8103_0XF365.FatigueDrivingAlarmPhotographInterval);
- Assert.Equal(57, jT808_0X8103_0XF365.GradedSpeedThresholdFatigueDrivingAlarm);
- Assert.Equal(58, jT808_0X8103_0XF365.PhotographsAbnormalDrivingBehavior);
- Assert.Equal(59, jT808_0X8103_0XF365.PictureIntervalAbnormalDrivingBehavior);
- Assert.Equal(new byte[] { 1, 2, 3 }.ToHexString(), jT808_0X8103_0XF365.Reserve.ToHexString());
- Assert.Equal(new byte[] { 5, 6 }.ToHexString(), jT808_0X8103_0XF365.Retain.ToHexString());
- Assert.Equal(60, jT808_0X8103_0XF365.SmokingAlarmPhotographsDriverFaceCharacteristics);
- Assert.Equal(61, jT808_0X8103_0XF365.SmokingAlarmPhotographsDriverFaceCharacteristicsInterval);
- Assert.Equal(62, jT808_0X8103_0XF365.TimeIntervalSmokingAlarmJudgment);
- Assert.Equal(63, jT808_0X8103_0XF365.VideoRecordingTimeAbnormalDrivingBehavior);
- Assert.Equal(64, jT808_0X8103_0XF365.VideoRecordingTimeBeforeAndAfterCallAlarm);
- Assert.Equal(65, jT808_0X8103_0XF365.VideoRecordingTimeBeforeAndAfterFatigueDrivingAlarm);
- Assert.Equal(66, jT808_0X8103_0XF365.VideoRecordingTimeBeforeAndAfterSmokingAlarm);
- Assert.Equal(JT808_JTActiveSafety_Constants.JT808_0X8103_0xF365, jT808_0X8103_0XF365.ParamId);
- }
- [Fact]
- public void Json()
- {
- var json = JT808Serializer.Analyze("010000F3652F052D030002000122231D26000000040000000A003E002E0102033941373831402F3033423C3D3234353F3A3B360506".ToHexBytes());
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x8103_0xF366_Test.cs b/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x8103_0xF366_Test.cs
deleted file mode 100644
index 68047b3..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x8103_0xF366_Test.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.MessageBody;
-using JT808.Protocol.MessageBody;
-using Microsoft.Extensions.DependencyInjection;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Xunit;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Test
-{
- public class JT808_0x8103_0xF366_Test
- {
- JT808Serializer JT808Serializer;
- public JT808_0x8103_0xF366_Test()
- {
- ServiceCollection serviceDescriptors = new ServiceCollection();
- serviceDescriptors.AddJT808Configure()
- .AddJTActiveSafetyConfigure();
- IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService();
- JT808Serializer = new JT808Serializer(jT808Config);
- }
- [Fact]
- public void Serializer()
- {
- JT808_0x8103 jT808UploadLocationRequest = new JT808_0x8103
- {
- ParamList=new List {
- new JT808_0x8103_0xF366{
- HighTemperatureThreshold=1,
- HighVoltageThreshold=2,
- LowVoltageThreshold=3,
- NormalFetalPressure=4,
- Retain=new byte[]{1,2,3,4,5,6 },
- SlowLeakageThreshold=5,
- ThresholdUnbalancedTirePressure=6,
- TimedReportingInterval=7,
- TyrePressureUnit=8,
- TyreSpecificationType="999999999999",
- VoltageThreshold=10
- }
- }
- };
- var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString();
- Assert.Equal("010000F366243939393939393939393939390008000400060005000300020001000A0007010203040506", hex);
- }
- [Fact]
- public void Deserialize()
- {
- var jT808UploadLocationRequest = JT808Serializer.Deserialize("010000F366243939393939393939393939390008000400060005000300020001000A0007010203040506".ToHexBytes());
- JT808_0x8103_0xF366 jT808_0x8103_0xF366 = jT808UploadLocationRequest.ParamList[0] as JT808_0x8103_0xF366;
- Assert.Equal(1, jT808_0x8103_0xF366.HighTemperatureThreshold);
- Assert.Equal(2, jT808_0x8103_0xF366.HighVoltageThreshold);
- Assert.Equal(3, jT808_0x8103_0xF366.LowVoltageThreshold);
- Assert.Equal(4, jT808_0x8103_0xF366.NormalFetalPressure);
- Assert.Equal(new byte[] { 1, 2, 3, 4, 5, 6 }.ToHexString(), jT808_0x8103_0xF366.Retain.ToHexString());
- Assert.Equal(5, jT808_0x8103_0xF366.SlowLeakageThreshold);
- Assert.Equal(6, jT808_0x8103_0xF366.ThresholdUnbalancedTirePressure);
- Assert.Equal(7, jT808_0x8103_0xF366.TimedReportingInterval);
- Assert.Equal(8, jT808_0x8103_0xF366.TyrePressureUnit);
- Assert.Equal("999999999999", jT808_0x8103_0xF366.TyreSpecificationType);
- Assert.Equal(10, jT808_0x8103_0xF366.VoltageThreshold);
- }
- [Fact]
- public void Json()
- {
- var json = JT808Serializer.Analyze("010000F366243939393939393939393939390008000400060005000300020001000A0007010203040506".ToHexBytes());
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x8103_0xF367_Test.cs b/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x8103_0xF367_Test.cs
deleted file mode 100644
index 4f0867e..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x8103_0xF367_Test.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.MessageBody;
-using JT808.Protocol.MessageBody;
-using Microsoft.Extensions.DependencyInjection;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Xunit;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Test
-{
- public class JT808_0x8103_0xF367_Test
- {
- JT808Serializer JT808Serializer;
- public JT808_0x8103_0xF367_Test()
- {
- ServiceCollection serviceDescriptors = new ServiceCollection();
- serviceDescriptors.AddJT808Configure()
- .AddJTActiveSafetyConfigure();
- IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService();
- JT808Serializer = new JT808Serializer(jT808Config);
- }
- [Fact]
- public void Serializer()
- {
- JT808_0x8103 jT808UploadLocationRequest = new JT808_0x8103
- {
- ParamList=new List {
- new JT808_0x8103_0xF367{
- LateralRearApproachAlarmTimeThreshold=1,
- RearApproachAlarmTimeThreshold=2
- }
- }
- };
- var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString();
- Assert.Equal("010000F367020201", hex);
- }
- [Fact]
- public void Deserialize()
- {
- var jT808UploadLocationRequest = JT808Serializer.Deserialize("010000F367020201".ToHexBytes());
- JT808_0x8103_0xF367 jT808_0x8103_0xF367 = jT808UploadLocationRequest.ParamList[0] as JT808_0x8103_0xF367;
- Assert.Equal(1, jT808_0x8103_0xF367.LateralRearApproachAlarmTimeThreshold);
- Assert.Equal(2, jT808_0x8103_0xF367.RearApproachAlarmTimeThreshold);
- }
- [Fact]
- public void Json()
- {
- var json = JT808Serializer.Analyze("010000F367020201".ToHexBytes());
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x8900_Test.cs b/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x8900_Test.cs
deleted file mode 100644
index 4061b7d..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x8900_Test.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.MessageBody;
-using JT808.Protocol.MessageBody;
-using Microsoft.Extensions.DependencyInjection;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Xunit;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Test
-{
- public class JT808_0x8900_Test
- {
- JT808Serializer JT808Serializer;
- public JT808_0x8900_Test()
- {
- ServiceCollection serviceDescriptors = new ServiceCollection();
- serviceDescriptors.AddJT808Configure()
- .AddJTActiveSafetyConfigure();
- IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService();
- JT808Serializer = new JT808Serializer(jT808Config);
- }
- [Fact]
- public void Serializer()
- {
- JT808_0x8900_0xF7 jT808UploadLocationRequest = new JT808_0x8900_0xF7
- {
- USBCount=2,
- MultipleUSB=new List {1,2 }
- };
- var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString();
- Assert.Equal("020102", hex);
- }
- [Fact]
- public void Deserialize()
- {
- var jT808UploadLocationRequest = JT808Serializer.Deserialize("020102".ToHexBytes());
- Assert.Equal(2, jT808UploadLocationRequest.USBCount);
- Assert.Equal(new List { 1, 2 }.ToArray().ToHexString(), jT808UploadLocationRequest.MultipleUSB.ToArray().ToHexString());
- }
- [Fact]
- public void Json()
- {
- var json = JT808Serializer.Analyze("020102".ToHexBytes());
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x9208_Test.cs b/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x9208_Test.cs
deleted file mode 100644
index f5bbd0a..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x9208_Test.cs
+++ /dev/null
@@ -1,64 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.MessageBody;
-using JT808.Protocol.MessageBody;
-using Microsoft.Extensions.DependencyInjection;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Xunit;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Test
-{
- public class JT808_0x9208_Test
- {
- JT808Serializer JT808Serializer;
- public JT808_0x9208_Test()
- {
- ServiceCollection serviceDescriptors = new ServiceCollection();
- serviceDescriptors.AddJT808Configure()
- .AddJTActiveSafetyConfigure();
- IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService();
- JT808Serializer = new JT808Serializer(jT808Config);
- }
- [Fact]
- public void Serializer()
- {
- JT808_0x9208 jT808UploadLocationRequest = new JT808_0x9208
- {
- AlarmId="11111111111111111111111111111111",
- AlarmIdentification=new Metadata.AlarmIdentificationProperty {
- Retain=1,
- AttachCount = 2,
- SN = 3,
- TerminalID = "4444444",
- Time = Convert.ToDateTime("2019-12-10 18:31:00")
- },
- AttachmentServerIP="192.168.1.1",
- AttachmentServerIPTcpPort=5000,
- AttachmentServerIPUdpPort=5001
- };
- var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString();
- Assert.Equal("0B3139322E3136382E312E311388138934343434343434191210183100030201313131313131313131313131313131313131313131313131313131313131313100000000000000000000000000000000", hex);
- }
- [Fact]
- public void Deserialize()
- {
- var jT808UploadLocationRequest = JT808Serializer.Deserialize("0B3139322E3136382E312E311388138934343434343434191210183100030201313131313131313131313131313131313131313131313131313131313131313100000000000000000000000000000000".ToHexBytes());
- Assert.Equal("11111111111111111111111111111111", jT808UploadLocationRequest.AlarmId);
- Assert.Equal(1, jT808UploadLocationRequest.AlarmIdentification.Retain);
- Assert.Equal(2, jT808UploadLocationRequest.AlarmIdentification.AttachCount);
- Assert.Equal(3, jT808UploadLocationRequest.AlarmIdentification.SN);
- Assert.Equal("4444444", jT808UploadLocationRequest.AlarmIdentification.TerminalID);
- Assert.Equal(Convert.ToDateTime("2019-12-10 18:31:00"), jT808UploadLocationRequest.AlarmIdentification.Time);
- Assert.Equal("192.168.1.1", jT808UploadLocationRequest.AttachmentServerIP);
- Assert.Equal("192.168.1.1".Length, jT808UploadLocationRequest.AttachmentServerIPLength);
- Assert.Equal(5000, jT808UploadLocationRequest.AttachmentServerIPTcpPort);
- Assert.Equal(5001, jT808UploadLocationRequest.AttachmentServerIPUdpPort);
- }
-
- [Fact]
- public void Json()
- {
- var json = JT808Serializer.Analyze("0B3139322E3136382E312E311388138934343434343434191210183100030201313131313131313131313131313131313131313131313131313131313131313100000000000000000000000000000000".ToHexBytes());
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x9212_Test.cs b/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x9212_Test.cs
deleted file mode 100644
index dc9a03a..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety.Test/JT808_0x9212_Test.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.MessageBody;
-using JT808.Protocol.MessageBody;
-using Microsoft.Extensions.DependencyInjection;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Xunit;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Test
-{
- public class JT808_0x9212_Test
- {
- JT808Serializer JT808Serializer;
- public JT808_0x9212_Test()
- {
- ServiceCollection serviceDescriptors = new ServiceCollection();
- serviceDescriptors.AddJT808Configure()
- .AddJTActiveSafetyConfigure();
- IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService();
- JT808Serializer = new JT808Serializer(jT808Config);
- }
- [Fact]
- public void Serializer()
- {
- JT808_0x9212 jT808UploadLocationRequest = new JT808_0x9212
- {
- DataPackageCount=2,
- DataPackages=new List {
- new Metadata.DataPackageProperty{
- Length=10,
- Offset=20
- },
- new Metadata.DataPackageProperty{
- Length=30,
- Offset=40
- }
- },
- FileName= "FileName",
- FileType=1,
- UploadResult=2
- };
- var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString();
- Assert.Equal("0846696C654E616D65010202000000140000000A000000280000001E", hex);
- }
- [Fact]
- public void Deserialize()
- {
- var jT808UploadLocationRequest = JT808Serializer.Deserialize("0846696C654E616D65010202000000140000000A000000280000001E".ToHexBytes());
- Assert.Equal(2, jT808UploadLocationRequest.DataPackageCount);
- Assert.Equal("FileName", jT808UploadLocationRequest.FileName);
- Assert.Equal(1, jT808UploadLocationRequest.FileType);
- Assert.Equal(2, jT808UploadLocationRequest.UploadResult);
-
- Assert.Equal(10u, jT808UploadLocationRequest.DataPackages[0].Length);
- Assert.Equal(20u, jT808UploadLocationRequest.DataPackages[0].Offset);
-
- Assert.Equal(30u, jT808UploadLocationRequest.DataPackages[1].Length);
- Assert.Equal(40u, jT808UploadLocationRequest.DataPackages[1].Offset);
- }
- [Fact]
- public void Json()
- {
- var json = JT808Serializer.Analyze("0846696C654E616D65010202000000140000000A000000280000001E".ToHexBytes());
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/ActivePhotographyStrategyType.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/ActivePhotographyStrategyType.cs
deleted file mode 100644
index e1c0367..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/ActivePhotographyStrategyType.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Enums
-{
- ///
- /// 主动拍照策略
- ///
- public enum ActivePhotographyStrategyType:byte
- {
- ///
- /// 不开启
- ///
- 不开启 = 0x00,
- ///
- /// 定时拍照
- ///
- 定时拍照 = 0x01,
- ///
- /// 定距拍照
- ///
- 定距拍照 = 0x02,
- ///
- /// 保留
- ///
- 保留 = 0x03,
- ///
- /// 不修改参数
- ///
- 不修改参数 = 0xFF
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/JT808_JTActiveSafety_MsgId.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/JT808_JTActiveSafety_MsgId.cs
deleted file mode 100644
index e1167c8..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/JT808_JTActiveSafety_MsgId.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Enums
-{
- ///
- /// 主动安全消息Id
- ///
- public enum JT808_JTActiveSafety_MsgId : ushort
- {
- ///
- /// 报警附件信息消息
- ///
- 报警附件信息消息 = 0x1210,
- ///
- /// 文件信息上传
- ///
- 文件信息上传 = 0x1211,
- ///
- /// 文件上传完成消息
- ///
- 文件上传完成消息 = 0x1212,
- ///
- /// 报警附件上传指令
- ///
- 报警附件上传指令 = 0x9208,
- ///
- /// 文件上传完成消息应答
- ///
- 文件上传完成消息应答 = 0x9212,
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/PhotoResolutionType.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/PhotoResolutionType.cs
deleted file mode 100644
index e9b4d17..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/PhotoResolutionType.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Enums
-{
- ///
- /// 拍照分辨率
- ///
- public enum PhotoResolutionType:byte
- {
- ///
- /// 352x288
- ///
- x352_288 = 0x01,
- ///
- /// 704x288
- ///
- x704_288 = 0x02,
- ///
- /// 704x576
- ///
- x704_576 = 0x03,
- ///
- /// 640x480
- ///
- x640_480 = 0x04,
- ///
- /// 1280x720
- ///
- x1280_720 = 0x05,
- ///
- /// 1920x1080
- ///
- x1920_1080 = 0x06,
- ///
- /// 不修改参数
- ///
- 不修改参数 = 0xFF
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/USBIDType.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/USBIDType.cs
deleted file mode 100644
index 79b6b9f..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/USBIDType.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Enums
-{
- ///
- /// USB编号类型
- ///
- public enum USBIDType:byte
- {
- ///
- /// 高级驾驶辅助系统
- ///
- ADAS = 0x64,
- ///
- /// 驾驶员状态监控系统
- ///
- DSM = 0x65,
- ///
- /// 轮胎气压监测系统
- ///
- TPMS = 0x66,
- ///
- /// 盲点监测系统
- ///
- BSD = 0x67
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/VideoRecordingResolutionType.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/VideoRecordingResolutionType.cs
deleted file mode 100644
index 3d4026f..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/VideoRecordingResolutionType.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Enums
-{
- ///
- /// 视频录制分辨率
- ///
- public enum VideoRecordingResolutionType:byte
- {
- ///
- /// CIF
- ///
- CIF = 0x01,
- ///
- /// HD1
- ///
- HD1 = 0x02,
- ///
- /// D1
- ///
- D1 = 0x03,
- ///
- /// WD1
- ///
- WD1 = 0x04,
- ///
- /// VGA
- ///
- VGA = 0x05,
- ///
- /// 720P
- ///
- _720P = 0x06,
- ///
- /// 1080P
- ///
- _1080P = 0x07,
- ///
- /// 不修改参数
- ///
- 不修改参数 = 0xFF
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/WorkingConditionType.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/WorkingConditionType.cs
deleted file mode 100644
index 724ae2d..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/WorkingConditionType.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Enums
-{
- ///
- /// 工作状态
- ///
- public enum WorkingConditionType:byte
- {
- ///
- /// 正常工作
- ///
- 正常工作 = 0x01,
- ///
- /// 待机状态
- ///
- 待机状态 = 0x02,
- ///
- /// 升级维护
- ///
- 升级维护 = 0x03,
- ///
- /// 设备异常
- ///
- 设备异常 = 0x04,
- ///
- /// 断开连接
- ///
- 断开连接 = 0x10,
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/JT808.Protocol.Extensions.JTActiveSafety.csproj b/src/JT808.Protocol.Extensions.JTActiveSafety/JT808.Protocol.Extensions.JTActiveSafety.csproj
deleted file mode 100644
index 0156007..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/JT808.Protocol.Extensions.JTActiveSafety.csproj
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
- netstandard2.0;netstandard2.1;net5.0;
- 9.0
- Copyright 2019.
- SmallChi(Koike)
- JT808.Protocol.Extensions.JTActiveSafety
- JT808.Protocol.Extensions.JTActiveSafety
- 基于JT808协议、GB808协议扩展的主动安全消息协议(苏标)
- 基于JT808协议、GB808协议扩展的主动安全消息协议(苏标)
- true
- https://github.com/SmallChi/JTActiveSafety
- https://github.com/SmallChi/JTActiveSafety
- https://github.com/SmallChi/JTActiveSafety/blob/master/LICENSE
- https://github.com/SmallChi/JTActiveSafety/blob/master/LICENSE
- false
- JT808.Protocol.Extensions.JTActiveSafety.xml
- 1.1.7
- LICENSE
-
-
-
-
- True
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/JT808.Protocol.Extensions.JTActiveSafety.xml b/src/JT808.Protocol.Extensions.JTActiveSafety/JT808.Protocol.Extensions.JTActiveSafety.xml
deleted file mode 100644
index 8986e83..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/JT808.Protocol.Extensions.JTActiveSafety.xml
+++ /dev/null
@@ -1,2028 +0,0 @@
-
-
-
- JT808.Protocol.Extensions.JTActiveSafety
-
-
-
-
- 主动拍照策略
-
-
-
-
- 不开启
-
-
-
-
- 定时拍照
-
-
-
-
- 定距拍照
-
-
-
-
- 保留
-
-
-
-
- 不修改参数
-
-
-
-
- 主动安全消息Id
-
-
-
-
- 报警附件信息消息
-
-
-
-
- 文件信息上传
-
-
-
-
- 文件上传完成消息
-
-
-
-
- 报警附件上传指令
-
-
-
-
- 文件上传完成消息应答
-
-
-
-
- 拍照分辨率
-
-
-
-
- 352x288
-
-
-
-
- 704x288
-
-
-
-
- 704x576
-
-
-
-
- 640x480
-
-
-
-
- 1280x720
-
-
-
-
- 1920x1080
-
-
-
-
- 不修改参数
-
-
-
-
- USB编号类型
-
-
-
-
- 高级驾驶辅助系统
-
-
-
-
- 驾驶员状态监控系统
-
-
-
-
- 轮胎气压监测系统
-
-
-
-
- 盲点监测系统
-
-
-
-
- 视频录制分辨率
-
-
-
-
- CIF
-
-
-
-
- HD1
-
-
-
-
- D1
-
-
-
-
- WD1
-
-
-
-
- VGA
-
-
-
-
- 720P
-
-
-
-
- 1080P
-
-
-
-
- 不修改参数
-
-
-
-
- 工作状态
-
-
-
-
- 正常工作
-
-
-
-
- 待机状态
-
-
-
-
- 升级维护
-
-
-
-
- 设备异常
-
-
-
-
- 断开连接
-
-
-
-
- 主动安全常量
-
-
-
-
- 附加信息ID 高级驾驶辅助系统报警信息
-
-
-
-
- 附加信息ID 驾驶员状态监测系统报警信息
-
-
-
-
- 附加信息ID 胎压监测系统报警信息
-
-
-
-
- 附加信息ID 盲区监测系统报警信息
-
-
-
-
- 高级驾驶辅助系统参数设置
-
-
-
-
- 驾驶员状态监测系统参数设置
-
-
-
-
- 胎压监测系统参数设置
-
-
-
-
- 盲区监测系统参数设置
-
-
-
-
- 状态查询
-
-
-
-
- 信息查询
-
-
-
-
- 主动安全扩展
-
-
-
-
- 添加主动安全
-
-
-
-
-
-
- 高级驾驶辅助系统报警信息
-
-
-
-
- 高级驾驶辅助系统报警信息Id
-
-
-
-
- 高级驾驶辅助系统报警信息附加长度
-
-
-
-
- 报警ID
-
-
-
-
- 标志状态
-
-
-
-
- 报警/事件类型
-
-
-
-
- 报警/事件类型
-
-
-
-
- 前车车速
-
-
-
-
- 前车/行人距离
-
-
-
-
- 偏离类型
-
-
-
-
- 道路标志识别类型
-
-
-
-
- 道路标志识别类型
-
-
-
-
- 车速
-
-
-
-
- 高程
-
-
-
-
- 纬度
-
-
-
-
- 经度
-
-
-
-
- 日期时间
- YYMMDDhhmmss
- BCD[6]
-
-
-
-
- 车辆状态
-
-
-
-
- 报警标识号
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 驾驶员状态监测系统报警信息
-
-
-
-
- 驾驶员状态监测系统报警信息Id
-
-
-
-
- 驾驶员状态监测系统报警信息长度
-
-
-
-
- 报警ID
-
-
-
-
- 标志状态
-
-
-
-
- 报警/事件类型
-
-
-
-
- 报警级别
-
-
-
-
- 疲劳程度
-
-
-
-
- 预留
-
-
-
-
- 车速
-
-
-
-
- 高程
-
-
-
-
- 纬度
-
-
-
-
- 经度
-
-
-
-
- 日期时间
- YYMMDDhhmmss
- BCD[6]
-
-
-
-
- 车辆状态
-
-
-
-
- 报警标识号
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 胎压监测系统报警信息
-
-
-
-
- 胎压监测系统报警信息Id
-
-
-
-
- 胎压监测系统报警信息长度
-
-
-
-
- 报警ID
-
-
-
-
- 标志状态
-
-
-
-
- 车速
-
-
-
-
- 高程
-
-
-
-
- 纬度
-
-
-
-
- 经度
-
-
-
-
- 日期时间
- YYMMDDhhmmss
- BCD[6]
-
-
-
-
- 车辆状态
-
-
-
-
- 报警标识号
-
-
-
-
- 报警/事件列表总数
-
-
-
-
- 报警/事件信息列表
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 盲区监测系统报警信息
-
-
-
-
- 盲区监测系统报警信息Id
-
-
-
-
- 盲区监测系统报警信息长度
-
-
-
-
- 报警ID
-
-
-
-
- 标志状态
-
-
-
-
- 报警/事件类型
-
-
-
-
- 报警/事件类型
-
-
-
-
- 车速
-
-
-
-
- 高程
-
-
-
-
- 纬度
-
-
-
-
- 经度
-
-
-
-
- 日期时间
- YYMMDDhhmmss
- BCD[6]
-
-
-
-
- 车辆状态
-
-
-
-
- 报警标识号
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 透传数据
-
-
-
-
- 透传类型
-
-
-
-
- 消息列表总数
-
-
-
-
- 消息列表数据
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 透传数据
-
-
-
-
- 透传类型
-
-
-
-
- 消息列表总数
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 报警附件信息消息
-
-
-
-
- 制造商Id
- 7 个字节,由大写字母和数字组成,此终端ID 由制造商自行定义,位数不足时,后补“0x00”
-
-
-
-
- 报警标识号
-
-
-
-
- 平台给报警分配的唯一编号
- 32
-
-
-
-
- 信息类型
- 0x00:正常报警文件信息
- 0x01:补传报警文件信息
-
-
-
-
- 附件数量
-
-
-
-
- 附件信息列表
-
-
-
-
- 报警附件信息消息Id
-
-
-
-
- 报警附件信息消息
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 文件信息上传
-
-
-
-
- 文件信息上传
-
-
-
-
- 文件名称长度
-
-
-
-
- 文件名称
- 形如:文件类型_通道号_报警类型_序号_报警编号.后缀名
-
-
-
-
- 文件类型
-
-
-
-
- 文件大小
-
-
-
-
- 文件信息上传Id
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 文件上传完成消息
-
-
-
-
- 文件上传完成消息
-
-
-
-
- 文件名称长度
-
-
-
-
- 文件名称
- 形如:文件类型_通道号_报警类型_序号_报警编号.后缀名
-
-
-
-
- 文件类型
-
-
-
-
- 文件大小
-
-
-
-
- 文件上传完成消息
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 高级驾驶辅助系统参数
-
-
-
-
- 高级驾驶辅助系统参数
-
-
-
-
- 高级驾驶辅助系统参数长度
-
-
-
-
- 报警判断速度阈值
-
-
-
-
- 报警提示音量
-
-
-
-
- 主动拍照策略
-
-
-
-
-
- 主动定时拍照时间间隔
-
-
-
-
- 主动定距拍照距离间隔
-
-
-
-
- 单次主动拍照张数
-
-
-
-
- 单次主动拍照时间间隔
-
-
-
-
- 拍照分辨率
-
-
-
-
-
- 视频录制分辨率
-
-
-
-
- 报警使能
-
-
-
-
- 事件使能
-
-
-
-
- 预留字段
-
-
-
-
- 障碍物报警距离阈值
-
-
-
-
- 障碍物报警分级速度阈值
-
-
-
-
- 障碍物报警前后视频录制时间
-
-
-
-
- 障碍物报警拍照张数
-
-
-
-
- 障碍物报警拍照间隔
-
-
-
-
- 频繁变道报警判断时间段
-
-
-
-
- 频繁变道报警判断次数
-
-
-
-
- 频繁变道报警分级速度阈值
-
-
-
-
- 频繁变道报警前后视频录制时间
-
-
-
-
- 频繁变道报警拍照张数
-
-
-
-
- 频繁变道报警拍照间隔
-
-
-
-
- 车道偏离报警分级速度阈值
-
-
-
-
- 车道偏离报警前后视频录制时间
-
-
-
-
- 车道偏离报警拍照张数
-
-
-
-
- 车道偏离报警拍照间隔
-
-
-
-
- 前向碰撞报警时间阈值
-
-
-
-
- 前向碰撞报警分级速度阈值
-
-
-
-
- 前向碰撞报警前后视频录制时间
-
-
-
-
- 前向碰撞报警拍照张数
-
-
-
-
- 前向碰撞报警拍照间隔
-
-
-
-
- 行人碰撞报警时间阈值
-
-
-
-
- 行人碰撞报警使能速度阈值
-
-
-
-
- 行人碰撞报警前后视频录制时间
-
-
-
-
- 行人碰撞报警拍照张数
-
-
-
-
- 行人碰撞报警拍照间隔
-
-
-
-
- 车距监控报警距离阈值
-
-
-
-
- 车距监控报警分级速度阈值
-
-
-
-
- 车距过近报警前后视频录制时间
-
-
-
-
- 车距过近报警拍照张数
-
-
-
-
- 车距过近报警拍照间隔
-
-
-
-
- 道路标志识别拍照张数
-
-
-
-
- 道路标志识别拍照间隔
-
-
-
-
- 保留字段
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 驾驶员状态监测系统参数
-
-
-
-
- 驾驶员状态监测系统参数
-
-
-
-
- 驾驶员状态监测系统参数长度
-
-
-
-
- 报警判断速度阈值
-
-
-
-
- 报警提示音量
-
-
-
-
- 主动拍照策略
-
-
-
-
- 主动定时拍照时间间隔
-
-
-
-
- 主动定距拍照距离间隔
-
-
-
-
- 单次主动拍照张数
-
-
-
-
- 单次主动拍照时间间隔
-
-
-
-
- 拍照分辨率
-
-
-
-
- 视频录制分辨率
-
-
-
-
- 报警使能
-
-
-
-
- 事件使能
-
-
-
-
- 吸烟报警判断时间间隔
-
-
-
-
- 接打电话报警判断时间间隔
-
-
-
-
- 预留字段
-
-
-
-
- 疲劳驾驶报警分级速度阈值
-
-
-
-
- 疲劳驾驶报警前后视频录制时间
-
-
-
-
- 疲劳驾驶报警拍照张数
-
-
-
-
- 疲劳驾驶报警拍照间隔时间
-
-
-
-
- 接打电话报警分级速度阈值
-
-
-
-
- 接打电话报警前后视频录制时间
-
-
-
-
- 接打电话报警拍驾驶员面部特征照片张数
-
-
-
-
- 接打电话报警拍驾驶员面部特征照片间隔时间
-
-
-
-
- 抽烟报警分级车速阈值
-
-
-
-
- 抽烟报警前后视频录制时间
-
-
-
-
- 抽烟报警拍驾驶员面部特征照片张数
-
-
-
-
- 抽烟报警拍驾驶员面部特征照片间隔时间
-
-
-
-
- 分神驾驶报警分级车速阈值
-
-
-
-
- 分神驾驶报警拍照张数
-
-
-
-
- 分神驾驶报警拍照间隔时间
-
-
-
-
- 驾驶行为异常视频录制时间
-
-
-
-
- 驾驶行为异常抓拍照片张数
-
-
-
-
- 驾驶行为异常拍照间隔
-
-
-
-
- 驾驶员身份识别触发
-
-
-
-
- 保留字段
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 胎压监测系统参数
-
-
-
-
- 胎压监测系统参数Id
-
-
-
-
- 胎压监测系统参数长度
-
-
-
-
- 轮胎规格型号 12位
-
-
-
-
- 胎压单位
-
-
-
-
- 正常胎压值
-
-
-
-
- 胎压不平衡门限
-
-
-
-
- 慢漏气门限
-
-
-
-
- 低压阈值
-
-
-
-
- 高压阈值
-
-
-
-
- 高温阈值
-
-
-
-
- 电压阈值
-
-
-
-
- 定时上报时间间隔
-
-
-
-
- 保留项
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 盲区监测系统参数
-
-
-
-
- 盲区监测系统参数Id
-
-
-
-
- 盲区监测系统参数长度
-
-
-
-
- 后方接近报警时间阈值
-
-
-
-
- 侧后方接近报警时间阈值
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 查询基本信息
-
-
-
-
- 查询基本信息类型
-
-
-
-
- 外设ID列表总数
-
-
-
-
- 外设ID
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 查询基本信息
-
-
-
-
- 查询基本信息透传类型
-
-
-
-
- 外设ID列表总数
-
-
-
-
- 外设ID
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 报警附件上传指令
-
-
-
-
- Description
-
-
-
-
- 服务IP地址长度
-
-
-
-
- 服务IP地址
-
-
-
-
- TCP端口
-
-
-
-
- UDP端口
-
-
-
-
- 报警标识号
-
-
-
-
- 平台给报警分配的唯一编号
- 32
-
-
-
-
- 预留
-
-
-
-
- 报警附件上传指令Id
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 文件上传完成消息应答
-
-
-
-
- 文件上传完成消息应答
-
-
-
-
- 文件名称长度
-
-
-
-
- 文件名称
-
-
-
-
- 文件类型
-
-
-
-
- 上传结果
-
-
-
-
- 补传数据包数量
- 需要补传的数据包数量,无补传时该值为0
-
-
-
-
- 补传数据包列表
-
-
-
-
- 文件上传完成消息应答Id
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 报警标识号
-
-
-
-
- 终端ID
-
-
-
-
- YY-MM-DD-hh-mm-ss
- BCD[6]
-
-
-
-
- 序号
-
-
-
-
- 附件数量
-
-
-
-
- 预留
-
-
-
-
- 胎压监测系统报警/事件信息
-
-
-
-
- 胎压报警位置
-
-
-
-
- 报警/事件类型
-
-
-
-
- 胎压
-
-
-
-
- 胎温
-
-
-
-
- 电池电量
-
-
-
-
- 附件信息
-
-
-
-
- 文件名称长度
-
-
-
-
- 文件名称
- 形如:文件类型_通道号_报警类型_序号_报警编号.后缀名
-
-
-
-
- 文件大小
-
-
-
-
- 补传数据包信息
-
-
-
-
- 数据偏移量
-
-
-
-
- 数据长度
-
-
-
-
-
-
-
-
-
- 外设ID
-
-
-
-
-
- 消息长度
-
-
-
-
- 工作状态
-
-
-
-
-
- 报警状态
-
-
-
-
-
-
-
-
-
- 外设ID
-
-
-
-
-
- 消息长度
-
-
-
-
- 公司名称长度
-
-
-
-
- 公司名称
-
-
-
-
- 产品型号长度
-
-
-
-
- 产品型号
-
-
-
-
- 硬件版本号长度
-
-
-
-
- 硬件版本号
- ASCII
-
-
-
-
- 软件版本号长度
-
-
-
-
- 软件版本号
- ASCII
-
-
-
-
- 设备ID长度
-
-
-
-
- 设备ID
-
-
-
-
- 客户代码长度
-
-
-
-
- 客户代码
-
-
-
-
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/JT808_JTActiveSafety_Constants.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/JT808_JTActiveSafety_Constants.cs
deleted file mode 100644
index 9b8a148..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/JT808_JTActiveSafety_Constants.cs
+++ /dev/null
@@ -1,53 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety
-{
- ///
- /// 主动安全常量
- ///
- public static class JT808_JTActiveSafety_Constants
- {
- ///
- /// 附加信息ID 高级驾驶辅助系统报警信息
- ///
- public const byte JT808_0X0200_0x64 = 0x64;
- ///
- /// 附加信息ID 驾驶员状态监测系统报警信息
- ///
- public const byte JT808_0X0200_0x65 = 0x65;
- ///
- /// 附加信息ID 胎压监测系统报警信息
- ///
- public const byte JT808_0X0200_0x66 = 0x66;
- ///
- /// 附加信息ID 盲区监测系统报警信息
- ///
- public const byte JT808_0X0200_0x67 = 0x67;
- ///
- /// 高级驾驶辅助系统参数设置
- ///
- public const uint JT808_0X8103_0xF364 = 0xF364;
- ///
- /// 驾驶员状态监测系统参数设置
- ///
- public const uint JT808_0X8103_0xF365 = 0xF365;
- ///
- /// 胎压监测系统参数设置
- ///
- public const uint JT808_0X8103_0xF366 = 0xF366;
- ///
- /// 盲区监测系统参数设置
- ///
- public const uint JT808_0X8103_0xF367 = 0xF367;
- ///
- /// 状态查询
- ///
- public const byte JT808_0X0900_0xF7 = 0xF7;
- ///
- /// 信息查询
- ///
- public const byte JT808_0X0900_0xF8 = 0xF8;
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/JTActiveSafetyDependencyInjectionExtensions.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/JTActiveSafetyDependencyInjectionExtensions.cs
deleted file mode 100644
index f066aa4..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/JTActiveSafetyDependencyInjectionExtensions.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.Enums;
-using JT808.Protocol.Extensions.JTActiveSafety.MessageBody;
-using JT808.Protocol.Interfaces;
-using Microsoft.Extensions.DependencyInjection;
-using System;
-using System.Collections.Generic;
-using System.Reflection;
-using System.Text;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety
-{
- ///
- /// 主动安全扩展
- ///
- public static class JTActiveSafetyDependencyInjectionExtensions
- {
- ///
- /// 添加主动安全
- ///
- ///
- ///
- public static IJT808Builder AddJTActiveSafetyConfigure(this IJT808Builder jT808Builder)
- {
- jT808Builder.Config.Register(Assembly.GetExecutingAssembly());
- return jT808Builder;
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x64.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x64.cs
deleted file mode 100644
index eb195fe..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x64.cs
+++ /dev/null
@@ -1,344 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.Metadata;
-using JT808.Protocol.Formatters;
-using JT808.Protocol.Interfaces;
-using JT808.Protocol.MessageBody;
-using JT808.Protocol.MessagePack;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Text.Json;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
-{
- ///
- /// 高级驾驶辅助系统报警信息
- ///
- public class JT808_0x0200_0x64 : JT808_0x0200_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
- {
- ///
- /// 高级驾驶辅助系统报警信息Id
- ///
- public override byte AttachInfoId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0200_0x64;
- ///
- /// 高级驾驶辅助系统报警信息附加长度
- ///
- public override byte AttachInfoLength { get; set; } = 32;
- ///
- /// 报警ID
- ///
- public uint AlarmId { get; set; }
- ///
- /// 标志状态
- ///
- public byte FlagState { get; set; }
- ///
- /// 报警/事件类型
- ///
- public byte AlarmOrEventType{ get; set; }
- ///
- /// 报警/事件类型
- ///
- public byte AlarmLevel { get; set; }
- ///
- /// 前车车速
- ///
- public byte VehicleSpeed { get; set; }
- ///
- /// 前车/行人距离
- ///
- public byte CarOrPedestrianDistanceAhead { get; set; }
- ///
- /// 偏离类型
- ///
- public byte DeviateType { get; set; }
- ///
- /// 道路标志识别类型
- ///
- public byte RoadSignIdentificationType { get; set; }
- ///
- /// 道路标志识别类型
- ///
- public byte RoadSignIdentificationData { get; set; }
- ///
- /// 车速
- ///
- public byte Speed { get; set; }
- ///
- /// 高程
- ///
- public ushort Altitude { get; set; }
- ///
- /// 纬度
- ///
- public int Latitude { get; set; }
- ///
- /// 经度
- ///
- public int Longitude { get; set; }
- ///
- /// 日期时间
- /// YYMMDDhhmmss
- /// BCD[6]
- ///
- public DateTime AlarmTime { get; set; }
- ///
- /// 车辆状态
- ///
- public ushort VehicleState { get; set; }
- ///
- /// 报警标识号
- ///
- public AlarmIdentificationProperty AlarmIdentification { get; set; }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
- {
- JT808_0x0200_0x64 value = new JT808_0x0200_0x64();
- value.AttachInfoId = reader.ReadByte();
- writer.WriteNumber($"[{value.AttachInfoId.ReadNumber()}]附加信息Id", value.AttachInfoId);
- value.AttachInfoLength = reader.ReadByte();
- writer.WriteNumber($"[{value.AttachInfoLength.ReadNumber()}]附加信息长度", value.AttachInfoLength);
- value.AlarmId = reader.ReadUInt32();
- writer.WriteNumber($"[{value.AlarmId.ReadNumber()}]报警ID", value.AlarmId);
- value.FlagState = reader.ReadByte();
- string flagStateString = "未知";
- switch (value.FlagState)
- {
- case 0:
- flagStateString = "不可用";
- break;
- case 1:
- flagStateString = "开始标志";
- break;
- case 2:
- flagStateString = "结束标志";
- break;
- }
- writer.WriteNumber($"[{value.FlagState.ReadNumber()}]标志状态-{flagStateString}", value.FlagState);
- value.AlarmOrEventType = reader.ReadByte();
- string alarmOrEventTypeString = "";
- string vehicleSpeedString = "无效";
- string carOrPedestrianDistanceAheadString = "无效";
- string deviateTypeString = "无效";
- string roadSignIdentificationTypeString = "无效";
- switch (value.AlarmOrEventType)
- {
- case 0x01:
- alarmOrEventTypeString = "前向碰撞报警";
- vehicleSpeedString = "有效";
- carOrPedestrianDistanceAheadString = "有效";
- break;
- case 0x02:
- alarmOrEventTypeString = "车道偏离报警";
- vehicleSpeedString = "有效";
- carOrPedestrianDistanceAheadString = "有效";
- deviateTypeString = "有效";
- break;
- case 0x03:
- alarmOrEventTypeString = "车距过近报警";
- break;
- case 0x04:
- alarmOrEventTypeString = "行人碰撞报警";
- vehicleSpeedString = "有效";
- break;
- case 0x05:
- alarmOrEventTypeString = "频繁变道报警";
- break;
- case 0x06:
- alarmOrEventTypeString = "道路标识超限报警";
- roadSignIdentificationTypeString = "有效";
- break;
- case 0x07:
- alarmOrEventTypeString = "障碍物报警";
- break;
- case 0x08:
- case 0x09:
- case 0x0A:
- case 0x0B:
- case 0x0C:
- case 0x0D:
- case 0x0E:
- case 0x0F:
- alarmOrEventTypeString = "用户自定义";
- break;
- case 0x10:
- roadSignIdentificationTypeString = "有效";
- alarmOrEventTypeString = "道路标志识别事件";
- break;
- case 0x11:
- alarmOrEventTypeString = "主动抓拍事件";
- break;
- case 0x12:
- case 0x13:
- case 0x14:
- case 0x15:
- case 0x16:
- case 0x17:
- case 0x18:
- case 0x19:
- case 0x1A:
- case 0x1B:
- case 0x1C:
- case 0x1D:
- case 0x1E:
- case 0x1F:
- alarmOrEventTypeString = "用户自定义";
- break;
- }
- writer.WriteNumber($"[{value.AlarmOrEventType.ReadNumber()}]报警_事件类型-{alarmOrEventTypeString}", value.AlarmOrEventType);
- value.AlarmLevel = reader.ReadByte();
- string alarmLevelString = "未知";
- switch (value.AlarmLevel)
- {
- case 0x01:
- alarmLevelString = "一级报警";
- break;
- case 0x02:
- alarmLevelString = "二级报警";
- break;
- }
- writer.WriteNumber($"[{value.AlarmLevel.ReadNumber()}]报警级别-{alarmLevelString}", value.AlarmLevel);
- value.VehicleSpeed = reader.ReadByte();
- writer.WriteNumber($"[{value.VehicleSpeed.ReadNumber()}]前车车速-{vehicleSpeedString}", value.VehicleSpeed);
- value.CarOrPedestrianDistanceAhead = reader.ReadByte();
- writer.WriteNumber($"[{value.CarOrPedestrianDistanceAhead.ReadNumber()}]前车_行人距离-{carOrPedestrianDistanceAheadString}", value.CarOrPedestrianDistanceAhead);
- value.DeviateType = reader.ReadByte();
- string deviateType = value.DeviateType == 0x01 ? "左侧偏离" : "右侧偏离";
- writer.WriteNumber($"[{value.DeviateType.ReadNumber()}]偏离类型-{deviateType}-{deviateTypeString}", value.DeviateType);
- value.RoadSignIdentificationType = reader.ReadByte();
- string roadSignIdentificationType = "未知标志";
- if (value.RoadSignIdentificationType == 0x01)
- {
- roadSignIdentificationType = "限速标志";
- }
- else if (value.RoadSignIdentificationType == 0x02)
- {
- roadSignIdentificationType = "限高标志";
- }
- else if (value.RoadSignIdentificationType == 0x03)
- {
- roadSignIdentificationType = "限重标志";
- }
- writer.WriteNumber($"[{value.RoadSignIdentificationType.ReadNumber()}]道路标志识别类型-{roadSignIdentificationType}-{roadSignIdentificationTypeString}", value.RoadSignIdentificationType);
- value.RoadSignIdentificationData = reader.ReadByte();
- writer.WriteNumber($"[{value.RoadSignIdentificationData.ReadNumber()}]道路标志识别数据", value.RoadSignIdentificationData);
- value.Speed = reader.ReadByte();
- writer.WriteNumber($"[{value.Speed.ReadNumber()}]车速", value.Speed);
- value.Altitude = reader.ReadUInt16();
- writer.WriteNumber($"[{value.Altitude.ReadNumber()}]高程", value.Altitude);
- value.Latitude = (int)reader.ReadUInt32();
- writer.WriteNumber($"[{value.Latitude.ReadNumber()}]纬度", value.Latitude);
- value.Longitude = (int)reader.ReadUInt32();
- writer.WriteNumber($"[{value.Longitude.ReadNumber()}]经度", value.Longitude);
- value.AlarmTime = reader.ReadDateTime6();
- writer.WriteString($"[{value.AlarmTime.ToString("yyMMddHHmmss")}]日期时间", value.AlarmTime.ToString("yyyy-MM-dd HH:mm:ss"));
- value.VehicleState = reader.ReadUInt16();
- writer.WriteNumber($"[{value.VehicleState.ReadNumber()}]车辆状态", value.VehicleState);
- var vehicleStateBits = Convert.ToString(value.VehicleState, 2).PadLeft(16, '0');
- writer.WriteStartObject($"车辆状态对象[{vehicleStateBits}]");
- writer.WriteString($"[{vehicleStateBits[15]}]Bit0ACC状态", vehicleStateBits[15] == '0' ? "关闭" : "打开");
- writer.WriteString($"[{vehicleStateBits[14]}]Bit1左转向状态", vehicleStateBits[14] == '0' ? "关闭" : "打开");
- writer.WriteString($"[{vehicleStateBits[13]}]Bit2右转向状态", vehicleStateBits[13] == '0' ? "关闭" : "打开");
- writer.WriteString($"[{vehicleStateBits[12]}]Bit3雨刮器状态", vehicleStateBits[12] == '0' ? "关闭" : "打开");
- writer.WriteString($"[{vehicleStateBits[11]}]Bit4制动状态", vehicleStateBits[11] == '0' ? "未制动" : "制动");
- writer.WriteString($"[{vehicleStateBits[10]}]Bit5插卡状态", vehicleStateBits[10] == '0' ? "未插卡" : "已插卡");
- writer.WriteString($"[{vehicleStateBits[9]}]Bit6自定义", vehicleStateBits[9].ToString());
- writer.WriteString($"[{vehicleStateBits[8]}]Bit7自定义", vehicleStateBits[8].ToString());
- writer.WriteString($"[{vehicleStateBits[7]}]Bit8自定义", vehicleStateBits[7].ToString());
- writer.WriteString($"[{vehicleStateBits[6]}]Bit9自定义", vehicleStateBits[6].ToString());
- writer.WriteString($"[{vehicleStateBits[5]}]Bit10定位状态", vehicleStateBits[5] == '0' ? "未定位" : "已定位");
- writer.WriteString($"[{vehicleStateBits[4]}]Bit11自定义", vehicleStateBits[4].ToString());
- writer.WriteString($"[{vehicleStateBits[3]}]Bit12自定义", vehicleStateBits[3].ToString());
- writer.WriteString($"[{vehicleStateBits[2]}]Bit13自定义", vehicleStateBits[2].ToString());
- writer.WriteString($"[{vehicleStateBits[1]}]Bit14自定义", vehicleStateBits[1].ToString());
- writer.WriteString($"[{vehicleStateBits[0]}]Bit15自定义", vehicleStateBits[0].ToString());
- writer.WriteEndObject();
- value.AlarmIdentification = new AlarmIdentificationProperty();
- string terminalIDHex = reader.ReadVirtualArray(7).ToArray().ToHexString();
- value.AlarmIdentification.TerminalID = reader.ReadString(7);
- value.AlarmIdentification.Time = reader.ReadDateTime6();
- value.AlarmIdentification.SN = reader.ReadByte();
- value.AlarmIdentification.AttachCount = reader.ReadByte();
- value.AlarmIdentification.Retain = reader.ReadByte();
- writer.WriteString($"[{terminalIDHex}]终端ID", value.AlarmIdentification.TerminalID);
- writer.WriteString($"[{value.AlarmIdentification.Time.ToString("yyMMddHHmmss")}]日期时间", value.AlarmIdentification.Time.ToString("yyyy-MM-dd HH:mm:ss"));
- writer.WriteNumber($"[{value.AlarmIdentification.SN.ReadNumber()}]序号", value.AlarmIdentification.SN);
- writer.WriteNumber($"[{value.AlarmIdentification.AttachCount.ReadNumber()}]附件数量", value.AlarmIdentification.AttachCount);
- writer.WriteNumber($"[{value.AlarmIdentification.Retain.ReadNumber()}]预留", value.AlarmIdentification.Retain);
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public JT808_0x0200_0x64 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
- {
- JT808_0x0200_0x64 value = new JT808_0x0200_0x64();
- value.AttachInfoId = reader.ReadByte();
- value.AttachInfoLength = reader.ReadByte();
- value.AlarmId = reader.ReadUInt32();
- value.FlagState = reader.ReadByte();
- value.AlarmOrEventType = reader.ReadByte();
- value.AlarmLevel = reader.ReadByte();
- value.VehicleSpeed = reader.ReadByte();
- value.CarOrPedestrianDistanceAhead = reader.ReadByte();
- value.DeviateType = reader.ReadByte();
- value.RoadSignIdentificationType = reader.ReadByte();
- value.RoadSignIdentificationData = reader.ReadByte();
- value.Speed = reader.ReadByte();
- value.Altitude = reader.ReadUInt16();
- value.Latitude = (int)reader.ReadUInt32();
- value.Longitude = (int)reader.ReadUInt32();
- value.AlarmTime = reader.ReadDateTime6();
- value.VehicleState = reader.ReadUInt16();
- value.AlarmIdentification = new AlarmIdentificationProperty
- {
- TerminalID = reader.ReadString(7),
- Time = reader.ReadDateTime6(),
- SN = reader.ReadByte(),
- AttachCount = reader.ReadByte(),
- Retain = reader.ReadByte()
- };
- return value;
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0200_0x64 value, IJT808Config config)
- {
- writer.WriteByte(value.AttachInfoId);
- writer.WriteByte(value.AttachInfoLength);
- writer.WriteUInt32(value.AlarmId);
- writer.WriteByte(value.FlagState);
- writer.WriteByte(value.AlarmOrEventType);
- writer.WriteByte(value.AlarmLevel);
- writer.WriteByte(value.VehicleSpeed);
- writer.WriteByte(value.CarOrPedestrianDistanceAhead);
- writer.WriteByte(value.DeviateType);
- writer.WriteByte(value.RoadSignIdentificationType);
- writer.WriteByte(value.RoadSignIdentificationData);
- writer.WriteByte(value.Speed);
- writer.WriteUInt16(value.Altitude);
- writer.WriteUInt32((uint)value.Latitude);
- writer.WriteUInt32((uint)value.Longitude);
- writer.WriteDateTime6(value.AlarmTime);
- writer.WriteUInt16(value.VehicleState);
- if (value.AlarmIdentification == null) {
- throw new NullReferenceException($"{nameof(AlarmIdentificationProperty)}不为空");
- }
- writer.WriteString(value.AlarmIdentification.TerminalID);
- writer.WriteDateTime6(value.AlarmIdentification.Time);
- writer.WriteByte(value.AlarmIdentification.SN);
- writer.WriteByte(value.AlarmIdentification.AttachCount);
- writer.WriteByte(value.AlarmIdentification.Retain);
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x65.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x65.cs
deleted file mode 100644
index 95ec9da..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x65.cs
+++ /dev/null
@@ -1,295 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.Metadata;
-using JT808.Protocol.Formatters;
-using JT808.Protocol.Interfaces;
-using JT808.Protocol.MessageBody;
-using JT808.Protocol.MessagePack;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Text.Json;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
-{
- ///
- /// 驾驶员状态监测系统报警信息
- ///
- public class JT808_0x0200_0x65 : JT808_0x0200_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
- {
- ///
- /// 驾驶员状态监测系统报警信息Id
- ///
- public override byte AttachInfoId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0200_0x65;
- ///
- /// 驾驶员状态监测系统报警信息长度
- ///
- public override byte AttachInfoLength { get; set; } = 47;
- ///
- /// 报警ID
- ///
- public uint AlarmId { get; set; }
- ///
- /// 标志状态
- ///
- public byte FlagState { get; set; }
- ///
- /// 报警/事件类型
- ///
- public byte AlarmOrEventType{ get; set; }
- ///
- /// 报警级别
- ///
- public byte AlarmLevel { get; set; }
- ///
- /// 疲劳程度
- ///
- public byte Fatigue { get; set; }
- ///
- /// 预留
- ///
- public byte[] Retain { get; set; } = new byte[4];
- ///
- /// 车速
- ///
- public byte Speed { get; set; }
- ///
- /// 高程
- ///
- public ushort Altitude { get; set; }
- ///
- /// 纬度
- ///
- public int Latitude { get; set; }
- ///
- /// 经度
- ///
- public int Longitude { get; set; }
- ///
- /// 日期时间
- /// YYMMDDhhmmss
- /// BCD[6]
- ///
- public DateTime AlarmTime { get; set; }
- ///
- /// 车辆状态
- ///
- public ushort VehicleState { get; set; }
- ///
- /// 报警标识号
- ///
- public AlarmIdentificationProperty AlarmIdentification { get; set; }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
- {
- JT808_0x0200_0x65 value = new JT808_0x0200_0x65();
- value.AttachInfoId = reader.ReadByte();
- writer.WriteNumber($"[{value.AttachInfoId.ReadNumber()}]附加信息Id", value.AttachInfoId);
- value.AttachInfoLength = reader.ReadByte();
- writer.WriteNumber($"[{value.AttachInfoLength.ReadNumber()}]附加信息长度", value.AttachInfoLength);
- value.AlarmId = reader.ReadUInt32();
- writer.WriteNumber($"[{value.AlarmId.ReadNumber()}]报警ID", value.AlarmId);
- value.FlagState = reader.ReadByte();
- string flagStateString = "未知";
- switch (value.FlagState)
- {
- case 0:
- flagStateString = "不可用";
- break;
- case 1:
- flagStateString = "开始标志";
- break;
- case 2:
- flagStateString = "结束标志";
- break;
- }
- writer.WriteNumber($"[{value.FlagState.ReadNumber()}]标志状态-{flagStateString}", value.FlagState);
- value.AlarmOrEventType = reader.ReadByte();
- string alarmOrEventTypeString = "";
- switch (value.AlarmOrEventType)
- {
- case 0x01:
- alarmOrEventTypeString = "疲劳驾驶报警";
- break;
- case 0x02:
- alarmOrEventTypeString = "接打电话报警";
- break;
- case 0x03:
- alarmOrEventTypeString = "抽烟报警";
- break;
- case 0x04:
- alarmOrEventTypeString = "分神驾驶报警";
- break;
- case 0x05:
- alarmOrEventTypeString = "驾驶员异常报警";
- break;
- case 0x06:
- case 0x07:
- case 0x08:
- case 0x09:
- case 0x0A:
- case 0x0B:
- case 0x0C:
- case 0x0D:
- case 0x0E:
- case 0x0F:
- alarmOrEventTypeString = "用户自定义";
- break;
- case 0x10:
- alarmOrEventTypeString = "自动抓拍事件";
- break;
- case 0x11:
- alarmOrEventTypeString = "驾驶员变更事件";
- break;
- case 0x12:
- case 0x13:
- case 0x14:
- case 0x15:
- case 0x16:
- case 0x17:
- case 0x18:
- case 0x19:
- case 0x1A:
- case 0x1B:
- case 0x1C:
- case 0x1D:
- case 0x1E:
- case 0x1F:
- alarmOrEventTypeString = "用户自定义";
- break;
- }
- writer.WriteNumber($"[{value.AlarmOrEventType.ReadNumber()}]报警_事件类型-{alarmOrEventTypeString}", value.AlarmOrEventType);
- value.AlarmLevel = reader.ReadByte();
- string alarmLevelString = "未知";
- switch (value.AlarmLevel)
- {
- case 0x01:
- alarmLevelString = "一级报警";
- break;
- case 0x02:
- alarmLevelString = "二级报警";
- break;
- }
- writer.WriteNumber($"[{value.AlarmLevel.ReadNumber()}]报警级别-{alarmLevelString}", value.AlarmLevel);
- value.Fatigue = reader.ReadByte();
- writer.WriteNumber($"[{value.Fatigue.ReadNumber()}]疲劳程度", value.Fatigue);
- value.Retain = reader.ReadArray(4).ToArray();
- writer.WriteString("预留", value.Retain.ToHexString());
- value.Speed = reader.ReadByte();
- writer.WriteNumber($"[{value.Speed.ReadNumber()}]车速", value.Speed);
- value.Altitude = reader.ReadUInt16();
- writer.WriteNumber($"[{value.Altitude.ReadNumber()}]高程", value.Altitude);
- value.Latitude = (int)reader.ReadUInt32();
- writer.WriteNumber($"[{value.Latitude.ReadNumber()}]纬度", value.Latitude);
- value.Longitude = (int)reader.ReadUInt32();
- writer.WriteNumber($"[{value.Longitude.ReadNumber()}]经度", value.Longitude);
- value.AlarmTime = reader.ReadDateTime6();
- writer.WriteString($"[{value.AlarmTime.ToString("yyMMddHHmmss")}]日期时间", value.AlarmTime.ToString("yyyy-MM-dd HH:mm:ss"));
- value.VehicleState = reader.ReadUInt16();
- writer.WriteNumber($"[{value.VehicleState.ReadNumber()}]车辆状态", value.VehicleState);
- var vehicleStateBits = Convert.ToString(value.VehicleState, 2).PadLeft(16, '0');
- writer.WriteStartObject($"车辆状态对象[{vehicleStateBits}]");
- writer.WriteString($"[{vehicleStateBits[15]}]Bit0ACC状态", vehicleStateBits[15] == '0' ? "关闭" : "打开");
- writer.WriteString($"[{vehicleStateBits[14]}]Bit1左转向状态", vehicleStateBits[14] == '0' ? "关闭" : "打开");
- writer.WriteString($"[{vehicleStateBits[13]}]Bit2右转向状态", vehicleStateBits[13] == '0' ? "关闭" : "打开");
- writer.WriteString($"[{vehicleStateBits[12]}]Bit3雨刮器状态", vehicleStateBits[12] == '0' ? "关闭" : "打开");
- writer.WriteString($"[{vehicleStateBits[11]}]Bit4制动状态", vehicleStateBits[11] == '0' ? "未制动" : "制动");
- writer.WriteString($"[{vehicleStateBits[10]}]Bit5插卡状态", vehicleStateBits[10] == '0' ? "未插卡" : "已插卡");
- writer.WriteString($"[{vehicleStateBits[9]}]Bit6自定义", vehicleStateBits[9].ToString());
- writer.WriteString($"[{vehicleStateBits[8]}]Bit7自定义", vehicleStateBits[8].ToString());
- writer.WriteString($"[{vehicleStateBits[7]}]Bit8自定义", vehicleStateBits[7].ToString());
- writer.WriteString($"[{vehicleStateBits[6]}]Bit9自定义", vehicleStateBits[6].ToString());
- writer.WriteString($"[{vehicleStateBits[5]}]Bit10定位状态", vehicleStateBits[5] == '0' ? "未定位" : "已定位");
- writer.WriteString($"[{vehicleStateBits[4]}]Bit11自定义", vehicleStateBits[4].ToString());
- writer.WriteString($"[{vehicleStateBits[3]}]Bit12自定义", vehicleStateBits[3].ToString());
- writer.WriteString($"[{vehicleStateBits[2]}]Bit13自定义", vehicleStateBits[2].ToString());
- writer.WriteString($"[{vehicleStateBits[1]}]Bit14自定义", vehicleStateBits[1].ToString());
- writer.WriteString($"[{vehicleStateBits[0]}]Bit15自定义", vehicleStateBits[0].ToString());
- writer.WriteEndObject();
- value.AlarmIdentification = new AlarmIdentificationProperty();
- string terminalIDHex = reader.ReadVirtualArray(7).ToArray().ToHexString();
- value.AlarmIdentification.TerminalID = reader.ReadString(7);
- value.AlarmIdentification.Time = reader.ReadDateTime6();
- value.AlarmIdentification.SN = reader.ReadByte();
- value.AlarmIdentification.AttachCount = reader.ReadByte();
- value.AlarmIdentification.Retain = reader.ReadByte();
- writer.WriteString($"[{terminalIDHex}]终端ID", value.AlarmIdentification.TerminalID);
- writer.WriteString($"[{value.AlarmIdentification.Time.ToString("yyMMddHHmmss")}]日期时间", value.AlarmIdentification.Time.ToString("yyyy-MM-dd HH:mm:ss"));
- writer.WriteNumber($"[{value.AlarmIdentification.SN.ReadNumber()}]序号", value.AlarmIdentification.SN);
- writer.WriteNumber($"[{value.AlarmIdentification.AttachCount.ReadNumber()}]附件数量", value.AlarmIdentification.AttachCount);
- writer.WriteNumber($"[{value.AlarmIdentification.Retain.ReadNumber()}]预留", value.AlarmIdentification.Retain);
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public JT808_0x0200_0x65 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
- {
- JT808_0x0200_0x65 value = new JT808_0x0200_0x65();
- value.AttachInfoId = reader.ReadByte();
- value.AttachInfoLength = reader.ReadByte();
- value.AlarmId = reader.ReadUInt32();
- value.FlagState = reader.ReadByte();
- value.AlarmOrEventType = reader.ReadByte();
- value.AlarmLevel = reader.ReadByte();
- value.Fatigue = reader.ReadByte();
- value.Retain = reader.ReadArray(4).ToArray();
- value.Speed = reader.ReadByte();
- value.Altitude = reader.ReadUInt16();
- value.Latitude = (int)reader.ReadUInt32();
- value.Longitude = (int)reader.ReadUInt32();
- value.AlarmTime = reader.ReadDateTime6();
- value.VehicleState = reader.ReadUInt16();
- value.AlarmIdentification = new AlarmIdentificationProperty
- {
- TerminalID = reader.ReadString(7),
- Time = reader.ReadDateTime6(),
- SN = reader.ReadByte(),
- AttachCount = reader.ReadByte(),
- Retain = reader.ReadByte()
- };
- return value;
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0200_0x65 value, IJT808Config config)
- {
- writer.WriteByte(value.AttachInfoId);
- writer.WriteByte(value.AttachInfoLength);
- writer.WriteUInt32(value.AlarmId);
- writer.WriteByte(value.FlagState);
- writer.WriteByte(value.AlarmOrEventType);
- writer.WriteByte(value.AlarmLevel);
- writer.WriteByte(value.Fatigue);
- if (value.Retain.Length != 4)
- {
- throw new ArgumentOutOfRangeException($"{nameof(JT808_0x0200_0x65.Retain)} length==4");
- }
- writer.WriteArray(value.Retain);
- writer.WriteByte(value.Speed);
- writer.WriteUInt16(value.Altitude);
- writer.WriteUInt32((uint)value.Latitude);
- writer.WriteUInt32((uint)value.Longitude);
- writer.WriteDateTime6(value.AlarmTime);
- writer.WriteUInt16(value.VehicleState);
- if (value.AlarmIdentification == null)
- {
- throw new NullReferenceException($"{nameof(AlarmIdentificationProperty)}不为空");
- }
- writer.WriteString(value.AlarmIdentification.TerminalID);
- writer.WriteDateTime6(value.AlarmIdentification.Time);
- writer.WriteByte(value.AlarmIdentification.SN);
- writer.WriteByte(value.AlarmIdentification.AttachCount);
- writer.WriteByte(value.AlarmIdentification.Retain);
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x66.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x66.cs
deleted file mode 100644
index d42f267..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x66.cs
+++ /dev/null
@@ -1,312 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.Metadata;
-using JT808.Protocol.Formatters;
-using JT808.Protocol.Interfaces;
-using JT808.Protocol.MessageBody;
-using JT808.Protocol.MessagePack;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Text.Json;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
-{
- ///
- /// 胎压监测系统报警信息
- ///
- public class JT808_0x0200_0x66 : JT808_0x0200_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
- {
- ///
- /// 胎压监测系统报警信息Id
- ///
- public override byte AttachInfoId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0200_0x66;
- ///
- /// 胎压监测系统报警信息长度
- ///
- public override byte AttachInfoLength { get; set; }
- ///
- /// 报警ID
- ///
- public uint AlarmId { get; set; }
- ///
- /// 标志状态
- ///
- public byte FlagState { get; set; }
- ///
- /// 车速
- ///
- public byte Speed { get; set; }
- ///
- /// 高程
- ///
- public ushort Altitude { get; set; }
- ///
- /// 纬度
- ///
- public int Latitude { get; set; }
- ///
- /// 经度
- ///
- public int Longitude { get; set; }
- ///
- /// 日期时间
- /// YYMMDDhhmmss
- /// BCD[6]
- ///
- public DateTime AlarmTime { get; set; }
- ///
- /// 车辆状态
- ///
- public ushort VehicleState { get; set; }
- ///
- /// 报警标识号
- ///
- public AlarmIdentificationProperty AlarmIdentification { get; set; }
- ///
- /// 报警/事件列表总数
- ///
- public byte AlarmOrEventCount { get; set; }
- ///
- /// 报警/事件信息列表
- ///
- public List AlarmOrEvents { get; set; }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
- {
- JT808_0x0200_0x66 value = new JT808_0x0200_0x66();
- value.AttachInfoId = reader.ReadByte();
- writer.WriteNumber($"[{value.AttachInfoId.ReadNumber()}]附加信息Id", value.AttachInfoId);
- value.AttachInfoLength = reader.ReadByte();
- writer.WriteNumber($"[{value.AttachInfoLength.ReadNumber()}]附加信息长度", value.AttachInfoLength);
- value.AlarmId = reader.ReadUInt32();
- writer.WriteNumber($"[{value.AlarmId.ReadNumber()}]报警ID", value.AlarmId);
- value.FlagState = reader.ReadByte();
- string flagStateString = "未知";
- switch (value.FlagState)
- {
- case 0:
- flagStateString = "不可用";
- break;
- case 1:
- flagStateString = "开始标志";
- break;
- case 2:
- flagStateString = "结束标志";
- break;
- }
- writer.WriteNumber($"[{value.FlagState.ReadNumber()}]标志状态-{flagStateString}", value.FlagState);
- value.Speed = reader.ReadByte();
- writer.WriteNumber($"[{value.Speed.ReadNumber()}]车速", value.Speed);
- value.Altitude = reader.ReadUInt16();
- writer.WriteNumber($"[{value.Altitude.ReadNumber()}]高程", value.Altitude);
- value.Latitude = (int)reader.ReadUInt32();
- writer.WriteNumber($"[{value.Latitude.ReadNumber()}]纬度", value.Latitude);
- value.Longitude = (int)reader.ReadUInt32();
- writer.WriteNumber($"[{value.Longitude.ReadNumber()}]经度", value.Longitude);
- value.AlarmTime = reader.ReadDateTime6();
- writer.WriteString($"[{value.AlarmTime.ToString("yyMMddHHmmss")}]日期时间", value.AlarmTime.ToString("yyyy-MM-dd HH:mm:ss"));
- value.VehicleState = reader.ReadUInt16();
- writer.WriteNumber($"[{value.VehicleState.ReadNumber()}]车辆状态", value.VehicleState);
- var vehicleStateBits = Convert.ToString(value.VehicleState, 2).PadLeft(16, '0');
- writer.WriteStartObject($"车辆状态对象[{vehicleStateBits}]");
- writer.WriteString($"[{vehicleStateBits[15]}]Bit0ACC状态", vehicleStateBits[15] == '0' ? "关闭" : "打开");
- writer.WriteString($"[{vehicleStateBits[14]}]Bit1左转向状态", vehicleStateBits[14] == '0' ? "关闭" : "打开");
- writer.WriteString($"[{vehicleStateBits[13]}]Bit2右转向状态", vehicleStateBits[13] == '0' ? "关闭" : "打开");
- writer.WriteString($"[{vehicleStateBits[12]}]Bit3雨刮器状态", vehicleStateBits[12] == '0' ? "关闭" : "打开");
- writer.WriteString($"[{vehicleStateBits[11]}]Bit4制动状态", vehicleStateBits[11] == '0' ? "未制动" : "制动");
- writer.WriteString($"[{vehicleStateBits[10]}]Bit5插卡状态", vehicleStateBits[10] == '0' ? "未插卡" : "已插卡");
- writer.WriteString($"[{vehicleStateBits[9]}]Bit6自定义", vehicleStateBits[9].ToString());
- writer.WriteString($"[{vehicleStateBits[8]}]Bit7自定义", vehicleStateBits[8].ToString());
- writer.WriteString($"[{vehicleStateBits[7]}]Bit8自定义", vehicleStateBits[7].ToString());
- writer.WriteString($"[{vehicleStateBits[6]}]Bit9自定义", vehicleStateBits[6].ToString());
- writer.WriteString($"[{vehicleStateBits[5]}]Bit10定位状态", vehicleStateBits[5] == '0' ? "未定位" : "已定位");
- writer.WriteString($"[{vehicleStateBits[4]}]Bit11自定义", vehicleStateBits[4].ToString());
- writer.WriteString($"[{vehicleStateBits[3]}]Bit12自定义", vehicleStateBits[3].ToString());
- writer.WriteString($"[{vehicleStateBits[2]}]Bit13自定义", vehicleStateBits[2].ToString());
- writer.WriteString($"[{vehicleStateBits[1]}]Bit14自定义", vehicleStateBits[1].ToString());
- writer.WriteString($"[{vehicleStateBits[0]}]Bit15自定义", vehicleStateBits[0].ToString());
- writer.WriteEndObject();
- value.AlarmIdentification = new AlarmIdentificationProperty();
- string terminalIDHex = reader.ReadVirtualArray(7).ToArray().ToHexString();
- value.AlarmIdentification.TerminalID = reader.ReadString(7);
- value.AlarmIdentification.Time = reader.ReadDateTime6();
- value.AlarmIdentification.SN = reader.ReadByte();
- value.AlarmIdentification.AttachCount = reader.ReadByte();
- value.AlarmIdentification.Retain = reader.ReadByte();
- writer.WriteString($"[{terminalIDHex}]终端ID", value.AlarmIdentification.TerminalID);
- writer.WriteString($"[{value.AlarmIdentification.Time.ToString("yyMMddHHmmss")}]日期时间", value.AlarmIdentification.Time.ToString("yyyy-MM-dd HH:mm:ss"));
- writer.WriteNumber($"[{value.AlarmIdentification.SN.ReadNumber()}]序号", value.AlarmIdentification.SN);
- writer.WriteNumber($"[{value.AlarmIdentification.AttachCount.ReadNumber()}]附件数量", value.AlarmIdentification.AttachCount);
- writer.WriteNumber($"[{value.AlarmIdentification.Retain.ReadNumber()}]预留", value.AlarmIdentification.Retain);
- value.AlarmOrEventCount = reader.ReadByte();
- writer.WriteNumber($"[{value.AlarmOrEventCount.ReadNumber()}]报警_事件列表总数", value.AlarmOrEventCount);
- if (value.AlarmOrEventCount > 0)
- {
- writer.WriteStartArray("报警_事件列表");
- for (int i = 0; i < value.AlarmOrEventCount; i++)
- {
- writer.WriteStartObject();
- AlarmOrEventProperty item = new AlarmOrEventProperty();
- item.TirePressureAlarmPosition = reader.ReadByte();
- writer.WriteNumber($"[{item.TirePressureAlarmPosition.ReadNumber()}]胎压报警位置", item.TirePressureAlarmPosition);
- item.AlarmOrEventType = reader.ReadUInt16();
- string alarmOrEventTypeString = "";
- switch (item.AlarmOrEventType)
- {
- case 0x01:
- alarmOrEventTypeString = "前向碰撞报警";
- break;
- case 0x02:
- alarmOrEventTypeString = "车道偏离报警";
- break;
- case 0x03:
- alarmOrEventTypeString = "车距过近报警";
- break;
- case 0x04:
- alarmOrEventTypeString = "行人碰撞报警";
- break;
- case 0x05:
- alarmOrEventTypeString = "频繁变道报警";
- break;
- case 0x06:
- alarmOrEventTypeString = "道路标识超限报警";
- break;
- case 0x07:
- alarmOrEventTypeString = "障碍物报警";
- break;
- case 0x08:
- case 0x09:
- case 0x0A:
- case 0x0B:
- case 0x0C:
- case 0x0D:
- case 0x0E:
- case 0x0F:
- alarmOrEventTypeString = "用户自定义";
- break;
- case 0x10:
- alarmOrEventTypeString = "道路标志识别事件";
- break;
- case 0x11:
- alarmOrEventTypeString = "主动抓拍事件";
- break;
- case 0x12:
- case 0x13:
- case 0x14:
- case 0x15:
- case 0x16:
- case 0x17:
- case 0x18:
- case 0x19:
- case 0x1A:
- case 0x1B:
- case 0x1C:
- case 0x1D:
- case 0x1E:
- case 0x1F:
- alarmOrEventTypeString = "用户自定义";
- break;
- }
- writer.WriteNumber($"[{item.AlarmOrEventType.ReadNumber()}]报警_事件类型-{alarmOrEventTypeString}", item.AlarmOrEventType);
- item.TirePressure = reader.ReadUInt16();
- writer.WriteNumber($"[{item.TirePressure.ReadNumber()}]胎压Kpa", item.TirePressure);
- item.TireTemperature = reader.ReadUInt16();
- writer.WriteNumber($"[{item.TireTemperature.ReadNumber()}]胎温℃", item.TireTemperature);
- item.BatteryLevel = reader.ReadUInt16();
- writer.WriteNumber($"[{item.BatteryLevel.ReadNumber()}]电池电量%", item.BatteryLevel);
- writer.WriteEndObject();
- }
- writer.WriteEndArray();
- }
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public JT808_0x0200_0x66 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
- {
- JT808_0x0200_0x66 value = new JT808_0x0200_0x66();
- value.AttachInfoId = reader.ReadByte();
- value.AttachInfoLength = reader.ReadByte();
- value.AlarmId = reader.ReadUInt32();
- value.FlagState = reader.ReadByte();
- value.Speed = reader.ReadByte();
- value.Altitude = reader.ReadUInt16();
- value.Latitude = (int)reader.ReadUInt32();
- value.Longitude = (int)reader.ReadUInt32();
- value.AlarmTime = reader.ReadDateTime6();
- value.VehicleState = reader.ReadUInt16();
- value.AlarmIdentification = new AlarmIdentificationProperty
- {
- TerminalID = reader.ReadString(7),
- Time = reader.ReadDateTime6(),
- SN = reader.ReadByte(),
- AttachCount = reader.ReadByte(),
- Retain = reader.ReadByte()
- };
- value.AlarmOrEventCount = reader.ReadByte();
- if (value.AlarmOrEventCount > 0)
- {
- value.AlarmOrEvents = new List();
- for (int i = 0; i < value.AlarmOrEventCount; i++)
- {
- AlarmOrEventProperty alarmOrEventProperty = new AlarmOrEventProperty();
- alarmOrEventProperty.TirePressureAlarmPosition = reader.ReadByte();
- alarmOrEventProperty.AlarmOrEventType = reader.ReadUInt16();
- alarmOrEventProperty.TirePressure = reader.ReadUInt16();
- alarmOrEventProperty.TireTemperature = reader.ReadUInt16();
- alarmOrEventProperty.BatteryLevel = reader.ReadUInt16();
- value.AlarmOrEvents.Add(alarmOrEventProperty);
- }
- }
- return value;
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0200_0x66 value, IJT808Config config)
- {
- writer.WriteByte(value.AttachInfoId);
- writer.Skip(1, out int AttachInfoLengthPosition);
- writer.WriteUInt32(value.AlarmId);
- writer.WriteByte(value.FlagState);
- writer.WriteByte(value.Speed);
- writer.WriteUInt16(value.Altitude);
- writer.WriteUInt32((uint)value.Latitude);
- writer.WriteUInt32((uint)value.Longitude);
- writer.WriteDateTime6(value.AlarmTime);
- writer.WriteUInt16(value.VehicleState);
- if (value.AlarmIdentification == null)
- {
- throw new NullReferenceException($"{nameof(AlarmIdentificationProperty)}不为空");
- }
- writer.WriteString(value.AlarmIdentification.TerminalID);
- writer.WriteDateTime6(value.AlarmIdentification.Time);
- writer.WriteByte(value.AlarmIdentification.SN);
- writer.WriteByte(value.AlarmIdentification.AttachCount);
- writer.WriteByte(value.AlarmIdentification.Retain);
- if (value.AlarmOrEvents.Count > 0)
- {
- writer.WriteByte((byte)value.AlarmOrEvents.Count);
- foreach (var item in value.AlarmOrEvents)
- {
- writer.WriteByte(item.TirePressureAlarmPosition);
- writer.WriteUInt16(item.AlarmOrEventType);
- writer.WriteUInt16(item.TirePressure);
- writer.WriteUInt16(item.TireTemperature);
- writer.WriteUInt16(item.BatteryLevel);
- }
- }
- writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - AttachInfoLengthPosition - 1), AttachInfoLengthPosition);
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x67.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x67.cs
deleted file mode 100644
index c6c5d57..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x67.cs
+++ /dev/null
@@ -1,279 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.Metadata;
-using JT808.Protocol.Formatters;
-using JT808.Protocol.Interfaces;
-using JT808.Protocol.MessageBody;
-using JT808.Protocol.MessagePack;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Text.Json;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
-{
- ///
- /// 盲区监测系统报警信息
- ///
- public class JT808_0x0200_0x67 : JT808_0x0200_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
- {
- ///
- /// 盲区监测系统报警信息Id
- ///
- public override byte AttachInfoId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0200_0x67;
- ///
- /// 盲区监测系统报警信息长度
- ///
- public override byte AttachInfoLength { get; set; } = 26;
- ///
- /// 报警ID
- ///
- public uint AlarmId { get; set; }
- ///
- /// 标志状态
- ///
- public byte FlagState { get; set; }
- ///
- /// 报警/事件类型
- ///
- public byte AlarmOrEventType{ get; set; }
- ///
- /// 报警/事件类型
- ///
- public byte AlarmLevel { get; set; }
- ///
- /// 车速
- ///
- public byte Speed { get; set; }
- ///
- /// 高程
- ///
- public ushort Altitude { get; set; }
- ///
- /// 纬度
- ///
- public int Latitude { get; set; }
- ///
- /// 经度
- ///
- public int Longitude { get; set; }
- ///
- /// 日期时间
- /// YYMMDDhhmmss
- /// BCD[6]
- ///
- public DateTime AlarmTime { get; set; }
- ///
- /// 车辆状态
- ///
- public ushort VehicleState { get; set; }
- ///
- /// 报警标识号
- ///
- public AlarmIdentificationProperty AlarmIdentification { get; set; }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
- {
- JT808_0x0200_0x67 value = new JT808_0x0200_0x67();
- value.AttachInfoId = reader.ReadByte();
- writer.WriteNumber($"[{value.AttachInfoId.ReadNumber()}]附加信息Id", value.AttachInfoId);
- value.AttachInfoLength = reader.ReadByte();
- writer.WriteNumber($"[{value.AttachInfoLength.ReadNumber()}]附加信息长度", value.AttachInfoLength);
- value.AlarmId = reader.ReadUInt32();
- writer.WriteNumber($"[{value.AlarmId.ReadNumber()}]报警ID", value.AlarmId);
- value.FlagState = reader.ReadByte();
- string flagStateString = "未知";
- switch (value.FlagState)
- {
- case 0:
- flagStateString = "不可用";
- break;
- case 1:
- flagStateString = "开始标志";
- break;
- case 2:
- flagStateString = "结束标志";
- break;
- }
- writer.WriteNumber($"[{value.FlagState.ReadNumber()}]标志状态-{flagStateString}", value.FlagState);
- value.AlarmOrEventType = reader.ReadByte();
- string alarmOrEventTypeString = "";
- switch (value.AlarmOrEventType)
- {
- case 0x01:
- alarmOrEventTypeString = "前向碰撞报警";
- break;
- case 0x02:
- alarmOrEventTypeString = "车道偏离报警";
- break;
- case 0x03:
- alarmOrEventTypeString = "车距过近报警";
- break;
- case 0x04:
- alarmOrEventTypeString = "行人碰撞报警";
- break;
- case 0x05:
- alarmOrEventTypeString = "频繁变道报警";
- break;
- case 0x06:
- alarmOrEventTypeString = "道路标识超限报警";
- break;
- case 0x07:
- alarmOrEventTypeString = "障碍物报警";
- break;
- case 0x08:
- case 0x09:
- case 0x0A:
- case 0x0B:
- case 0x0C:
- case 0x0D:
- case 0x0E:
- case 0x0F:
- alarmOrEventTypeString = "用户自定义";
- break;
- case 0x10:
- alarmOrEventTypeString = "道路标志识别事件";
- break;
- case 0x11:
- alarmOrEventTypeString = "主动抓拍事件";
- break;
- case 0x12:
- case 0x13:
- case 0x14:
- case 0x15:
- case 0x16:
- case 0x17:
- case 0x18:
- case 0x19:
- case 0x1A:
- case 0x1B:
- case 0x1C:
- case 0x1D:
- case 0x1E:
- case 0x1F:
- alarmOrEventTypeString = "用户自定义";
- break;
- }
- writer.WriteNumber($"[{value.AlarmOrEventType.ReadNumber()}]报警_事件类型-{alarmOrEventTypeString}", value.AlarmOrEventType);
- value.AlarmLevel = reader.ReadByte();
- string alarmLevelString = "未知";
- switch (value.AlarmLevel)
- {
- case 0x01:
- alarmLevelString = "一级报警";
- break;
- case 0x02:
- alarmLevelString = "二级报警";
- break;
- }
- writer.WriteNumber($"[{value.AlarmLevel.ReadNumber()}]报警级别-{alarmLevelString}", value.AlarmLevel);
- value.Speed = reader.ReadByte();
- writer.WriteNumber($"[{value.Speed.ReadNumber()}]车速", value.Speed);
- value.Altitude = reader.ReadUInt16();
- writer.WriteNumber($"[{value.Altitude.ReadNumber()}]高程", value.Altitude);
- value.Latitude = (int)reader.ReadUInt32();
- writer.WriteNumber($"[{value.Latitude.ReadNumber()}]纬度", value.Latitude);
- value.Longitude = (int)reader.ReadUInt32();
- writer.WriteNumber($"[{value.Longitude.ReadNumber()}]经度", value.Longitude);
- value.AlarmTime = reader.ReadDateTime6();
- writer.WriteString($"[{value.AlarmTime.ToString("yyMMddHHmmss")}]日期时间", value.AlarmTime.ToString("yyyy-MM-dd HH:mm:ss"));
- value.VehicleState = reader.ReadUInt16();
- writer.WriteNumber($"[{value.VehicleState.ReadNumber()}]车辆状态", value.VehicleState);
- var vehicleStateBits=Convert.ToString(value.VehicleState, 2).PadLeft(16, '0');
- writer.WriteStartObject($"车辆状态对象[{vehicleStateBits}]");
- writer.WriteString($"[{vehicleStateBits[15]}]Bit0ACC状态", vehicleStateBits[15]=='0'?"关闭":"打开");
- writer.WriteString($"[{vehicleStateBits[14]}]Bit1左转向状态", vehicleStateBits[14]=='0'?"关闭":"打开");
- writer.WriteString($"[{vehicleStateBits[13]}]Bit2右转向状态", vehicleStateBits[13]=='0'?"关闭":"打开");
- writer.WriteString($"[{vehicleStateBits[12]}]Bit3雨刮器状态", vehicleStateBits[12]=='0'?"关闭":"打开");
- writer.WriteString($"[{vehicleStateBits[11]}]Bit4制动状态", vehicleStateBits[11] == '0' ? "未制动" : "制动");
- writer.WriteString($"[{vehicleStateBits[10]}]Bit5插卡状态", vehicleStateBits[10] == '0' ? "未插卡" : "已插卡");
- writer.WriteString($"[{vehicleStateBits[9]}]Bit6自定义", vehicleStateBits[9].ToString());
- writer.WriteString($"[{vehicleStateBits[8]}]Bit7自定义", vehicleStateBits[8].ToString());
- writer.WriteString($"[{vehicleStateBits[7]}]Bit8自定义", vehicleStateBits[7].ToString());
- writer.WriteString($"[{vehicleStateBits[6]}]Bit9自定义", vehicleStateBits[6].ToString());
- writer.WriteString($"[{vehicleStateBits[5]}]Bit10定位状态", vehicleStateBits[5] == '0' ? "未定位" : "已定位");
- writer.WriteString($"[{vehicleStateBits[4]}]Bit11自定义", vehicleStateBits[4].ToString());
- writer.WriteString($"[{vehicleStateBits[3]}]Bit12自定义", vehicleStateBits[3].ToString());
- writer.WriteString($"[{vehicleStateBits[2]}]Bit13自定义", vehicleStateBits[2].ToString());
- writer.WriteString($"[{vehicleStateBits[1]}]Bit14自定义", vehicleStateBits[1].ToString());
- writer.WriteString($"[{vehicleStateBits[0]}]Bit15自定义", vehicleStateBits[0].ToString());
- writer.WriteEndObject();
- value.AlarmIdentification = new AlarmIdentificationProperty();
- string terminalIDHex = reader.ReadVirtualArray(7).ToArray().ToHexString();
- value.AlarmIdentification.TerminalID = reader.ReadString(7);
- value.AlarmIdentification.Time = reader.ReadDateTime6();
- value.AlarmIdentification.SN = reader.ReadByte();
- value.AlarmIdentification.AttachCount = reader.ReadByte();
- value.AlarmIdentification.Retain = reader.ReadByte();
- writer.WriteString($"[{terminalIDHex}]终端ID", value.AlarmIdentification.TerminalID);
- writer.WriteString($"[{value.AlarmIdentification.Time.ToString("yyMMddHHmmss")}]日期时间", value.AlarmIdentification.Time.ToString("yyyy-MM-dd HH:mm:ss"));
- writer.WriteNumber($"[{value.AlarmIdentification.SN.ReadNumber()}]序号", value.AlarmIdentification.SN);
- writer.WriteNumber($"[{value.AlarmIdentification.AttachCount.ReadNumber()}]附件数量", value.AlarmIdentification.AttachCount);
- writer.WriteNumber($"[{value.AlarmIdentification.Retain.ReadNumber()}]预留", value.AlarmIdentification.Retain);
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public JT808_0x0200_0x67 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
- {
- JT808_0x0200_0x67 value = new JT808_0x0200_0x67();
- value.AttachInfoId = reader.ReadByte();
- value.AttachInfoLength = reader.ReadByte();
- value.AlarmId = reader.ReadUInt32();
- value.FlagState = reader.ReadByte();
- value.AlarmOrEventType = reader.ReadByte();
- value.AlarmLevel = reader.ReadByte();
- value.Speed = reader.ReadByte();
- value.Altitude = reader.ReadUInt16();
- value.Latitude = (int)reader.ReadUInt32();
- value.Longitude = (int)reader.ReadUInt32();
- value.AlarmTime = reader.ReadDateTime6();
- value.VehicleState = reader.ReadUInt16();
- value.AlarmIdentification = new AlarmIdentificationProperty
- {
- TerminalID = reader.ReadString(7),
- Time = reader.ReadDateTime6(),
- SN = reader.ReadByte(),
- AttachCount = reader.ReadByte(),
- Retain = reader.ReadByte()
- };
- return value;
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0200_0x67 value, IJT808Config config)
- {
- writer.WriteByte(value.AttachInfoId);
- writer.WriteByte(value.AttachInfoLength);
- writer.WriteUInt32(value.AlarmId);
- writer.WriteByte(value.FlagState);
- writer.WriteByte(value.AlarmOrEventType);
- writer.WriteByte(value.AlarmLevel);
- writer.WriteByte(value.Speed);
- writer.WriteUInt16(value.Altitude);
- writer.WriteUInt32((uint)value.Latitude);
- writer.WriteUInt32((uint)value.Longitude);
- writer.WriteDateTime6(value.AlarmTime);
- writer.WriteUInt16(value.VehicleState);
- if (value.AlarmIdentification == null)
- {
- throw new NullReferenceException($"{nameof(AlarmIdentificationProperty)}不为空");
- }
- writer.WriteString(value.AlarmIdentification.TerminalID);
- writer.WriteDateTime6(value.AlarmIdentification.Time);
- writer.WriteByte(value.AlarmIdentification.SN);
- writer.WriteByte(value.AlarmIdentification.AttachCount);
- writer.WriteByte(value.AlarmIdentification.Retain);
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0900_0xF7.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0900_0xF7.cs
deleted file mode 100644
index b4c9888..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0900_0xF7.cs
+++ /dev/null
@@ -1,122 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.Enums;
-using JT808.Protocol.Extensions.JTActiveSafety.Metadata;
-using JT808.Protocol.Formatters;
-using JT808.Protocol.Interfaces;
-using JT808.Protocol.MessageBody;
-using JT808.Protocol.MessagePack;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Text.Json;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
-{
- ///
- /// 透传数据
- ///
- public class JT808_0x0900_0xF7 : JT808_0x0900_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
- {
- ///
- /// 透传类型
- ///
- public override byte PassthroughType { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0900_0xF7;
- ///
- /// 消息列表总数
- ///
- public byte USBMessageCount { get; set; }
- ///
- /// 消息列表数据
- ///
- public List USBMessages { get; set; }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
- {
- JT808_0x0900_0xF7 value = new JT808_0x0900_0xF7();
- value.USBMessageCount = reader.ReadByte();
- writer.WriteNumber($"[{value.USBMessageCount.ReadNumber()}]消息列表总数", value.USBMessageCount);
- if (value.USBMessageCount > 0)
- {
- writer.WriteStartArray("消息列表");
- for (int i = 0; i < value.USBMessageCount; i++)
- {
- writer.WriteStartObject();
- JT808_0x0900_0xF7_USB item = new JT808_0x0900_0xF7_USB();
- item.USBID = reader.ReadByte();
- writer.WriteNumber($"[{item.USBID.ReadNumber()}]外设ID", item.USBID);
- item.MessageLength = reader.ReadByte();
- writer.WriteNumber($"[{item.MessageLength.ReadNumber()}]消息长度", item.MessageLength);
- item.WorkingCondition = reader.ReadByte();
- var workingCondition = (WorkingConditionType)item.WorkingCondition;
- writer.WriteNumber($"[{item.WorkingCondition.ReadNumber()}]工作状态-{workingCondition.ToString()}", item.WorkingCondition);
- item.AlarmStatus = reader.ReadUInt32();
- writer.WriteNumber($"[{item.AlarmStatus.ReadNumber()}]报警状态", item.AlarmStatus);
- var alarmStatusBits = Convert.ToString(item.AlarmStatus, 2).PadLeft(32, '0').AsSpan();
- writer.WriteStartObject($"报警状态对象[{alarmStatusBits.ToString()}]");
- writer.WriteString($"[bit12~bit31]预留", alarmStatusBits.Slice(12).ToString());
- writer.WriteString($"]bit11]定位模块异常", alarmStatusBits[11].ToString());
- writer.WriteString($"[bit10]通讯模块异常", alarmStatusBits[10].ToString());
- writer.WriteString($"[bit6~bit9]预留", alarmStatusBits.Slice(6,4).ToString());
- writer.WriteString($"[bit5]电池异常", alarmStatusBits[5].ToString());
- writer.WriteString($"[bit4]扬声器异常", alarmStatusBits[4].ToString());
- writer.WriteString($"[bit3]红外补光异常", alarmStatusBits[3].ToString());
- writer.WriteString($"[bit2]辅存储器异常", alarmStatusBits[2].ToString());
- writer.WriteString($"[bit1]主存储器异常", alarmStatusBits[1].ToString());
- writer.WriteString($"[bit0]摄像头异常", alarmStatusBits[0].ToString());
- writer.WriteEndObject();
- writer.WriteEndObject();
- }
- writer.WriteEndArray();
- }
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public JT808_0x0900_0xF7 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
- {
- JT808_0x0900_0xF7 value = new JT808_0x0900_0xF7();
- value.USBMessageCount = reader.ReadByte();
- if (value.USBMessageCount > 0)
- {
- value.USBMessages = new List();
- for (int i = 0; i < value.USBMessageCount; i++)
- {
- JT808_0x0900_0xF7_USB item = new JT808_0x0900_0xF7_USB();
- item.USBID = reader.ReadByte();
- item.MessageLength = reader.ReadByte();
- item.WorkingCondition = reader.ReadByte();
- item.AlarmStatus = reader.ReadUInt32();
- value.USBMessages.Add(item);
- }
- }
- return value;
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0900_0xF7 value, IJT808Config config)
- {
- if (value.USBMessages != null && value.USBMessages.Count > 0)
- {
- writer.WriteByte((byte)value.USBMessages.Count);
- foreach (var item in value.USBMessages)
- {
- writer.WriteByte(item.USBID);
- writer.WriteByte(5);
- writer.WriteByte(item.WorkingCondition);
- writer.WriteUInt32(item.AlarmStatus);
- }
- }
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0900_0xF8.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0900_0xF8.cs
deleted file mode 100644
index 6198167..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0900_0xF8.cs
+++ /dev/null
@@ -1,175 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.Metadata;
-using JT808.Protocol.Formatters;
-using JT808.Protocol.Interfaces;
-using JT808.Protocol.MessageBody;
-using JT808.Protocol.MessagePack;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Text.Json;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
-{
- ///
- /// 透传数据
- ///
- public class JT808_0x0900_0xF8 : JT808_0x0900_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
- {
- ///
- /// 透传类型
- ///
- public override byte PassthroughType { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0900_0xF8;
- ///
- /// 消息列表总数
- ///
- public byte USBMessageCount { get; set; }
- ///
- ///
- ///
- public List USBMessages { get; set; }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
- {
- JT808_0x0900_0xF8 value = new JT808_0x0900_0xF8();
- value.USBMessageCount = reader.ReadByte();
- writer.WriteNumber($"[{value.USBMessageCount.ReadNumber()}]消息列表总数", value.USBMessageCount);
- if (value.USBMessageCount > 0)
- {
- writer.WriteStartArray("消息列表");
- for (int i = 0; i < value.USBMessageCount; i++)
- {
- writer.WriteStartObject();
- JT808_0x0900_0xF8_USB item = new JT808_0x0900_0xF8_USB();
- item.USBID = reader.ReadByte();
- writer.WriteNumber($"[{item.USBID.ReadNumber()}]外设ID", item.USBID);
- item.MessageLength = reader.ReadByte();
- writer.WriteNumber($"[{item.MessageLength.ReadNumber()}]消息长度", item.MessageLength);
- item.CompantNameLength = reader.ReadByte();
- writer.WriteNumber($"[{item.CompantNameLength.ReadNumber()}]公司名称长度", item.CompantNameLength);
-
- string compantNameHex = reader.ReadVirtualArray(item.CompantNameLength).ToArray().ToHexString();
- item.CompantName = reader.ReadString(item.CompantNameLength);
- writer.WriteString($"[{compantNameHex}]公司名称", item.CompantName);
-
- item.ProductModelLength = reader.ReadByte();
- writer.WriteNumber($"[{item.ProductModelLength.ReadNumber()}]产品型号长度", item.ProductModelLength);
-
- string productModelHex = reader.ReadVirtualArray(item.ProductModelLength).ToArray().ToHexString();
- item.ProductModel = reader.ReadString(item.ProductModelLength);
- writer.WriteString($"[{productModelHex}]产品型号", item.ProductModel);
-
- item.HardwareVersionNumberLength = reader.ReadByte();
- writer.WriteNumber($"[{item.HardwareVersionNumberLength.ReadNumber()}]硬件版本号长度", item.HardwareVersionNumberLength);
- string hardwareVersionNumberHex = reader.ReadVirtualArray(item.HardwareVersionNumberLength).ToArray().ToHexString();
- item.HardwareVersionNumber = reader.ReadString(item.HardwareVersionNumberLength);
- writer.WriteString($"[{hardwareVersionNumberHex}]硬件版本号", item.HardwareVersionNumber);
-
- item.SoftwareVersionNumberLength = reader.ReadByte();
- writer.WriteNumber($"[{item.SoftwareVersionNumberLength.ReadNumber()}]软件版本号长度", item.SoftwareVersionNumberLength);
- string softwareVersionNumberHex = reader.ReadVirtualArray(item.SoftwareVersionNumberLength).ToArray().ToHexString();
- item.SoftwareVersionNumber = reader.ReadString(item.SoftwareVersionNumberLength);
- writer.WriteString($"[{softwareVersionNumberHex}]软件版本号", item.SoftwareVersionNumber);
-
- item.DevicesIDLength = reader.ReadByte();
- writer.WriteNumber($"[{item.DevicesIDLength.ReadNumber()}]设备ID长度", item.DevicesIDLength);
- string devicesIDHex = reader.ReadVirtualArray(item.DevicesIDLength).ToArray().ToHexString();
- item.DevicesID = reader.ReadString(item.DevicesIDLength);
- writer.WriteString($"[{devicesIDHex}]设备ID", item.DevicesID);
-
- item.CustomerCodeLength = reader.ReadByte();
- writer.WriteNumber($"[{item.CustomerCodeLength.ReadNumber()}]客户代码长度", item.CustomerCodeLength);
- string customerCodeHex = reader.ReadVirtualArray(item.CustomerCodeLength).ToArray().ToHexString();
- item.CustomerCode = reader.ReadString(item.CustomerCodeLength);
- writer.WriteString($"[{customerCodeHex}]客户代码", item.CustomerCode);
-
- writer.WriteEndObject();
- }
- writer.WriteEndArray();
- }
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public JT808_0x0900_0xF8 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
- {
- JT808_0x0900_0xF8 value = new JT808_0x0900_0xF8();
- value.USBMessageCount = reader.ReadByte();
- if (value.USBMessageCount > 0)
- {
- value.USBMessages = new List();
- for (int i = 0; i < value.USBMessageCount; i++)
- {
- JT808_0x0900_0xF8_USB item = new JT808_0x0900_0xF8_USB();
- item.USBID = reader.ReadByte();
- item.MessageLength = reader.ReadByte();
- item.CompantNameLength = reader.ReadByte();
- item.CompantName = reader.ReadString(item.CompantNameLength);
- item.ProductModelLength = reader.ReadByte();
- item.ProductModel = reader.ReadString(item.ProductModelLength);
- item.HardwareVersionNumberLength = reader.ReadByte();
- item.HardwareVersionNumber = reader.ReadString(item.HardwareVersionNumberLength);
- item.SoftwareVersionNumberLength = reader.ReadByte();
- item.SoftwareVersionNumber = reader.ReadString(item.SoftwareVersionNumberLength);
- item.DevicesIDLength = reader.ReadByte();
- item.DevicesID = reader.ReadString(item.DevicesIDLength);
- item.CustomerCodeLength = reader.ReadByte();
- item.CustomerCode = reader.ReadString(item.CustomerCodeLength);
- value.USBMessages.Add(item);
- }
- }
- return value;
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0900_0xF8 value, IJT808Config config)
- {
- if (value.USBMessages != null && value.USBMessages.Count > 0)
- {
- writer.WriteByte((byte)value.USBMessages.Count);
- foreach (var item in value.USBMessages)
- {
- writer.WriteByte(item.USBID);
- writer.Skip(1,out int messageLengthPosition);
-
- writer.Skip(1, out int CompantNameLengthPosition);
- writer.WriteString(item.CompantName);
- writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - CompantNameLengthPosition - 1), CompantNameLengthPosition);
-
- writer.Skip(1, out int ProductModelLengthPosition);
- writer.WriteString(item.ProductModel);
- writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - ProductModelLengthPosition - 1), ProductModelLengthPosition);
-
- writer.Skip(1, out int HardwareVersionNumberLengthPosition);
- writer.WriteString(item.HardwareVersionNumber);
- writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - HardwareVersionNumberLengthPosition - 1), HardwareVersionNumberLengthPosition);
-
- writer.Skip(1, out int SoftwareVersionNumberLengthPosition);
- writer.WriteString(item.SoftwareVersionNumber);
- writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - SoftwareVersionNumberLengthPosition - 1), SoftwareVersionNumberLengthPosition);
-
- writer.Skip(1, out int DevicesIDLengthPosition);
- writer.WriteString(item.DevicesID);
- writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - DevicesIDLengthPosition - 1), DevicesIDLengthPosition);
-
- writer.Skip(1, out int CustomerCodeLengthPosition);
- writer.WriteString(item.CustomerCode);
- writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - CustomerCodeLengthPosition - 1), CustomerCodeLengthPosition);
-
- writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - messageLengthPosition - 1), messageLengthPosition);
- }
- }
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1210.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1210.cs
deleted file mode 100644
index 4a6d105..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1210.cs
+++ /dev/null
@@ -1,175 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.Metadata;
-using JT808.Protocol.Formatters;
-using JT808.Protocol.Interfaces;
-using JT808.Protocol.MessagePack;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Text.Json;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
-{
- ///
- /// 报警附件信息消息
- ///
- public class JT808_0x1210: JT808Bodies, IJT808MessagePackFormatter, IJT808Analyze
- {
- ///
- /// 制造商Id
- /// 7 个字节,由大写字母和数字组成,此终端ID 由制造商自行定义,位数不足时,后补“0x00”
- ///
- public string MakerID { get; set; }
- ///
- /// 报警标识号
- ///
- public AlarmIdentificationProperty AlarmIdentification { get; set; }
- ///
- /// 平台给报警分配的唯一编号
- /// 32
- ///
- public string AlarmId { get; set; }
- ///
- /// 信息类型
- /// 0x00:正常报警文件信息
- /// 0x01:补传报警文件信息
- ///
- public byte InfoType { get; set; }
- ///
- /// 附件数量
- ///
- public byte AttachCount { get; set; }
- ///
- /// 附件信息列表
- ///
- public List AttachInfos { get; set; }
- ///
- /// 报警附件信息消息Id
- ///
- public override ushort MsgId => 0x1210;
- ///
- /// 报警附件信息消息
- ///
- public override string Description => "报警附件信息消息";
- ///
- ///
- ///
- ///
- ///
- ///
- public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
- {
- JT808_0x1210 value = new JT808_0x1210();
- string makerIdHex=reader.ReadVirtualArray(7).ToArray().ToHexString();
- value.MakerID = reader.ReadString(7);
- writer.WriteString($"[{makerIdHex}]制造商Id", value.MakerID);
- value.AlarmIdentification = new AlarmIdentificationProperty();
- string terminalIDHex = reader.ReadVirtualArray(7).ToArray().ToHexString();
- value.AlarmIdentification.TerminalID = reader.ReadString(7);
- value.AlarmIdentification.Time = reader.ReadDateTime6();
- value.AlarmIdentification.SN = reader.ReadByte();
- value.AlarmIdentification.AttachCount = reader.ReadByte();
- value.AlarmIdentification.Retain = reader.ReadByte();
- writer.WriteString($"[{terminalIDHex}]终端ID", value.AlarmIdentification.TerminalID);
- writer.WriteString($"[{value.AlarmIdentification.Time.ToString("yyMMddHHmmss")}]日期时间", value.AlarmIdentification.Time.ToString("yyyy-MM-dd HH:mm:ss"));
- writer.WriteNumber($"[{value.AlarmIdentification.SN.ReadNumber()}]序号", value.AlarmIdentification.SN);
- writer.WriteNumber($"[{value.AlarmIdentification.AttachCount.ReadNumber()}]附件数量", value.AlarmIdentification.AttachCount);
- writer.WriteNumber($"[{value.AlarmIdentification.Retain.ReadNumber()}]预留", value.AlarmIdentification.Retain);
- string alarmIdHex = reader.ReadVirtualArray(32).ToArray().ToHexString();
- value.AlarmId = reader.ReadString(32);
- writer.WriteString($"[{alarmIdHex}]平台给报警分配的唯一编号", value.AlarmId);
- value.InfoType = reader.ReadByte();
- writer.WriteNumber($"[{value.InfoType.ReadNumber()}]信息类型", value.InfoType);
- value.AttachCount = reader.ReadByte();
- writer.WriteNumber($"[{value.AttachCount.ReadNumber()}]附件数量", value.AttachCount);
- if (value.AttachCount > 0)
- {
- writer.WriteStartArray("附件信息列表");
- for (int i = 0; i < value.AttachCount; i++)
- {
- writer.WriteStartObject();
- AttachProperty attachProperty = new AttachProperty();
- attachProperty.FileNameLength = reader.ReadByte();
- writer.WriteNumber($"[{attachProperty.FileNameLength.ReadNumber()}]文件名称长度", attachProperty.FileNameLength);
- string fileNameHex = reader.ReadVirtualArray(attachProperty.FileNameLength).ToArray().ToHexString();
- attachProperty.FileName = reader.ReadString(attachProperty.FileNameLength);
- writer.WriteString($"[{fileNameHex}]文件名称", attachProperty.FileName);
- attachProperty.FileSize = reader.ReadUInt32();
- writer.WriteNumber($"[{ attachProperty.FileSize.ReadNumber()}]文件大小", attachProperty.FileSize);
- writer.WriteEndObject();
- }
- writer.WriteEndArray();
- }
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public JT808_0x1210 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
- {
- JT808_0x1210 value = new JT808_0x1210();
- value.MakerID = reader.ReadString(7);
- value.AlarmIdentification = new AlarmIdentificationProperty
- {
- TerminalID = reader.ReadString(7),
- Time = reader.ReadDateTime6(),
- SN = reader.ReadByte(),
- AttachCount = reader.ReadByte(),
- Retain = reader.ReadByte()
- };
- value.AlarmId = reader.ReadString(32);
- value.InfoType = reader.ReadByte();
- value.AttachCount = reader.ReadByte();
- if (value.AttachCount > 0)
- {
- value.AttachInfos = new List();
- for (int i = 0; i < value.AttachCount; i++)
- {
- AttachProperty attachProperty = new AttachProperty();
- attachProperty.FileNameLength = reader.ReadByte();
- attachProperty.FileName = reader.ReadString(attachProperty.FileNameLength);
- attachProperty.FileSize = reader.ReadUInt32();
- value.AttachInfos.Add(attachProperty);
- }
- }
- return value;
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Serialize(ref JT808MessagePackWriter writer, JT808_0x1210 value, IJT808Config config)
- {
- writer.WriteString(value.MakerID.PadRight(7, '\0'));
- if (value.AlarmIdentification == null)
- {
- throw new NullReferenceException($"{nameof(AlarmIdentificationProperty)}不为空");
- }
- writer.WriteString(value.AlarmIdentification.TerminalID);
- writer.WriteDateTime6(value.AlarmIdentification.Time);
- writer.WriteByte(value.AlarmIdentification.SN);
- writer.WriteByte(value.AlarmIdentification.AttachCount);
- writer.WriteByte(value.AlarmIdentification.Retain);
- writer.WriteString(value.AlarmId);
- writer.WriteByte(value.InfoType);
- if (value.AttachInfos != null && value.AttachInfos.Count > 0)
- {
- writer.WriteByte((byte)value.AttachInfos.Count);
- foreach (var item in value.AttachInfos)
- {
- writer.Skip(1, out int FileNameLengthPosition);
- writer.WriteString(item.FileName);
- writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - FileNameLengthPosition - 1), FileNameLengthPosition);
- writer.WriteUInt32(item.FileSize);
- }
- }
- else
- {
- writer.WriteByte(0);
- }
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1211.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1211.cs
deleted file mode 100644
index 8f071f2..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1211.cs
+++ /dev/null
@@ -1,87 +0,0 @@
-using JT808.Protocol.Formatters;
-using JT808.Protocol.Interfaces;
-using JT808.Protocol.MessagePack;
-using System.Text.Json;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
-{
- ///
- /// 文件信息上传
- ///
- public class JT808_0x1211 : JT808Bodies, IJT808MessagePackFormatter, IJT808Analyze
- {
- ///
- /// 文件信息上传
- ///
- public override string Description => "文件信息上传";
- ///
- /// 文件名称长度
- ///
- public byte FileNameLength { get; set; }
- ///
- /// 文件名称
- /// 形如:文件类型_通道号_报警类型_序号_报警编号.后缀名
- ///
- public string FileName { get; set; }
- ///
- /// 文件类型
- ///
- public byte FileType { get; set; }
- ///
- /// 文件大小
- ///
- public uint FileSize { get; set; }
- ///
- /// 文件信息上传Id
- ///
- public override ushort MsgId => 0x1211;
- ///
- ///
- ///
- ///
- ///
- ///
- public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
- {
- JT808_0x1211 value = new JT808_0x1211();
- value.FileNameLength = reader.ReadByte();
- writer.WriteNumber($"[{value.FileNameLength.ReadNumber()}]文件名称长度", value.FileNameLength);
- string fileNameHex = reader.ReadVirtualArray(value.FileNameLength).ToArray().ToHexString();
- value.FileName = reader.ReadString(value.FileNameLength);
- writer.WriteString($"[{fileNameHex}]文件名称", value.FileName);
- value.FileType = reader.ReadByte();
- writer.WriteNumber($"[{value.FileType.ReadNumber()}]文件类型", value.FileType);
- value.FileSize = reader.ReadUInt32();
- writer.WriteNumber($"[{value.FileSize.ReadNumber()}]文件大小", value.FileSize);
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public JT808_0x1211 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
- {
- JT808_0x1211 value = new JT808_0x1211();
- value.FileNameLength = reader.ReadByte();
- value.FileName = reader.ReadString(value.FileNameLength);
- value.FileType = reader.ReadByte();
- value.FileSize = reader.ReadUInt32();
- return value;
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Serialize(ref JT808MessagePackWriter writer, JT808_0x1211 value, IJT808Config config)
- {
- writer.Skip(1, out int FileNameLengthPosition);
- writer.WriteString(value.FileName);
- writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - FileNameLengthPosition - 1), FileNameLengthPosition);
- writer.WriteByte(value.FileType);
- writer.WriteUInt32(value.FileSize);
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1212.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1212.cs
deleted file mode 100644
index afbf5dd..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1212.cs
+++ /dev/null
@@ -1,87 +0,0 @@
-using JT808.Protocol.Formatters;
-using JT808.Protocol.Interfaces;
-using JT808.Protocol.MessagePack;
-using System.Text.Json;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
-{
- ///
- /// 文件上传完成消息
- ///
- public class JT808_0x1212 : JT808Bodies, IJT808MessagePackFormatter, IJT808Analyze
- {
- ///
- /// 文件上传完成消息
- ///
- public override string Description => "文件上传完成消息";
- ///
- /// 文件名称长度
- ///
- public byte FileNameLength { get; set; }
- ///
- /// 文件名称
- /// 形如:文件类型_通道号_报警类型_序号_报警编号.后缀名
- ///
- public string FileName { get; set; }
- ///
- /// 文件类型
- ///
- public byte FileType { get; set; }
- ///
- /// 文件大小
- ///
- public uint FileSize { get; set; }
- ///
- /// 文件上传完成消息
- ///
- public override ushort MsgId => 0x1212;
- ///
- ///
- ///
- ///
- ///
- ///
- public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
- {
- JT808_0x1212 value = new JT808_0x1212();
- value.FileNameLength = reader.ReadByte();
- writer.WriteNumber($"[{value.FileNameLength.ReadNumber()}]文件名称长度", value.FileNameLength);
- string fileNameHex = reader.ReadVirtualArray(value.FileNameLength).ToArray().ToHexString();
- value.FileName = reader.ReadString(value.FileNameLength);
- writer.WriteString($"[{fileNameHex}]文件名称", value.FileName);
- value.FileType = reader.ReadByte();
- writer.WriteNumber($"[{value.FileType.ReadNumber()}]文件类型", value.FileType);
- value.FileSize = reader.ReadUInt32();
- writer.WriteNumber($"[{value.FileSize.ReadNumber()}]文件大小", value.FileSize);
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public JT808_0x1212 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
- {
- JT808_0x1212 value = new JT808_0x1212();
- value.FileNameLength = reader.ReadByte();
- value.FileName = reader.ReadString(value.FileNameLength);
- value.FileType = reader.ReadByte();
- value.FileSize = reader.ReadUInt32();
- return value;
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Serialize(ref JT808MessagePackWriter writer, JT808_0x1212 value, IJT808Config config)
- {
- writer.Skip(1, out int FileNameLengthPosition);
- writer.WriteString(value.FileName);
- writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - FileNameLengthPosition - 1), FileNameLengthPosition);
- writer.WriteByte(value.FileType);
- writer.WriteUInt32(value.FileSize);
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF364.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF364.cs
deleted file mode 100644
index f5b2952..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF364.cs
+++ /dev/null
@@ -1,456 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.Enums;
-using JT808.Protocol.Formatters;
-using JT808.Protocol.Interfaces;
-using JT808.Protocol.MessageBody;
-using JT808.Protocol.MessagePack;
-using System;
-using System.Text.Json;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
-{
- ///
- /// 高级驾驶辅助系统参数
- ///
- public class JT808_0x8103_0xF364 : JT808_0x8103_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
- {
- ///
- /// 高级驾驶辅助系统参数
- ///
- public override uint ParamId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X8103_0xF364;
- ///
- /// 高级驾驶辅助系统参数长度
- ///
- public override byte ParamLength { get; set; }
- ///
- /// 报警判断速度阈值
- ///
- public byte AlarmJudgeSpeedThreshold { get; set; }
- ///
- /// 报警提示音量
- ///
- public byte WarningVolume { get; set; }
- ///
- /// 主动拍照策略
- ///
- ///
- public byte ActivePhotographyStrategy { get; set; }
- ///
- /// 主动定时拍照时间间隔
- ///
- public ushort ActivelyTimePhotoInterval { get; set; }
- ///
- /// 主动定距拍照距离间隔
- ///
- public ushort ActiveDistancePhotographyDistanceInterval { get; set; }
- ///
- /// 单次主动拍照张数
- ///
- public byte SingleInitiativePhotos { get; set; }
- ///
- /// 单次主动拍照时间间隔
- ///
- public byte SingleInitiativePhotosInterval { get; set; }
- ///
- /// 拍照分辨率
- ///
- ///
- public byte PhotoResolution { get; set; }
- ///
- /// 视频录制分辨率
- ///
- public byte VideoRecordingResolution { get; set; }
- ///
- /// 报警使能
- ///
- public uint AlarmEnable { get; set; }
- ///
- /// 事件使能
- ///
- public uint EventEnable { get; set; }
- ///
- /// 预留字段
- ///
- public byte Placeholder1 { get; set; }
- ///
- /// 障碍物报警距离阈值
- ///
- public byte DistanceThresholdObstacleAlarm { get; set; }
- ///
- /// 障碍物报警分级速度阈值
- ///
- public byte HierarchicalSpeedThresholdObstacleAlarm { get; set; }
- ///
- /// 障碍物报警前后视频录制时间
- ///
- public byte VideoRecordingTimeBeforeAndAfterObstacleAlarm { get; set; }
- ///
- /// 障碍物报警拍照张数
- ///
- public byte BarrierAlarmPhotographs { get; set; }
- ///
- /// 障碍物报警拍照间隔
- ///
- public byte ObstacleAlarmInterval { get; set; }
- ///
- /// 频繁变道报警判断时间段
- ///
- public byte FrequentChannelChangeAlarmJudgmentTimePeriod { get; set; }
-
- ///
- /// 频繁变道报警判断次数
- ///
- public byte FrequentAlarmJudgmentNumberChannelChange { get; set; }
- ///
- /// 频繁变道报警分级速度阈值
- ///
- public byte HierarchicalSpeedThresholdFrequentChannelChangeAlarm { get; set; }
- ///
- /// 频繁变道报警前后视频录制时间
- ///
- public byte VideoRecordingTimeBeforeAndAfterFrequentLaneChangeAlarm { get; set; }
- ///
- /// 频繁变道报警拍照张数
- ///
- public byte FrequentChannelChangeAlarmPhotos { get; set; }
- ///
- /// 频繁变道报警拍照间隔
- ///
- public byte FrequentLaneChangeAlarmInterval { get; set; }
- ///
- /// 车道偏离报警分级速度阈值
- ///
- public byte GradedSpeedThresholdLaneDeviationAlarm { get; set; }
- ///
- /// 车道偏离报警前后视频录制时间
- ///
- public byte VideoRecordingTimeBeforeAndAfterLaneDepartureAlarm { get; set; }
- ///
- /// 车道偏离报警拍照张数
- ///
- public byte LaneDepartureAlarmPhoto { get; set; }
- ///
- /// 车道偏离报警拍照间隔
- ///
- public byte LaneDepartureAlarmPhotoInterval { get; set; }
- ///
- /// 前向碰撞报警时间阈值
- ///
- public byte ForwardCollisionWarningTimeThreshold { get; set; }
- ///
- /// 前向碰撞报警分级速度阈值
- ///
- public byte HierarchicalSpeedThresholdForwardCollisionWarning { get; set; }
- ///
- /// 前向碰撞报警前后视频录制时间
- ///
- public byte VideoRecordingTimeBeforeAndAfterForwardCollisionAlarm { get; set; }
- ///
- /// 前向碰撞报警拍照张数
- ///
- public byte ForwardCollisionAlarmPhotographs { get; set; }
- ///
- /// 前向碰撞报警拍照间隔
- ///
- public byte ForwardCollisionAlarmInterval { get; set; }
- ///
- /// 行人碰撞报警时间阈值
- ///
- public byte PedestrianCollisionAlarmTimeThreshold { get; set; }
- ///
- /// 行人碰撞报警使能速度阈值
- ///
- public byte PedestrianCollisionAlarmEnablingSpeedThreshold { get; set; }
- ///
- /// 行人碰撞报警前后视频录制时间
- ///
- public byte VideoRecordingTimeBeforeAndAfterPedestrianCollisionAlarm { get; set; }
- ///
- /// 行人碰撞报警拍照张数
- ///
- public byte PedestrianCollisionAlarmPhotos { get; set; }
- ///
- /// 行人碰撞报警拍照间隔
- ///
- public byte PedestrianCollisionAlarmInterval { get; set; }
- ///
- /// 车距监控报警距离阈值
- ///
- public byte VehicleDistanceMonitoringAlarmDistanceThreshold { get; set; }
- ///
- /// 车距监控报警分级速度阈值
- ///
- public byte VehicleDistanceMonitoringAndAlarmClassificationSpeedThreshold { get; set; }
- ///
- /// 车距过近报警前后视频录制时间
- ///
- public byte VideoRecordingTimeBeforeAndAfterAlarmVehicleProximity { get; set; }
- ///
- /// 车距过近报警拍照张数
- ///
- public byte AlarmPhotoVehicleCloseDistance { get; set; }
- ///
- /// 车距过近报警拍照间隔
- ///
- public byte AlarmPhotoVehicleCloseDistanceInterval { get; set; }
- ///
- /// 道路标志识别拍照张数
- ///
- public byte RoadSignRecognitionPhotographs { get; set; }
- ///
- /// 道路标志识别拍照间隔
- ///
- public byte RoadSignRecognitionPhotographsInterval { get; set; }
- ///
- /// 保留字段
- ///
- public byte[] Placeholder2 { get; set; } = new byte[4];
- ///
- ///
- ///
- ///
- ///
- ///
- public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
- {
- JT808_0x8103_0xF364 value = new JT808_0x8103_0xF364();
- value.ParamId = reader.ReadUInt32();
- value.ParamLength = reader.ReadByte();
- writer.WriteNumber($"[{value.ParamId.ReadNumber()}]参数ID", value.ParamId);
- writer.WriteNumber($"[{value.ParamLength.ReadNumber()}]参数长度", value.ParamLength);
- value.AlarmJudgeSpeedThreshold = reader.ReadByte();
- writer.WriteNumber($"[{value.AlarmJudgeSpeedThreshold.ReadNumber()}]报警判断速度阈值", value.AlarmJudgeSpeedThreshold);
- value.WarningVolume = reader.ReadByte();
- writer.WriteNumber($"[{value.WarningVolume.ReadNumber()}]报警提示音量", value.WarningVolume);
- value.ActivePhotographyStrategy = reader.ReadByte();
- var activePhotographyStrategy = (ActivePhotographyStrategyType)ActivePhotographyStrategy;
- writer.WriteNumber($"[{value.ActivePhotographyStrategy.ReadNumber()}]主动拍照策略-{activePhotographyStrategy.ToString()}", value.ActivePhotographyStrategy);
- value.ActivelyTimePhotoInterval = reader.ReadUInt16();
- writer.WriteNumber($"[{value.ActivelyTimePhotoInterval.ReadNumber()}]主动定时拍照时间间隔", value.ActivelyTimePhotoInterval);
- value.ActiveDistancePhotographyDistanceInterval = reader.ReadUInt16();
- writer.WriteNumber($"[{value.ActiveDistancePhotographyDistanceInterval.ReadNumber()}]主动定距拍照距离间隔", value.ActiveDistancePhotographyDistanceInterval);
- value.SingleInitiativePhotos = reader.ReadByte();
- writer.WriteNumber($"[{value.SingleInitiativePhotos.ReadNumber()}]单次主动拍照张数", value.SingleInitiativePhotos);
- value.SingleInitiativePhotosInterval = reader.ReadByte();
- writer.WriteNumber($"[{value.SingleInitiativePhotosInterval.ReadNumber()}]单次主动拍照时间间隔", value.SingleInitiativePhotosInterval);
- value.PhotoResolution = reader.ReadByte();
- var photoResolutionType = (PhotoResolutionType)value.PhotoResolution;
- writer.WriteNumber($"[{value.PhotoResolution.ReadNumber()}]拍照分辨率-{photoResolutionType.ToString()}", value.PhotoResolution);
- value.VideoRecordingResolution = reader.ReadByte();
- var videoRecordingResolution = (VideoRecordingResolutionType)value.VideoRecordingResolution;
- writer.WriteNumber($"[{value.VideoRecordingResolution.ReadNumber()}]视频录制分辨率-{videoRecordingResolution.ToString()}", value.VideoRecordingResolution);
- value.AlarmEnable = reader.ReadUInt32();
- writer.WriteNumber($"[{value.AlarmEnable.ReadNumber()}]报警使能", value.AlarmEnable);
- var alarmEnableBits = Convert.ToString(value.AlarmEnable, 2).PadLeft(32, '0').AsSpan();
- writer.WriteStartObject("报警使能对象");
- writer.WriteString("[bit30~bit31]预留", alarmEnableBits.Slice(30,2).ToString());
- writer.WriteString("[bit17~bit29]用户自定义", alarmEnableBits.Slice(17, 13).ToString());
- writer.WriteString("[bit16]道路标识超限报警", alarmEnableBits[16]=='0'?"关闭":"打开");
- writer.WriteString("[bit12~bit15]道路标识超限报警", alarmEnableBits.Slice(12, 4).ToString());
- writer.WriteString("[bit11]车距过近二级报警", alarmEnableBits[11] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit10]车距过近一级报警", alarmEnableBits[10] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit9]行人碰撞二级报警", alarmEnableBits[9] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit8]行人碰撞一级报警", alarmEnableBits[8] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit7]前向碰撞二级报警", alarmEnableBits[7] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit6]前向碰撞一级报警", alarmEnableBits[6] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit5]车道偏离二级报警", alarmEnableBits[5] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit4]车道偏离一级报警", alarmEnableBits[4] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit3]频繁变道二级报警", alarmEnableBits[3] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit2]频繁变道一级报警", alarmEnableBits[2] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit1]障碍检测二级报警", alarmEnableBits[1] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit0]障碍检测一级报警", alarmEnableBits[0] == '0' ? "关闭" : "打开");
- writer.WriteEndObject();
- value.EventEnable = reader.ReadUInt32();
- writer.WriteNumber($"[{value.EventEnable.ReadNumber()}]事件使能", value.EventEnable);
- var eventEnableBits = Convert.ToString(value.EventEnable, 2).PadLeft(32, '0').AsSpan();
- writer.WriteStartObject("事件使能对象");
- writer.WriteString("[bit30~bit31]预留", eventEnableBits.Slice(30, 2).ToString());
- writer.WriteString("[bit2~bit29]用户自定义", alarmEnableBits.Slice(2, 28).ToString());
- writer.WriteString("[bit1]主动拍照", alarmEnableBits[1] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit0]道路标识识别", alarmEnableBits[0] == '0' ? "关闭" : "打开");
- writer.WriteEndObject();
- value.Placeholder1 = reader.ReadByte();
- writer.WriteNumber($"[{value.Placeholder1.ReadNumber()}]预留字段", value.Placeholder1);
- value.DistanceThresholdObstacleAlarm = reader.ReadByte();
- writer.WriteNumber($"[{value.DistanceThresholdObstacleAlarm.ReadNumber()}]障碍物报警距离阈值", value.DistanceThresholdObstacleAlarm);
- value.HierarchicalSpeedThresholdObstacleAlarm = reader.ReadByte();
- writer.WriteNumber($"[{value.HierarchicalSpeedThresholdObstacleAlarm.ReadNumber()}]障碍物报警分级速度阈值", value.HierarchicalSpeedThresholdObstacleAlarm);
- value.VideoRecordingTimeBeforeAndAfterObstacleAlarm = reader.ReadByte();
- writer.WriteNumber($"[{value.VideoRecordingTimeBeforeAndAfterObstacleAlarm.ReadNumber()}]障碍物报警前后视频录制时间", value.VideoRecordingTimeBeforeAndAfterObstacleAlarm);
- value.BarrierAlarmPhotographs = reader.ReadByte();
- writer.WriteNumber($"[{value.BarrierAlarmPhotographs.ReadNumber()}]障碍物报警拍照张数", value.BarrierAlarmPhotographs);
- value.ObstacleAlarmInterval = reader.ReadByte();
- writer.WriteNumber($"[{value.ObstacleAlarmInterval.ReadNumber()}]障碍物报警拍照间隔", value.ObstacleAlarmInterval);
- value.FrequentChannelChangeAlarmJudgmentTimePeriod = reader.ReadByte();
- writer.WriteNumber($"[{value.FrequentChannelChangeAlarmJudgmentTimePeriod.ReadNumber()}]频繁变道报警判断时间段", value.FrequentChannelChangeAlarmJudgmentTimePeriod);
- value.FrequentAlarmJudgmentNumberChannelChange = reader.ReadByte();
- writer.WriteNumber($"[{value.FrequentAlarmJudgmentNumberChannelChange.ReadNumber()}]频繁变道报警判断次数", value.FrequentAlarmJudgmentNumberChannelChange);
- value.HierarchicalSpeedThresholdFrequentChannelChangeAlarm = reader.ReadByte();
- writer.WriteNumber($"[{value.HierarchicalSpeedThresholdFrequentChannelChangeAlarm.ReadNumber()}]频繁变道报警分级速度阈值", value.HierarchicalSpeedThresholdFrequentChannelChangeAlarm);
- value.VideoRecordingTimeBeforeAndAfterFrequentLaneChangeAlarm = reader.ReadByte();
- writer.WriteNumber($"[{value.VideoRecordingTimeBeforeAndAfterFrequentLaneChangeAlarm.ReadNumber()}]频繁变道报警前后视频录制时间", value.VideoRecordingTimeBeforeAndAfterFrequentLaneChangeAlarm);
- value.FrequentChannelChangeAlarmPhotos = reader.ReadByte();
- writer.WriteNumber($"[{value.FrequentChannelChangeAlarmPhotos.ReadNumber()}]频繁变道报警拍照张数", value.FrequentChannelChangeAlarmPhotos);
- value.FrequentLaneChangeAlarmInterval = reader.ReadByte();
- writer.WriteNumber($"[{value.FrequentLaneChangeAlarmInterval.ReadNumber()}]频繁变道报警拍照间隔", value.FrequentLaneChangeAlarmInterval);
- value.GradedSpeedThresholdLaneDeviationAlarm = reader.ReadByte();
- writer.WriteNumber($"[{value.GradedSpeedThresholdLaneDeviationAlarm.ReadNumber()}]车道偏离报警分级速度阈值", value.GradedSpeedThresholdLaneDeviationAlarm);
- value.VideoRecordingTimeBeforeAndAfterLaneDepartureAlarm = reader.ReadByte();
- writer.WriteNumber($"[{value.VideoRecordingTimeBeforeAndAfterLaneDepartureAlarm.ReadNumber()}]车道偏离报警前后视频录制时间", value.VideoRecordingTimeBeforeAndAfterLaneDepartureAlarm);
- value.LaneDepartureAlarmPhoto = reader.ReadByte();
- writer.WriteNumber($"[{value.LaneDepartureAlarmPhoto.ReadNumber()}]车道偏离报警拍照张数", value.LaneDepartureAlarmPhoto);
- value.LaneDepartureAlarmPhotoInterval = reader.ReadByte();
- writer.WriteNumber($"[{value.LaneDepartureAlarmPhotoInterval.ReadNumber()}]车道偏离报警拍照间隔", value.LaneDepartureAlarmPhotoInterval);
- value.ForwardCollisionWarningTimeThreshold = reader.ReadByte();
- writer.WriteNumber($"[{value.ForwardCollisionWarningTimeThreshold.ReadNumber()}]前向碰撞报警时间阈值", value.ForwardCollisionWarningTimeThreshold);
- value.HierarchicalSpeedThresholdForwardCollisionWarning = reader.ReadByte();
- writer.WriteNumber($"[{value.HierarchicalSpeedThresholdForwardCollisionWarning.ReadNumber()}]前向碰撞报警分级速度阈值", value.HierarchicalSpeedThresholdForwardCollisionWarning);
- value.VideoRecordingTimeBeforeAndAfterForwardCollisionAlarm = reader.ReadByte();
- writer.WriteNumber($"[{value.VideoRecordingTimeBeforeAndAfterForwardCollisionAlarm.ReadNumber()}]前向碰撞报警前后视频录制时间", value.VideoRecordingTimeBeforeAndAfterForwardCollisionAlarm);
- value.ForwardCollisionAlarmPhotographs = reader.ReadByte();
- writer.WriteNumber($"[{value.ForwardCollisionAlarmPhotographs.ReadNumber()}]前向碰撞报警拍照张数", value.ForwardCollisionAlarmPhotographs);
- value.ForwardCollisionAlarmInterval = reader.ReadByte();
- writer.WriteNumber($"[{value.ForwardCollisionAlarmInterval.ReadNumber()}]前向碰撞报警拍照间隔", value.ForwardCollisionAlarmInterval);
- value.PedestrianCollisionAlarmTimeThreshold = reader.ReadByte();
- writer.WriteNumber($"[{value.PedestrianCollisionAlarmTimeThreshold.ReadNumber()}]行人碰撞报警时间阈值", value.PedestrianCollisionAlarmTimeThreshold);
- value.PedestrianCollisionAlarmEnablingSpeedThreshold = reader.ReadByte();
- writer.WriteNumber($"[{value.PedestrianCollisionAlarmEnablingSpeedThreshold.ReadNumber()}]行人碰撞报警使能速度阈值", value.PedestrianCollisionAlarmEnablingSpeedThreshold);
- value.VideoRecordingTimeBeforeAndAfterPedestrianCollisionAlarm = reader.ReadByte();
- writer.WriteNumber($"[{value.VideoRecordingTimeBeforeAndAfterPedestrianCollisionAlarm.ReadNumber()}]行人碰撞报警前后视频录制时间", value.VideoRecordingTimeBeforeAndAfterPedestrianCollisionAlarm);
- value.PedestrianCollisionAlarmPhotos = reader.ReadByte();
- writer.WriteNumber($"[{value.PedestrianCollisionAlarmPhotos.ReadNumber()}]行人碰撞报警拍照张数", value.PedestrianCollisionAlarmPhotos);
- value.PedestrianCollisionAlarmInterval = reader.ReadByte();
- writer.WriteNumber($"[{value.PedestrianCollisionAlarmInterval.ReadNumber()}]行人碰撞报警拍照间隔", value.PedestrianCollisionAlarmInterval);
- value.VehicleDistanceMonitoringAlarmDistanceThreshold = reader.ReadByte();
- writer.WriteNumber($"[{value.VehicleDistanceMonitoringAlarmDistanceThreshold.ReadNumber()}]车距监控报警距离阈值", value.VehicleDistanceMonitoringAlarmDistanceThreshold);
- value.VehicleDistanceMonitoringAndAlarmClassificationSpeedThreshold = reader.ReadByte();
- writer.WriteNumber($"[{value.VehicleDistanceMonitoringAndAlarmClassificationSpeedThreshold.ReadNumber()}]车距监控报警分级速度阈值", value.VehicleDistanceMonitoringAndAlarmClassificationSpeedThreshold);
- value.VideoRecordingTimeBeforeAndAfterAlarmVehicleProximity = reader.ReadByte();
- writer.WriteNumber($"[{value.VideoRecordingTimeBeforeAndAfterAlarmVehicleProximity.ReadNumber()}]车距过近报警前后视频录制时间", value.VideoRecordingTimeBeforeAndAfterAlarmVehicleProximity);
- value.AlarmPhotoVehicleCloseDistance = reader.ReadByte();
- writer.WriteNumber($"[{value.AlarmPhotoVehicleCloseDistance.ReadNumber()}]车距过近报警拍照张数", value.AlarmPhotoVehicleCloseDistance);
- value.AlarmPhotoVehicleCloseDistanceInterval = reader.ReadByte();
- writer.WriteNumber($"[{value.AlarmPhotoVehicleCloseDistanceInterval.ReadNumber()}]车距过近报警拍照间隔", value.AlarmPhotoVehicleCloseDistanceInterval);
- value.RoadSignRecognitionPhotographs = reader.ReadByte();
- writer.WriteNumber($"[{value.RoadSignRecognitionPhotographs.ReadNumber()}]道路标志识别拍照张数", value.RoadSignRecognitionPhotographs);
- value.RoadSignRecognitionPhotographsInterval = reader.ReadByte();
- writer.WriteNumber($"[{value.RoadSignRecognitionPhotographsInterval.ReadNumber()}]道路标志识别拍照间隔", value.RoadSignRecognitionPhotographsInterval);
- value.Placeholder2 = reader.ReadArray(4).ToArray();
- writer.WriteString("保留字段", value.Placeholder2.ToHexString());
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public JT808_0x8103_0xF364 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
- {
- JT808_0x8103_0xF364 value = new JT808_0x8103_0xF364();
- value.ParamId = reader.ReadUInt32();
- value.ParamLength = reader.ReadByte();
- value.AlarmJudgeSpeedThreshold = reader.ReadByte();
- value.WarningVolume = reader.ReadByte();
- value.ActivePhotographyStrategy = reader.ReadByte();
- value.ActivelyTimePhotoInterval = reader.ReadUInt16();
- value.ActiveDistancePhotographyDistanceInterval = reader.ReadUInt16();
- value.SingleInitiativePhotos = reader.ReadByte();
- value.SingleInitiativePhotosInterval = reader.ReadByte();
- value.PhotoResolution = reader.ReadByte();
- value.VideoRecordingResolution = reader.ReadByte();
- value.AlarmEnable = reader.ReadUInt32();
- value.EventEnable = reader.ReadUInt32();
- value.Placeholder1 = reader.ReadByte();
- value.DistanceThresholdObstacleAlarm = reader.ReadByte();
- value.HierarchicalSpeedThresholdObstacleAlarm = reader.ReadByte();
- value.VideoRecordingTimeBeforeAndAfterObstacleAlarm = reader.ReadByte();
- value.BarrierAlarmPhotographs = reader.ReadByte();
- value.ObstacleAlarmInterval = reader.ReadByte();
- value.FrequentChannelChangeAlarmJudgmentTimePeriod = reader.ReadByte();
- value.FrequentAlarmJudgmentNumberChannelChange = reader.ReadByte();
- value.HierarchicalSpeedThresholdFrequentChannelChangeAlarm = reader.ReadByte();
- value.VideoRecordingTimeBeforeAndAfterFrequentLaneChangeAlarm = reader.ReadByte();
- value.FrequentChannelChangeAlarmPhotos = reader.ReadByte();
- value.FrequentLaneChangeAlarmInterval = reader.ReadByte();
- value.GradedSpeedThresholdLaneDeviationAlarm = reader.ReadByte();
- value.VideoRecordingTimeBeforeAndAfterLaneDepartureAlarm = reader.ReadByte();
- value.LaneDepartureAlarmPhoto = reader.ReadByte();
- value.LaneDepartureAlarmPhotoInterval = reader.ReadByte();
- value.ForwardCollisionWarningTimeThreshold = reader.ReadByte();
- value.HierarchicalSpeedThresholdForwardCollisionWarning = reader.ReadByte();
- value.VideoRecordingTimeBeforeAndAfterForwardCollisionAlarm = reader.ReadByte();
- value.ForwardCollisionAlarmPhotographs = reader.ReadByte();
- value.ForwardCollisionAlarmInterval = reader.ReadByte();
- value.PedestrianCollisionAlarmTimeThreshold = reader.ReadByte();
- value.PedestrianCollisionAlarmEnablingSpeedThreshold = reader.ReadByte();
- value.VideoRecordingTimeBeforeAndAfterPedestrianCollisionAlarm = reader.ReadByte();
- value.PedestrianCollisionAlarmPhotos = reader.ReadByte();
- value.PedestrianCollisionAlarmInterval = reader.ReadByte();
- value.VehicleDistanceMonitoringAlarmDistanceThreshold = reader.ReadByte();
- value.VehicleDistanceMonitoringAndAlarmClassificationSpeedThreshold = reader.ReadByte();
- value.VideoRecordingTimeBeforeAndAfterAlarmVehicleProximity = reader.ReadByte();
- value.AlarmPhotoVehicleCloseDistance = reader.ReadByte();
- value.AlarmPhotoVehicleCloseDistanceInterval = reader.ReadByte();
- value.RoadSignRecognitionPhotographs = reader.ReadByte();
- value.RoadSignRecognitionPhotographsInterval = reader.ReadByte();
- value.Placeholder2 = reader.ReadArray(4).ToArray();
- return value;
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8103_0xF364 value, IJT808Config config)
- {
- writer.WriteUInt32(value.ParamId);
- writer.Skip(1, out int ParamLengthPosition);
- writer.WriteByte(value.AlarmJudgeSpeedThreshold);
- writer.WriteByte(value.WarningVolume);
- writer.WriteByte(value.ActivePhotographyStrategy);
- writer.WriteUInt16(value.ActivelyTimePhotoInterval);
- writer.WriteUInt16(value.ActiveDistancePhotographyDistanceInterval);
- writer.WriteByte(value.SingleInitiativePhotos);
- writer.WriteByte(value.SingleInitiativePhotosInterval);
- writer.WriteByte(value.PhotoResolution);
- writer.WriteByte(value.VideoRecordingResolution);
- writer.WriteUInt32(value.AlarmEnable);
- writer.WriteUInt32(value.EventEnable);
- writer.WriteByte(value.Placeholder1);
- writer.WriteByte(value.DistanceThresholdObstacleAlarm);
- writer.WriteByte(value.HierarchicalSpeedThresholdObstacleAlarm);
- writer.WriteByte(value.VideoRecordingTimeBeforeAndAfterObstacleAlarm);
- writer.WriteByte(value.BarrierAlarmPhotographs);
- writer.WriteByte(value.ObstacleAlarmInterval);
- writer.WriteByte(value.FrequentChannelChangeAlarmJudgmentTimePeriod);
- writer.WriteByte(value.FrequentAlarmJudgmentNumberChannelChange);
- writer.WriteByte(value.HierarchicalSpeedThresholdFrequentChannelChangeAlarm);
- writer.WriteByte(value.VideoRecordingTimeBeforeAndAfterFrequentLaneChangeAlarm);
- writer.WriteByte(value.FrequentChannelChangeAlarmPhotos);
- writer.WriteByte(value.FrequentLaneChangeAlarmInterval);
- writer.WriteByte(value.GradedSpeedThresholdLaneDeviationAlarm);
- writer.WriteByte(value.VideoRecordingTimeBeforeAndAfterLaneDepartureAlarm);
- writer.WriteByte(value.LaneDepartureAlarmPhoto);
- writer.WriteByte(value.LaneDepartureAlarmPhotoInterval);
- writer.WriteByte(value.ForwardCollisionWarningTimeThreshold);
- writer.WriteByte(value.HierarchicalSpeedThresholdForwardCollisionWarning);
- writer.WriteByte(value.VideoRecordingTimeBeforeAndAfterForwardCollisionAlarm);
- writer.WriteByte(value.ForwardCollisionAlarmPhotographs);
- writer.WriteByte(value.ForwardCollisionAlarmInterval);
- writer.WriteByte(value.PedestrianCollisionAlarmTimeThreshold);
- writer.WriteByte(value.PedestrianCollisionAlarmEnablingSpeedThreshold);
- writer.WriteByte(value.VideoRecordingTimeBeforeAndAfterPedestrianCollisionAlarm);
- writer.WriteByte(value.PedestrianCollisionAlarmPhotos);
- writer.WriteByte(value.PedestrianCollisionAlarmInterval);
- writer.WriteByte(value.VehicleDistanceMonitoringAlarmDistanceThreshold);
- writer.WriteByte(value.VehicleDistanceMonitoringAndAlarmClassificationSpeedThreshold);
- writer.WriteByte(value.VideoRecordingTimeBeforeAndAfterAlarmVehicleProximity);
- writer.WriteByte(value.AlarmPhotoVehicleCloseDistance);
- writer.WriteByte(value.AlarmPhotoVehicleCloseDistanceInterval);
- writer.WriteByte(value.RoadSignRecognitionPhotographs);
- writer.WriteByte(value.RoadSignRecognitionPhotographsInterval);
- writer.WriteArray(value.Placeholder2);
- writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - ParamLengthPosition - 1), ParamLengthPosition);
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF365.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF365.cs
deleted file mode 100644
index d082995..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF365.cs
+++ /dev/null
@@ -1,365 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.Enums;
-using JT808.Protocol.Formatters;
-using JT808.Protocol.Interfaces;
-using JT808.Protocol.MessageBody;
-using JT808.Protocol.MessagePack;
-using System;
-using System.Text.Json;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
-{
- ///
- /// 驾驶员状态监测系统参数
- ///
- public class JT808_0x8103_0xF365 : JT808_0x8103_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
- {
- ///
- /// 驾驶员状态监测系统参数
- ///
- public override uint ParamId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X8103_0xF365;
- ///
- /// 驾驶员状态监测系统参数长度
- ///
- public override byte ParamLength { get; set; }
- ///
- /// 报警判断速度阈值
- ///
- public byte AlarmJudgeSpeedThreshold { get; set; }
- ///
- /// 报警提示音量
- ///
- public byte WarningVolume { get; set; }
- ///
- /// 主动拍照策略
- ///
- public byte ActivePhotographyStrategy { get; set; }
- ///
- /// 主动定时拍照时间间隔
- ///
- public ushort ActivelyTimePhotoInterval { get; set; }
- ///
- /// 主动定距拍照距离间隔
- ///
- public ushort ActiveDistancePhotographyDistanceInterval { get; set; }
- ///
- /// 单次主动拍照张数
- ///
- public byte SingleInitiativePhotos { get; set; }
- ///
- /// 单次主动拍照时间间隔
- ///
- public byte SingleInitiativePhotosInterval { get; set; }
- ///
- /// 拍照分辨率
- ///
- public byte PhotoResolution { get; set; }
- ///
- /// 视频录制分辨率
- ///
- public byte VideoRecordingResolution { get; set; }
- ///
- /// 报警使能
- ///
- public uint AlarmEnable { get; set; }
- ///
- /// 事件使能
- ///
- public uint EventEnable { get; set; }
- ///
- /// 吸烟报警判断时间间隔
- ///
- public ushort TimeIntervalSmokingAlarmJudgment { get; set; }
- ///
- /// 接打电话报警判断时间间隔
- ///
- public ushort CallAlarmDetermineTimeInterval{ get; set; }
- ///
- /// 预留字段
- ///
- public byte[] Reserve { get; set; } = new byte[3];
- ///
- /// 疲劳驾驶报警分级速度阈值
- ///
- public byte GradedSpeedThresholdFatigueDrivingAlarm { get; set; }
- ///
- /// 疲劳驾驶报警前后视频录制时间
- ///
- public byte VideoRecordingTimeBeforeAndAfterFatigueDrivingAlarm { get; set; }
- ///
- /// 疲劳驾驶报警拍照张数
- ///
- public byte FatigueDrivingAlarmPhotograph { get; set; }
- ///
- /// 疲劳驾驶报警拍照间隔时间
- ///
- public byte FatigueDrivingAlarmPhotographInterval { get; set; }
- ///
- /// 接打电话报警分级速度阈值
- ///
- public byte ClassifiedSpeedThresholdCallAlarm{ get; set; }
- ///
- /// 接打电话报警前后视频录制时间
- ///
- public byte VideoRecordingTimeBeforeAndAfterCallAlarm{ get; set; }
- ///
- /// 接打电话报警拍驾驶员面部特征照片张数
- ///
- public byte CallAlarmTakePicturesDriverFacialFeatures{ get; set; }
- ///
- /// 接打电话报警拍驾驶员面部特征照片间隔时间
- ///
- public byte CallAlarmTakePicturesDriverFacialFeaturesInterval { get; set; }
- ///
- /// 抽烟报警分级车速阈值
- ///
- public byte ClassifiedSpeedThresholdSmokingAlarm{ get; set; }
- ///
- /// 抽烟报警前后视频录制时间
- ///
- public byte VideoRecordingTimeBeforeAndAfterSmokingAlarm{ get; set; }
- ///
- /// 抽烟报警拍驾驶员面部特征照片张数
- ///
- public byte SmokingAlarmPhotographsDriverFaceCharacteristics { get; set; }
- ///
- /// 抽烟报警拍驾驶员面部特征照片间隔时间
- ///
- public byte SmokingAlarmPhotographsDriverFaceCharacteristicsInterval { get; set; }
- ///
- /// 分神驾驶报警分级车速阈值
- ///
- public byte ClassifiedSpeedThresholdDistractedDrivingAlarm { get; set; }
- ///
- /// 分神驾驶报警拍照张数
- ///
- public byte DistractedDrivingAlarmPhotography{ get; set; }
- ///
- /// 分神驾驶报警拍照间隔时间
- ///
- public byte DistractedDrivingAlarmPhotographyInterval { get; set; }
- ///
- /// 驾驶行为异常视频录制时间
- ///
- public byte VideoRecordingTimeAbnormalDrivingBehavior{ get; set; }
- ///
- /// 驾驶行为异常抓拍照片张数
- ///
- public byte PhotographsAbnormalDrivingBehavior{ get; set; }
- ///
- /// 驾驶行为异常拍照间隔
- ///
- public byte PictureIntervalAbnormalDrivingBehavior{ get; set; }
- ///
- /// 驾驶员身份识别触发
- ///
- public byte DriverIdentificationTrigger { get; set; }
- ///
- /// 保留字段
- ///
- public byte[] Retain { get; set; } = new byte[2];
- ///
- ///
- ///
- ///
- ///
- ///
- public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
- {
- JT808_0x8103_0xF365 value = new JT808_0x8103_0xF365();
- value.ParamId = reader.ReadUInt32();
- value.ParamLength = reader.ReadByte();
- writer.WriteNumber($"[{value.ParamId.ReadNumber()}]参数ID", value.ParamId);
- writer.WriteNumber($"[{value.ParamLength.ReadNumber()}]参数长度", value.ParamLength);
- value.AlarmJudgeSpeedThreshold = reader.ReadByte();
- writer.WriteNumber($"[{value.AlarmJudgeSpeedThreshold.ReadNumber()}]报警判断速度阈值", value.AlarmJudgeSpeedThreshold);
- value.WarningVolume = reader.ReadByte();
- writer.WriteNumber($"[{value.WarningVolume.ReadNumber()}]报警提示音量", value.WarningVolume);
- value.ActivePhotographyStrategy = reader.ReadByte();
- var activePhotographyStrategy = (ActivePhotographyStrategyType)ActivePhotographyStrategy;
- writer.WriteNumber($"[{value.ActivePhotographyStrategy.ReadNumber()}]主动拍照策略-{activePhotographyStrategy.ToString()}", value.ActivePhotographyStrategy);
- value.ActivelyTimePhotoInterval = reader.ReadUInt16();
- writer.WriteNumber($"[{value.ActivelyTimePhotoInterval.ReadNumber()}]主动定时拍照时间间隔", value.ActivelyTimePhotoInterval);
- value.ActiveDistancePhotographyDistanceInterval = reader.ReadUInt16();
- writer.WriteNumber($"[{value.ActiveDistancePhotographyDistanceInterval.ReadNumber()}]主动定距拍照距离间隔", value.ActiveDistancePhotographyDistanceInterval);
- value.SingleInitiativePhotos = reader.ReadByte();
- writer.WriteNumber($"[{value.SingleInitiativePhotos.ReadNumber()}]单次主动拍照张数", value.SingleInitiativePhotos);
- value.SingleInitiativePhotosInterval = reader.ReadByte();
- writer.WriteNumber($"[{value.SingleInitiativePhotosInterval.ReadNumber()}]单次主动拍照时间间隔", value.SingleInitiativePhotosInterval);
- value.PhotoResolution = reader.ReadByte();
- var photoResolutionType = (PhotoResolutionType)value.PhotoResolution;
- writer.WriteNumber($"[{value.PhotoResolution.ReadNumber()}]拍照分辨率-{photoResolutionType.ToString()}", value.PhotoResolution);
- value.VideoRecordingResolution = reader.ReadByte();
- var videoRecordingResolution = (VideoRecordingResolutionType)value.VideoRecordingResolution;
- writer.WriteNumber($"[{value.VideoRecordingResolution.ReadNumber()}]视频录制分辨率-{videoRecordingResolution.ToString()}", value.VideoRecordingResolution);
- value.AlarmEnable = reader.ReadUInt32();
- writer.WriteNumber($"[{value.AlarmEnable.ReadNumber()}]报警使能", value.AlarmEnable);
- var alarmEnableBits = Convert.ToString(value.AlarmEnable, 2).PadLeft(32, '0').AsSpan();
- writer.WriteStartObject("报警使能对象");
- writer.WriteString("[bit30~bit31]预留", alarmEnableBits.Slice(30, 2).ToString());
- writer.WriteString("[bit17~bit29]用户自定义", alarmEnableBits.Slice(17, 13).ToString());
- writer.WriteString("[bit16]道路标识超限报警", alarmEnableBits[16] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit12~bit15]道路标识超限报警", alarmEnableBits.Slice(12, 4).ToString());
- writer.WriteString("[bit11]车距过近二级报警", alarmEnableBits[11] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit10]车距过近一级报警", alarmEnableBits[10] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit9]行人碰撞二级报警", alarmEnableBits[9] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit8]行人碰撞一级报警", alarmEnableBits[8] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit7]前向碰撞二级报警", alarmEnableBits[7] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit6]前向碰撞一级报警", alarmEnableBits[6] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit5]车道偏离二级报警", alarmEnableBits[5] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit4]车道偏离一级报警", alarmEnableBits[4] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit3]频繁变道二级报警", alarmEnableBits[3] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit2]频繁变道一级报警", alarmEnableBits[2] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit1]障碍检测二级报警", alarmEnableBits[1] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit0]障碍检测一级报警", alarmEnableBits[0] == '0' ? "关闭" : "打开");
- writer.WriteEndObject();
- value.EventEnable = reader.ReadUInt32();
- writer.WriteNumber($"[{value.EventEnable.ReadNumber()}]事件使能", value.EventEnable);
- var eventEnableBits = Convert.ToString(value.EventEnable, 2).PadLeft(32, '0').AsSpan();
- writer.WriteStartObject("事件使能对象");
- writer.WriteString("[bit30~bit31]预留", eventEnableBits.Slice(30, 2).ToString());
- writer.WriteString("[bit2~bit29]用户自定义", alarmEnableBits.Slice(2, 28).ToString());
- writer.WriteString("[bit1]主动拍照", alarmEnableBits[1] == '0' ? "关闭" : "打开");
- writer.WriteString("[bit0]道路标识识别", alarmEnableBits[0] == '0' ? "关闭" : "打开");
- writer.WriteEndObject();
- value.TimeIntervalSmokingAlarmJudgment = reader.ReadUInt16();
- writer.WriteNumber($"[{value.TimeIntervalSmokingAlarmJudgment.ReadNumber()}]吸烟报警判断时间间隔", value.TimeIntervalSmokingAlarmJudgment);
- value.CallAlarmDetermineTimeInterval = reader.ReadUInt16();
- writer.WriteNumber($"[{value.CallAlarmDetermineTimeInterval.ReadNumber()}]接打电话报警判断时间间隔", value.CallAlarmDetermineTimeInterval);
- value.Reserve = reader.ReadArray(3).ToArray();
- writer.WriteString("预留字段", value.Reserve.ToHexString());
- value.GradedSpeedThresholdFatigueDrivingAlarm = reader.ReadByte();
- writer.WriteNumber($"[{value.GradedSpeedThresholdFatigueDrivingAlarm.ReadNumber()}]疲劳驾驶报警分级速度阈值", value.GradedSpeedThresholdFatigueDrivingAlarm);
- value.VideoRecordingTimeBeforeAndAfterFatigueDrivingAlarm = reader.ReadByte();
- writer.WriteNumber($"[{value.VideoRecordingTimeBeforeAndAfterFatigueDrivingAlarm.ReadNumber()}]疲劳驾驶报警前后视频录制时间", value.VideoRecordingTimeBeforeAndAfterFatigueDrivingAlarm);
- value.FatigueDrivingAlarmPhotograph = reader.ReadByte();
- writer.WriteNumber($"[{value.FatigueDrivingAlarmPhotograph.ReadNumber()}]疲劳驾驶报警拍照张数", value.FatigueDrivingAlarmPhotograph);
- value.FatigueDrivingAlarmPhotographInterval = reader.ReadByte();
- writer.WriteNumber($"[{value.FatigueDrivingAlarmPhotographInterval.ReadNumber()}]疲劳驾驶报警拍照间隔时间", value.FatigueDrivingAlarmPhotographInterval);
- value.ClassifiedSpeedThresholdCallAlarm = reader.ReadByte();
- writer.WriteNumber($"[{value.ClassifiedSpeedThresholdCallAlarm.ReadNumber()}]接打电话报警分级速度阈值", value.ClassifiedSpeedThresholdCallAlarm);
- value.VideoRecordingTimeBeforeAndAfterCallAlarm = reader.ReadByte();
- writer.WriteNumber($"[{value.VideoRecordingTimeBeforeAndAfterCallAlarm.ReadNumber()}]接打电话报警前后视频录制时间", value.VideoRecordingTimeBeforeAndAfterCallAlarm);
- value.CallAlarmTakePicturesDriverFacialFeatures = reader.ReadByte();
- writer.WriteNumber($"[{value.CallAlarmTakePicturesDriverFacialFeatures.ReadNumber()}]接打电话报警拍驾驶员面部特征照片张数", value.CallAlarmTakePicturesDriverFacialFeatures);
- value.CallAlarmTakePicturesDriverFacialFeaturesInterval = reader.ReadByte();
- writer.WriteNumber($"[{value.CallAlarmTakePicturesDriverFacialFeaturesInterval.ReadNumber()}]接打电话报警拍驾驶员面部特征照片间隔时间", value.CallAlarmTakePicturesDriverFacialFeaturesInterval);
- value.ClassifiedSpeedThresholdSmokingAlarm = reader.ReadByte();
- writer.WriteNumber($"[{value.ClassifiedSpeedThresholdSmokingAlarm.ReadNumber()}]抽烟报警分级车速阈值", value.ClassifiedSpeedThresholdSmokingAlarm);
- value.VideoRecordingTimeBeforeAndAfterSmokingAlarm = reader.ReadByte();
- writer.WriteNumber($"[{value.VideoRecordingTimeBeforeAndAfterSmokingAlarm.ReadNumber()}]抽烟报警前后视频录制时间", value.VideoRecordingTimeBeforeAndAfterSmokingAlarm);
- value.SmokingAlarmPhotographsDriverFaceCharacteristics = reader.ReadByte();
- writer.WriteNumber($"[{value.SmokingAlarmPhotographsDriverFaceCharacteristics.ReadNumber()}]抽烟报警拍驾驶员面部特征照片张数", value.SmokingAlarmPhotographsDriverFaceCharacteristics);
- value.SmokingAlarmPhotographsDriverFaceCharacteristicsInterval = reader.ReadByte();
- writer.WriteNumber($"[{value.SmokingAlarmPhotographsDriverFaceCharacteristicsInterval.ReadNumber()}]抽烟报警拍驾驶员面部特征照片间隔时间", value.SmokingAlarmPhotographsDriverFaceCharacteristicsInterval);
- value.ClassifiedSpeedThresholdDistractedDrivingAlarm = reader.ReadByte();
- writer.WriteNumber($"[{value.ClassifiedSpeedThresholdDistractedDrivingAlarm.ReadNumber()}]分神驾驶报警分级车速阈值", value.ClassifiedSpeedThresholdDistractedDrivingAlarm);
- value.DistractedDrivingAlarmPhotography = reader.ReadByte();
- writer.WriteNumber($"[{value.DistractedDrivingAlarmPhotography.ReadNumber()}]分神驾驶报警拍照张数", value.DistractedDrivingAlarmPhotography);
- value.DistractedDrivingAlarmPhotographyInterval = reader.ReadByte();
- writer.WriteNumber($"[{value.DistractedDrivingAlarmPhotographyInterval.ReadNumber()}]分神驾驶报警拍照间隔时间", value.DistractedDrivingAlarmPhotographyInterval);
- value.VideoRecordingTimeAbnormalDrivingBehavior = reader.ReadByte();
- writer.WriteNumber($"[{value.VideoRecordingTimeAbnormalDrivingBehavior.ReadNumber()}]驾驶行为异常视频录制时间", value.VideoRecordingTimeAbnormalDrivingBehavior);
- value.PhotographsAbnormalDrivingBehavior = reader.ReadByte();
- writer.WriteNumber($"[{value.PhotographsAbnormalDrivingBehavior.ReadNumber()}]驾驶行为异常抓拍照片张数", value.PhotographsAbnormalDrivingBehavior);
- value.PictureIntervalAbnormalDrivingBehavior = reader.ReadByte();
- writer.WriteNumber($"[{value.PictureIntervalAbnormalDrivingBehavior.ReadNumber()}]驾驶行为异常拍照间隔", value.PictureIntervalAbnormalDrivingBehavior);
- value.DriverIdentificationTrigger = reader.ReadByte();
- writer.WriteNumber($"[{value.DriverIdentificationTrigger.ReadNumber()}]驾驶员身份识别触发", value.DriverIdentificationTrigger);
- value.Retain = reader.ReadArray(reader.ReadCurrentRemainContentLength()).ToArray();
- writer.WriteString("保留字段", value.Retain.ToHexString());
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public JT808_0x8103_0xF365 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
- {
- JT808_0x8103_0xF365 value = new JT808_0x8103_0xF365();
- value.ParamId = reader.ReadUInt32();
- value.ParamLength = reader.ReadByte();
- value.AlarmJudgeSpeedThreshold = reader.ReadByte();
- value.WarningVolume = reader.ReadByte();
- value.ActivePhotographyStrategy = reader.ReadByte();
- value.ActivelyTimePhotoInterval = reader.ReadUInt16();
- value.ActiveDistancePhotographyDistanceInterval = reader.ReadUInt16();
- value.SingleInitiativePhotos = reader.ReadByte();
- value.SingleInitiativePhotosInterval = reader.ReadByte();
- value.PhotoResolution = reader.ReadByte();
- value.VideoRecordingResolution = reader.ReadByte();
- value.AlarmEnable = reader.ReadUInt32();
- value.EventEnable = reader.ReadUInt32();
- value.TimeIntervalSmokingAlarmJudgment = reader.ReadUInt16();
- value.CallAlarmDetermineTimeInterval = reader.ReadUInt16();
- value.Reserve = reader.ReadArray(3).ToArray();
- value.GradedSpeedThresholdFatigueDrivingAlarm = reader.ReadByte();
- value.VideoRecordingTimeBeforeAndAfterFatigueDrivingAlarm = reader.ReadByte();
- value.FatigueDrivingAlarmPhotograph = reader.ReadByte();
- value.FatigueDrivingAlarmPhotographInterval = reader.ReadByte();
- value.ClassifiedSpeedThresholdCallAlarm = reader.ReadByte();
- value.VideoRecordingTimeBeforeAndAfterCallAlarm = reader.ReadByte();
- value.CallAlarmTakePicturesDriverFacialFeatures = reader.ReadByte();
- value.CallAlarmTakePicturesDriverFacialFeaturesInterval = reader.ReadByte();
- value.ClassifiedSpeedThresholdSmokingAlarm = reader.ReadByte();
- value.VideoRecordingTimeBeforeAndAfterSmokingAlarm = reader.ReadByte();
- value.SmokingAlarmPhotographsDriverFaceCharacteristics = reader.ReadByte();
- value.SmokingAlarmPhotographsDriverFaceCharacteristicsInterval = reader.ReadByte();
- value.ClassifiedSpeedThresholdDistractedDrivingAlarm = reader.ReadByte();
- value.DistractedDrivingAlarmPhotography = reader.ReadByte();
- value.DistractedDrivingAlarmPhotographyInterval = reader.ReadByte();
- value.VideoRecordingTimeAbnormalDrivingBehavior = reader.ReadByte();
- value.PhotographsAbnormalDrivingBehavior = reader.ReadByte();
- value.PictureIntervalAbnormalDrivingBehavior = reader.ReadByte();
- value.DriverIdentificationTrigger = reader.ReadByte();
- value.Retain = reader.ReadArray(reader.ReadCurrentRemainContentLength()).ToArray();
- return value;
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8103_0xF365 value, IJT808Config config)
- {
- writer.WriteUInt32(value.ParamId);
- writer.Skip(1, out int ParamLengthPosition);
- writer.WriteByte(value.AlarmJudgeSpeedThreshold);
- writer.WriteByte(value.WarningVolume);
- writer.WriteByte(value.ActivePhotographyStrategy);
- writer.WriteUInt16(value.ActivelyTimePhotoInterval);
- writer.WriteUInt16(value.ActiveDistancePhotographyDistanceInterval);
- writer.WriteByte(value.SingleInitiativePhotos);
- writer.WriteByte(value.SingleInitiativePhotosInterval);
- writer.WriteByte(value.PhotoResolution);
- writer.WriteByte(value.VideoRecordingResolution);
- writer.WriteUInt32(value.AlarmEnable);
- writer.WriteUInt32(value.EventEnable);
- writer.WriteUInt16(value.TimeIntervalSmokingAlarmJudgment);
- writer.WriteUInt16(value.CallAlarmDetermineTimeInterval);
- writer.WriteArray(value.Reserve);
- writer.WriteByte(value.GradedSpeedThresholdFatigueDrivingAlarm);
- writer.WriteByte(value.VideoRecordingTimeBeforeAndAfterFatigueDrivingAlarm);
- writer.WriteByte(value.FatigueDrivingAlarmPhotograph);
- writer.WriteByte(value.FatigueDrivingAlarmPhotographInterval);
- writer.WriteByte(value.ClassifiedSpeedThresholdCallAlarm);
- writer.WriteByte(value.VideoRecordingTimeBeforeAndAfterCallAlarm);
- writer.WriteByte(value.CallAlarmTakePicturesDriverFacialFeatures);
- writer.WriteByte(value.CallAlarmTakePicturesDriverFacialFeaturesInterval);
- writer.WriteByte(value.ClassifiedSpeedThresholdSmokingAlarm);
- writer.WriteByte(value.VideoRecordingTimeBeforeAndAfterSmokingAlarm);
- writer.WriteByte(value.SmokingAlarmPhotographsDriverFaceCharacteristics);
- writer.WriteByte(value.SmokingAlarmPhotographsDriverFaceCharacteristicsInterval);
- writer.WriteByte(value.ClassifiedSpeedThresholdDistractedDrivingAlarm);
- writer.WriteByte(value.DistractedDrivingAlarmPhotography);
- writer.WriteByte(value.DistractedDrivingAlarmPhotographyInterval);
- writer.WriteByte(value.VideoRecordingTimeAbnormalDrivingBehavior);
- writer.WriteByte(value.PhotographsAbnormalDrivingBehavior);
- writer.WriteByte(value.PictureIntervalAbnormalDrivingBehavior);
- writer.WriteByte(value.DriverIdentificationTrigger);
- writer.WriteArray(value.Retain);
- writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - ParamLengthPosition - 1), ParamLengthPosition);
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF366.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF366.cs
deleted file mode 100644
index 649c5b2..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF366.cs
+++ /dev/null
@@ -1,151 +0,0 @@
-using JT808.Protocol.Formatters;
-using JT808.Protocol.Interfaces;
-using JT808.Protocol.MessageBody;
-using JT808.Protocol.MessagePack;
-using System.Text.Json;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
-{
- ///
- /// 胎压监测系统参数
- ///
- public class JT808_0x8103_0xF366 : JT808_0x8103_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
- {
- ///
- /// 胎压监测系统参数Id
- ///
- public override uint ParamId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X8103_0xF366;
- ///
- /// 胎压监测系统参数长度
- ///
- public override byte ParamLength { get; set; } = 46;
- ///
- /// 轮胎规格型号 12位
- ///
- public string TyreSpecificationType { get; set; }
- ///
- /// 胎压单位
- ///
- public ushort TyrePressureUnit { get; set; }
- ///
- /// 正常胎压值
- ///
- public ushort NormalFetalPressure { get; set; }
- ///
- /// 胎压不平衡门限
- ///
- public ushort ThresholdUnbalancedTirePressure { get; set; }
- ///
- /// 慢漏气门限
- ///
- public ushort SlowLeakageThreshold { get; set; }
- ///
- /// 低压阈值
- ///
- public ushort LowVoltageThreshold { get; set; }
- ///
- /// 高压阈值
- ///
- public ushort HighVoltageThreshold { get; set; }
- ///
- /// 高温阈值
- ///
- public ushort HighTemperatureThreshold { get; set; }
- ///
- /// 电压阈值
- ///
- public ushort VoltageThreshold { get; set; }
- ///
- /// 定时上报时间间隔
- ///
- public ushort TimedReportingInterval { get; set; }
- ///
- /// 保留项
- ///
- public byte[] Retain { get; set; } = new byte[6];
- ///
- ///
- ///
- ///
- ///
- ///
- public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
- {
- JT808_0x8103_0xF366 value = new JT808_0x8103_0xF366();
- value.ParamId = reader.ReadUInt32();
- value.ParamLength = reader.ReadByte();
- writer.WriteNumber($"[{value.ParamId.ReadNumber()}]参数ID", value.ParamId);
- writer.WriteNumber($"[{value.ParamLength.ReadNumber()}]参数长度", value.ParamLength);
- string tyreSpecificationTypeHex = reader.ReadVirtualArray(12).ToArray().ToHexString();
- value.TyreSpecificationType = reader.ReadString(12);
- writer.WriteString($"[{tyreSpecificationTypeHex}]轮胎规格型号", value.TyreSpecificationType);
- value.TyrePressureUnit = reader.ReadUInt16();
- writer.WriteNumber($"[{value.TyrePressureUnit.ReadNumber()}]胎压单位", value.TyrePressureUnit);
- value.NormalFetalPressure = reader.ReadUInt16();
- writer.WriteNumber($"[{value.NormalFetalPressure.ReadNumber()}]正常胎压值", value.NormalFetalPressure);
- value.ThresholdUnbalancedTirePressure = reader.ReadUInt16();
- writer.WriteNumber($"[{value.ThresholdUnbalancedTirePressure.ReadNumber()}]胎压不平衡门限", value.ThresholdUnbalancedTirePressure);
- value.SlowLeakageThreshold = reader.ReadUInt16();
- writer.WriteNumber($"[{value.SlowLeakageThreshold.ReadNumber()}]慢漏气门限", value.SlowLeakageThreshold);
- value.LowVoltageThreshold = reader.ReadUInt16();
- writer.WriteNumber($"[{value.LowVoltageThreshold.ReadNumber()}]低压阈值", value.LowVoltageThreshold);
- value.HighVoltageThreshold = reader.ReadUInt16();
- writer.WriteNumber($"[{value.HighVoltageThreshold.ReadNumber()}]高压阈值", value.HighVoltageThreshold);
- value.HighTemperatureThreshold = reader.ReadUInt16();
- writer.WriteNumber($"[{value.HighTemperatureThreshold.ReadNumber()}]高温阈值", value.HighTemperatureThreshold);
- value.VoltageThreshold = reader.ReadUInt16();
- writer.WriteNumber($"[{value.VoltageThreshold.ReadNumber()}]电压阈值", value.VoltageThreshold);
- value.TimedReportingInterval = reader.ReadUInt16();
- writer.WriteNumber($"[{value.TimedReportingInterval.ReadNumber()}]定时上报时间间隔", value.TimedReportingInterval);
- value.Retain = reader.ReadArray(reader.ReadCurrentRemainContentLength()).ToArray();
- writer.WriteString("保留项", value.Retain.ToHexString());
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public JT808_0x8103_0xF366 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
- {
- JT808_0x8103_0xF366 value = new JT808_0x8103_0xF366();
- value.ParamId = reader.ReadUInt32();
- value.ParamLength = reader.ReadByte();
- value.TyreSpecificationType = reader.ReadString(12);
- value.TyrePressureUnit = reader.ReadUInt16();
- value.NormalFetalPressure = reader.ReadUInt16();
- value.ThresholdUnbalancedTirePressure = reader.ReadUInt16();
- value.SlowLeakageThreshold = reader.ReadUInt16();
- value.LowVoltageThreshold = reader.ReadUInt16();
- value.HighVoltageThreshold = reader.ReadUInt16();
- value.HighTemperatureThreshold = reader.ReadUInt16();
- value.VoltageThreshold = reader.ReadUInt16();
- value.TimedReportingInterval = reader.ReadUInt16();
- value.Retain = reader.ReadArray(reader.ReadCurrentRemainContentLength()).ToArray();
- return value;
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8103_0xF366 value, IJT808Config config)
- {
- writer.WriteUInt32(value.ParamId);
- writer.Skip(1, out int ParamLengthPosition);
- writer.WriteString(value.TyreSpecificationType);
- writer.WriteUInt16(value.TyrePressureUnit);
- writer.WriteUInt16(value.NormalFetalPressure);
- writer.WriteUInt16(value.ThresholdUnbalancedTirePressure);
- writer.WriteUInt16(value.SlowLeakageThreshold);
- writer.WriteUInt16(value.LowVoltageThreshold);
- writer.WriteUInt16(value.HighVoltageThreshold);
- writer.WriteUInt16(value.HighTemperatureThreshold);
- writer.WriteUInt16(value.VoltageThreshold);
- writer.WriteUInt16(value.TimedReportingInterval);
- writer.WriteArray(value.Retain);
- writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - ParamLengthPosition - 1), ParamLengthPosition);
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF367.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF367.cs
deleted file mode 100644
index c8b0aab..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF367.cs
+++ /dev/null
@@ -1,77 +0,0 @@
-using JT808.Protocol.Formatters;
-using JT808.Protocol.Interfaces;
-using JT808.Protocol.MessageBody;
-using JT808.Protocol.MessagePack;
-using System.Text.Json;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
-{
- ///
- /// 盲区监测系统参数
- ///
- public class JT808_0x8103_0xF367 : JT808_0x8103_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
- {
- ///
- /// 盲区监测系统参数Id
- ///
- public override uint ParamId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X8103_0xF367;
- ///
- /// 盲区监测系统参数长度
- ///
- public override byte ParamLength { get; set; } = 2;
- ///
- /// 后方接近报警时间阈值
- ///
- public byte RearApproachAlarmTimeThreshold { get; set; }
- ///
- /// 侧后方接近报警时间阈值
- ///
- public byte LateralRearApproachAlarmTimeThreshold { get; set; }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
- {
- JT808_0x8103_0xF367 value = new JT808_0x8103_0xF367();
- value.ParamId = reader.ReadUInt32();
- value.ParamLength = reader.ReadByte();
- writer.WriteNumber($"[{ value.ParamId.ReadNumber()}]参数ID", value.ParamId);
- writer.WriteNumber($"[{value.ParamLength.ReadNumber()}]参数长度", value.ParamLength);
- value.RearApproachAlarmTimeThreshold = reader.ReadByte();
- writer.WriteNumber($"[{value.RearApproachAlarmTimeThreshold.ReadNumber()}]后方接近报警时间阈值", value.RearApproachAlarmTimeThreshold);
- value.LateralRearApproachAlarmTimeThreshold = reader.ReadByte();
- writer.WriteNumber($"[{value.LateralRearApproachAlarmTimeThreshold.ReadNumber()}]侧后方接近报警时间阈值", value.LateralRearApproachAlarmTimeThreshold);
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public JT808_0x8103_0xF367 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
- {
- JT808_0x8103_0xF367 value = new JT808_0x8103_0xF367();
- value.ParamId = reader.ReadUInt32();
- value.ParamLength = reader.ReadByte();
- value.RearApproachAlarmTimeThreshold = reader.ReadByte();
- value.LateralRearApproachAlarmTimeThreshold = reader.ReadByte();
- return value;
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8103_0xF367 value, IJT808Config config)
- {
- writer.WriteUInt32(value.ParamId);
- writer.WriteByte(2);
- writer.WriteByte(value.RearApproachAlarmTimeThreshold);
- writer.WriteByte(value.LateralRearApproachAlarmTimeThreshold);
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8900_0xF7.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8900_0xF7.cs
deleted file mode 100644
index bede06a..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8900_0xF7.cs
+++ /dev/null
@@ -1,89 +0,0 @@
-using JT808.Protocol.Formatters;
-using JT808.Protocol.Interfaces;
-using JT808.Protocol.MessageBody;
-using JT808.Protocol.MessagePack;
-using System.Collections.Generic;
-using System.Text.Json;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
-{
- ///
- /// 查询基本信息
- ///
- public class JT808_0x8900_0xF7 : JT808_0x8900_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
- {
- ///
- /// 查询基本信息类型
- ///
- public override byte PassthroughType { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0900_0xF7;
- ///
- /// 外设ID列表总数
- ///
- public byte USBCount { get; set; }
- ///
- /// 外设ID
- ///
- public List MultipleUSB { get; set; }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
- {
- JT808_0x8900_0xF7 value = new JT808_0x8900_0xF7();
- value.USBCount = reader.ReadByte();
- writer.WriteNumber($"[{value.USBCount.ReadNumber()}]外设ID列表总数", value.USBCount);
- if (value.USBCount > 0)
- {
- writer.WriteStartArray("外设ID列表");
- for (int i = 0; i < value.USBCount; i++)
- {
- writer.WriteStartObject();
- byte usbId = reader.ReadByte();
- writer.WriteNumber($"[{usbId.ReadNumber()}]外设ID", usbId);
- writer.WriteEndObject();
- }
- writer.WriteEndArray();
- }
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public JT808_0x8900_0xF7 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
- {
- JT808_0x8900_0xF7 value = new JT808_0x8900_0xF7();
- value.USBCount = reader.ReadByte();
- if (value.USBCount > 0)
- {
- value.MultipleUSB = new List();
- for (int i = 0; i < value.USBCount; i++)
- {
- value.MultipleUSB.Add(reader.ReadByte());
- }
- }
- return value;
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8900_0xF7 value, IJT808Config config)
- {
- if (value.MultipleUSB != null && value.MultipleUSB.Count > 0)
- {
- writer.WriteByte((byte)value.MultipleUSB.Count);
- foreach (var item in value.MultipleUSB)
- {
- writer.WriteByte(item);
- }
- }
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8900_0xF8.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8900_0xF8.cs
deleted file mode 100644
index b7514ac..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8900_0xF8.cs
+++ /dev/null
@@ -1,89 +0,0 @@
-using JT808.Protocol.Formatters;
-using JT808.Protocol.Interfaces;
-using JT808.Protocol.MessageBody;
-using JT808.Protocol.MessagePack;
-using System.Collections.Generic;
-using System.Text.Json;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
-{
- ///
- /// 查询基本信息
- ///
- public class JT808_0x8900_0xF8 : JT808_0x8900_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
- {
- ///
- /// 查询基本信息透传类型
- ///
- public override byte PassthroughType { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0900_0xF8;
- ///
- /// 外设ID列表总数
- ///
- public byte USBCount { get; set; }
- ///
- /// 外设ID
- ///
- public List MultipleUSB { get; set; }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
- {
- JT808_0x8900_0xF8 value = new JT808_0x8900_0xF8();
- value.USBCount = reader.ReadByte();
- writer.WriteNumber($"[{value.USBCount.ReadNumber()}]外设ID列表总数", value.USBCount);
- if (value.USBCount > 0)
- {
- writer.WriteStartArray("外设ID列表");
- for (int i = 0; i < value.USBCount; i++)
- {
- writer.WriteStartObject();
- byte usbId = reader.ReadByte();
- writer.WriteNumber($"[{usbId.ReadNumber()}]外设ID", usbId);
- writer.WriteEndObject();
- }
- writer.WriteEndArray();
- }
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public JT808_0x8900_0xF8 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
- {
- JT808_0x8900_0xF8 value = new JT808_0x8900_0xF8();
- value.USBCount = reader.ReadByte();
- if (value.USBCount > 0)
- {
- value.MultipleUSB = new List();
- for (int i = 0; i < value.USBCount; i++)
- {
- value.MultipleUSB.Add(reader.ReadByte());
- }
- }
- return value;
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8900_0xF8 value, IJT808Config config)
- {
- if (value.MultipleUSB != null && value.MultipleUSB.Count > 0)
- {
- writer.WriteByte((byte)value.MultipleUSB.Count);
- foreach (var item in value.MultipleUSB)
- {
- writer.WriteByte(item);
- }
- }
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x9208.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x9208.cs
deleted file mode 100644
index f34de32..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x9208.cs
+++ /dev/null
@@ -1,139 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.Metadata;
-using JT808.Protocol.Formatters;
-using JT808.Protocol.Interfaces;
-using JT808.Protocol.MessagePack;
-using System;
-using System.Text.Json;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
-{
- ///
- /// 报警附件上传指令
- ///
- public class JT808_0x9208: JT808Bodies, IJT808MessagePackFormatter, IJT808Analyze
- {
- ///
- /// Description
- ///
- public override string Description => "报警附件上传指令";
- ///
- /// 服务IP地址长度
- ///
- public byte AttachmentServerIPLength { get; set; }
- ///
- /// 服务IP地址
- ///
- public string AttachmentServerIP { get; set; }
- ///
- /// TCP端口
- ///
- public ushort AttachmentServerIPTcpPort { get; set; }
- ///
- /// UDP端口
- ///
- public ushort AttachmentServerIPUdpPort { get; set; }
- ///
- /// 报警标识号
- ///
- public AlarmIdentificationProperty AlarmIdentification { get; set; }
- ///
- /// 平台给报警分配的唯一编号
- /// 32
- ///
- public string AlarmId { get; set; }
- ///
- /// 预留
- ///
- public byte[] Retain { get; set; } = new byte[16];
- ///
- /// 报警附件上传指令Id
- ///
- public override ushort MsgId => 0x9208;
- ///
- ///
- ///
- ///
- ///
- ///
- public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
- {
- JT808_0x9208 value = new JT808_0x9208();
- value.AttachmentServerIPLength = reader.ReadByte();
- writer.WriteNumber($"[{value.AttachmentServerIPLength.ReadNumber()}]服务IP地址长度", value.AttachmentServerIPLength);
- string attachmentServerIPHex = reader.ReadVirtualArray(value.AttachmentServerIPLength).ToArray().ToHexString();
- value.AttachmentServerIP = reader.ReadString(value.AttachmentServerIPLength);
- writer.WriteString($"[{AttachmentServerIP}]服务IP地址", value.AttachmentServerIP);
- value.AttachmentServerIPTcpPort = reader.ReadUInt16();
- writer.WriteNumber($"[{value.AttachmentServerIPTcpPort.ReadNumber()}]TCP端口", value.AttachmentServerIPTcpPort);
- value.AttachmentServerIPUdpPort = reader.ReadUInt16();
- writer.WriteNumber($"[{value.AttachmentServerIPUdpPort.ReadNumber()}]UDP端口", value.AttachmentServerIPUdpPort);
- value.AlarmIdentification = new AlarmIdentificationProperty();
- string terminalIDHex = reader.ReadVirtualArray(7).ToArray().ToHexString();
- value.AlarmIdentification.TerminalID = reader.ReadString(7);
- value.AlarmIdentification.Time = reader.ReadDateTime6();
- value.AlarmIdentification.SN = reader.ReadByte();
- value.AlarmIdentification.AttachCount = reader.ReadByte();
- value.AlarmIdentification.Retain = reader.ReadByte();
- writer.WriteString($"[{terminalIDHex}]终端ID", value.AlarmIdentification.TerminalID);
- writer.WriteString($"[{value.AlarmIdentification.Time.ToString("yyMMddHHmmss")}]日期时间", value.AlarmIdentification.Time.ToString("yyyy-MM-dd HH:mm:ss"));
- writer.WriteNumber($"[{value.AlarmIdentification.SN.ReadNumber()}]序号", value.AlarmIdentification.SN);
- writer.WriteNumber($"[{value.AlarmIdentification.AttachCount.ReadNumber()}]附件数量", value.AlarmIdentification.AttachCount);
- writer.WriteNumber($"[{value.AlarmIdentification.Retain.ReadNumber()}]预留", value.AlarmIdentification.Retain);
- string alarmIdHex = reader.ReadVirtualArray(32).ToArray().ToHexString();
- value.AlarmId = reader.ReadString(32);
- writer.WriteString($"[{alarmIdHex}]平台给报警分配的唯一编号", value.AlarmId);
- string retainHex = reader.ReadVirtualArray(16).ToArray().ToHexString();
- writer.WriteString($"预留", retainHex);
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public JT808_0x9208 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
- {
- JT808_0x9208 value = new JT808_0x9208();
- value.AttachmentServerIPLength = reader.ReadByte();
- value.AttachmentServerIP = reader.ReadString(value.AttachmentServerIPLength);
- value.AttachmentServerIPTcpPort = reader.ReadUInt16();
- value.AttachmentServerIPUdpPort = reader.ReadUInt16();
- value.AlarmIdentification = new AlarmIdentificationProperty
- {
- TerminalID = reader.ReadString(7),
- Time = reader.ReadDateTime6(),
- SN = reader.ReadByte(),
- AttachCount = reader.ReadByte(),
- Retain = reader.ReadByte()
- };
- value.AlarmId = reader.ReadString(32);
- value.Retain = reader.ReadArray(16).ToArray();
- return value;
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Serialize(ref JT808MessagePackWriter writer, JT808_0x9208 value, IJT808Config config)
- {
- writer.Skip(1, out int AttachmentServerIPLengthPosition);
- writer.WriteString(value.AttachmentServerIP);
- writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - AttachmentServerIPLengthPosition - 1), AttachmentServerIPLengthPosition);
- writer.WriteUInt16(value.AttachmentServerIPTcpPort);
- writer.WriteUInt16(value.AttachmentServerIPUdpPort);
- if (value.AlarmIdentification == null)
- {
- throw new NullReferenceException($"{nameof(AlarmIdentificationProperty)}不为空");
- }
- writer.WriteString(value.AlarmIdentification.TerminalID);
- writer.WriteDateTime6(value.AlarmIdentification.Time);
- writer.WriteByte(value.AlarmIdentification.SN);
- writer.WriteByte(value.AlarmIdentification.AttachCount);
- writer.WriteByte(value.AlarmIdentification.Retain);
- writer.WriteString(value.AlarmId);
- writer.WriteArray(value.Retain);
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x9212.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x9212.cs
deleted file mode 100644
index a3a667d..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x9212.cs
+++ /dev/null
@@ -1,139 +0,0 @@
-using JT808.Protocol.Extensions.JTActiveSafety.Metadata;
-using JT808.Protocol.Formatters;
-using JT808.Protocol.Interfaces;
-using JT808.Protocol.MessagePack;
-using System.Collections.Generic;
-using System.Text.Json;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
-{
- ///
- /// 文件上传完成消息应答
- ///
- public class JT808_0x9212: JT808Bodies, IJT808MessagePackFormatter, IJT808Analyze
- {
- ///
- /// 文件上传完成消息应答
- ///
- public override string Description => "文件上传完成消息应答";
- ///
- /// 文件名称长度
- ///
- public byte FileNameLength { get; set; }
- ///
- /// 文件名称
- ///
- public string FileName { get; set; }
- ///
- /// 文件类型
- ///
- public byte FileType { get; set; }
- ///
- /// 上传结果
- ///
- public byte UploadResult { get; set; }
- ///
- /// 补传数据包数量
- /// 需要补传的数据包数量,无补传时该值为0
- ///
- public byte DataPackageCount { get; set; }
- ///
- /// 补传数据包列表
- ///
- public List DataPackages { get; set; }
- ///
- /// 文件上传完成消息应答Id
- ///
- public override ushort MsgId => 0x9212;
- ///
- ///
- ///
- ///
- ///
- ///
- public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
- {
- JT808_0x9212 value = new JT808_0x9212();
- value.FileNameLength = reader.ReadByte();
- writer.WriteNumber($"[{value.FileNameLength.ReadNumber()}]文件名称长度", value.FileNameLength);
- string fileNameHex = reader.ReadVirtualArray(value.FileNameLength).ToArray().ToHexString();
- value.FileName = reader.ReadString(value.FileNameLength);
- writer.WriteString($"[{fileNameHex}]文件名称", value.FileName);
- value.FileType = reader.ReadByte();
- writer.WriteNumber($"[{value.FileType.ReadNumber()}]文件类型", value.FileType);
- value.UploadResult = reader.ReadByte();
- writer.WriteNumber($"[{value.UploadResult.ReadNumber()}]上传结果", value.UploadResult);
- value.DataPackageCount = reader.ReadByte();
- writer.WriteNumber($"[{value.DataPackageCount.ReadNumber()}]补传数据包数量", value.DataPackageCount);
- if (value.DataPackageCount > 0)
- {
- writer.WriteStartArray("补传数据包列表");
- for (int i = 0; i < value.DataPackageCount; i++)
- {
- writer.WriteStartObject();
- DataPackageProperty dataPackageProperty = new DataPackageProperty();
- dataPackageProperty.Offset = reader.ReadUInt32();
- writer.WriteNumber($"[{dataPackageProperty.Offset.ReadNumber()}]数据偏移量", dataPackageProperty.Offset);
- dataPackageProperty.Length = reader.ReadUInt32();
- writer.WriteNumber($"[{dataPackageProperty.Length.ReadNumber()}]数据长度", dataPackageProperty.Length);
- writer.WriteEndObject();
- }
- writer.WriteEndArray();
- }
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public JT808_0x9212 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
- {
- JT808_0x9212 value = new JT808_0x9212();
- value.FileNameLength = reader.ReadByte();
- value.FileName = reader.ReadString(value.FileNameLength);
- value.FileType = reader.ReadByte();
- value.UploadResult = reader.ReadByte();
- value.DataPackageCount = reader.ReadByte();
- if (value.DataPackageCount > 0)
- {
- value.DataPackages = new List();
- for (int i = 0; i < value.DataPackageCount; i++)
- {
- DataPackageProperty dataPackageProperty = new DataPackageProperty();
- dataPackageProperty.Offset = reader.ReadUInt32();
- dataPackageProperty.Length = reader.ReadUInt32();
- value.DataPackages.Add(dataPackageProperty);
- }
- }
- return value;
- }
- ///
- ///
- ///
- ///
- ///
- ///
- public void Serialize(ref JT808MessagePackWriter writer, JT808_0x9212 value, IJT808Config config)
- {
- writer.Skip(1, out int FileNameLengthPosition);
- writer.WriteString(value.FileName);
- writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - FileNameLengthPosition - 1), FileNameLengthPosition);
- writer.WriteByte(value.FileType);
- writer.WriteByte(value.UploadResult);
- if (value.DataPackages != null && value.DataPackages.Count > 0)
- {
- writer.WriteByte((byte)value.DataPackages.Count);
- foreach (var item in value.DataPackages)
- {
- writer.WriteUInt32(item.Offset);
- writer.WriteUInt32(item.Length);
- }
- }
- else
- {
- writer.WriteByte(0);
- }
- }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/AlarmIdentificationProperty.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/AlarmIdentificationProperty.cs
deleted file mode 100644
index 085ccb0..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/AlarmIdentificationProperty.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Metadata
-{
- ///
- /// 报警标识号
- ///
- public class AlarmIdentificationProperty
- {
- ///
- /// 终端ID
- ///
- public string TerminalID { get; set; }
- ///
- /// YY-MM-DD-hh-mm-ss
- /// BCD[6]
- ///
- public DateTime Time { get; set; }
- ///
- /// 序号
- ///
- public byte SN { get; set; }
- ///
- /// 附件数量
- ///
- public byte AttachCount { get; set; }
- ///
- /// 预留
- ///
- public byte Retain { get; set; }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/AlarmOrEventProperty.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/AlarmOrEventProperty.cs
deleted file mode 100644
index 91977cb..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/AlarmOrEventProperty.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Metadata
-{
- ///
- /// 胎压监测系统报警/事件信息
- ///
- public class AlarmOrEventProperty
- {
- ///
- /// 胎压报警位置
- ///
- public byte TirePressureAlarmPosition { get; set; }
- ///
- /// 报警/事件类型
- ///
- public ushort AlarmOrEventType { get; set; }
- ///
- /// 胎压
- ///
- public ushort TirePressure { get; set; }
- ///
- /// 胎温
- ///
- public ushort TireTemperature { get; set; }
- ///
- /// 电池电量
- ///
- public ushort BatteryLevel { get; set; }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/AttachProperty.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/AttachProperty.cs
deleted file mode 100644
index 516c8e3..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/AttachProperty.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Metadata
-{
- ///
- /// 附件信息
- ///
- public class AttachProperty
- {
- ///
- /// 文件名称长度
- ///
- public byte FileNameLength { get; set; }
- ///
- /// 文件名称
- /// 形如:文件类型_通道号_报警类型_序号_报警编号.后缀名
- ///
- public string FileName{ get; set; }
- ///
- /// 文件大小
- ///
- public uint FileSize { get; set; }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/DataPackageProperty.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/DataPackageProperty.cs
deleted file mode 100644
index f336dc2..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/DataPackageProperty.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Metadata
-{
- ///
- /// 补传数据包信息
- ///
- public class DataPackageProperty
- {
- ///
- /// 数据偏移量
- ///
- public uint Offset { get; set; }
- ///
- /// 数据长度
- ///
- public uint Length { get; set; }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/JT808_0x0900_0xF7_USB.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/JT808_0x0900_0xF7_USB.cs
deleted file mode 100644
index 1f2f6de..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/JT808_0x0900_0xF7_USB.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Metadata
-{
- ///
- ///
- ///
- public class JT808_0x0900_0xF7_USB
- {
- ///
- /// 外设ID
- ///
- ///
- public byte USBID { get; set; }
- ///
- /// 消息长度
- ///
- public byte MessageLength { get; set; }
- ///
- /// 工作状态
- ///
- ///
- public byte WorkingCondition { get; set; }
- ///
- /// 报警状态
- ///
- public uint AlarmStatus { get; set; }
- }
-}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/JT808_0x0900_0xF8_USB.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/JT808_0x0900_0xF8_USB.cs
deleted file mode 100644
index 611538d..0000000
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/JT808_0x0900_0xF8_USB.cs
+++ /dev/null
@@ -1,72 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace JT808.Protocol.Extensions.JTActiveSafety.Metadata
-{
- ///
- ///
- ///
- public class JT808_0x0900_0xF8_USB
- {
- ///
- /// 外设ID
- ///
- ///
- public byte USBID { get; set; }
- ///
- /// 消息长度
- ///
- public byte MessageLength { get; set; }
- ///
- /// 公司名称长度
- ///
- public byte CompantNameLength { get; set; }
- ///
- /// 公司名称
- ///
- public string CompantName { get; set; }
- ///
- /// 产品型号长度
- ///
- public byte ProductModelLength { get; set; }
- ///
- /// 产品型号
- ///
- public string ProductModel { get; set; }
- ///
- /// 硬件版本号长度
- ///
- public byte HardwareVersionNumberLength { get; set; }
- ///
- /// 硬件版本号
- /// ASCII
- ///
- public string HardwareVersionNumber { get; set; }
- ///
- /// 软件版本号长度
- ///
- public byte SoftwareVersionNumberLength { get; set; }
- ///
- /// 软件版本号
- /// ASCII
- ///
- public string SoftwareVersionNumber { get; set; }
- ///
- /// 设备ID长度
- ///
- public byte DevicesIDLength { get; set; }
- ///
- /// 设备ID
- ///
- public string DevicesID { get; set; }
- ///
- /// 客户代码长度
- ///
- public byte CustomerCodeLength { get; set; }
- ///
- /// 客户代码
- ///
- public string CustomerCode { get; set; }
- }
-}
diff --git a/src/JTActiveSafety.sln b/src/JTActiveSafety.sln
index 5747435..84ae9e3 100644
--- a/src/JTActiveSafety.sln
+++ b/src/JTActiveSafety.sln
@@ -3,12 +3,8 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29215.179
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.Protocol.Extensions.JTActiveSafety", "JT808.Protocol.Extensions.JTActiveSafety\JT808.Protocol.Extensions.JTActiveSafety.csproj", "{EDB6CAC8-B2A6-4C59-BFC3-8FF13A7CF799}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JTActiveSafety.Protocol", "JTActiveSafety.Protocol\JTActiveSafety.Protocol.csproj", "{FF716FAA-0C89-4DB9-A559-C50E502B996D}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.Protocol.Extensions.JTActiveSafety.Test", "JT808.Protocol.Extensions.JTActiveSafety.Test\JT808.Protocol.Extensions.JTActiveSafety.Test.csproj", "{5A5B068D-4276-4E9D-84A4-C659A86A4A6B}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JTActiveSafety.Protocol.Test", "JTActiveSafety.Protocol.Test\JTActiveSafety.Protocol.Test.csproj", "{148DB5C2-A8ED-4430-8AB8-44839FC45C7F}"
EndProject
Global
@@ -17,18 +13,10 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {EDB6CAC8-B2A6-4C59-BFC3-8FF13A7CF799}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EDB6CAC8-B2A6-4C59-BFC3-8FF13A7CF799}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EDB6CAC8-B2A6-4C59-BFC3-8FF13A7CF799}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EDB6CAC8-B2A6-4C59-BFC3-8FF13A7CF799}.Release|Any CPU.Build.0 = Release|Any CPU
{FF716FAA-0C89-4DB9-A559-C50E502B996D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FF716FAA-0C89-4DB9-A559-C50E502B996D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FF716FAA-0C89-4DB9-A559-C50E502B996D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FF716FAA-0C89-4DB9-A559-C50E502B996D}.Release|Any CPU.Build.0 = Release|Any CPU
- {5A5B068D-4276-4E9D-84A4-C659A86A4A6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5A5B068D-4276-4E9D-84A4-C659A86A4A6B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5A5B068D-4276-4E9D-84A4-C659A86A4A6B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5A5B068D-4276-4E9D-84A4-C659A86A4A6B}.Release|Any CPU.Build.0 = Release|Any CPU
{148DB5C2-A8ED-4430-8AB8-44839FC45C7F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{148DB5C2-A8ED-4430-8AB8-44839FC45C7F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{148DB5C2-A8ED-4430-8AB8-44839FC45C7F}.Release|Any CPU.ActiveCfg = Release|Any CPU