@@ -12,7 +12,7 @@ jobs: | |||||
- name: Setup .NET Core | - name: Setup .NET Core | ||||
uses: actions/setup-dotnet@master | uses: actions/setup-dotnet@master | ||||
with: | with: | ||||
dotnet-version: 8.0.100 | |||||
dotnet-version: 8.0.203 | |||||
- name: dotnet info | - name: dotnet info | ||||
run: dotnet --info | run: dotnet --info | ||||
- name: dotnet restore | - name: dotnet restore | ||||
@@ -382,6 +382,7 @@ Due to access many different equipment vendor's agreement, but each protocol doc | |||||
| Install-Package JT808.Protocol.Extensions.JT1078 |  | | |JT1078 extension JT808| | | Install-Package JT808.Protocol.Extensions.JT1078 |  | | |JT1078 extension JT808| | ||||
| Install-Package JT808.Protocol.Extensions.SuBiao|  | | |Active Safety (Su Biao) extension JT808| | | Install-Package JT808.Protocol.Extensions.SuBiao|  | | |Active Safety (Su Biao) extension JT808| | ||||
| Install-Package JT808.Protocol.Extensions.YueBiao|  | | |Active Safety (Yue Biao) extension JT808| | | Install-Package JT808.Protocol.Extensions.YueBiao|  | | |Active Safety (Yue Biao) extension JT808| | ||||
| Install-Package JT808.Protocol.Extensions.GPS51 |  |  |  | |||||
## Using BenchmarkDotNet performance test reports (just for fun, not to be taken seriously) | ## Using BenchmarkDotNet performance test reports (just for fun, not to be taken seriously) | ||||
@@ -398,6 +398,8 @@ JT808Serializer DT2JT808Serializer = new JT808Serializer(DT2JT808Config); | |||||
| Install-Package JT808.Protocol.Extensions.JT1078 |  |  |  | JT1078 扩展 JT808 | | | Install-Package JT808.Protocol.Extensions.JT1078 |  |  |  | JT1078 扩展 JT808 | | ||||
| Install-Package JT808.Protocol.Extensions.SuBiao |  |  |  | 主动安全(苏标)扩展 JT808 | | | Install-Package JT808.Protocol.Extensions.SuBiao |  |  |  | 主动安全(苏标)扩展 JT808 | | ||||
| Install-Package JT808.Protocol.Extensions.YueBiao |  |  |  | 主动安全(粤标)扩展 JT808 | | | Install-Package JT808.Protocol.Extensions.YueBiao |  |  |  | 主动安全(粤标)扩展 JT808 | | ||||
| Install-Package JT808.Protocol.Extensions.GPS51 |  |  |  | 主动安全(粤标)扩展 JT808 | | |||||
## 使用 BenchmarkDotNet 性能测试报告(只是玩玩,不能当真) | ## 使用 BenchmarkDotNet 性能测试报告(只是玩玩,不能当真) | ||||
@@ -1,5 +1,5 @@ | |||||
{ | { | ||||
"sdk": { | "sdk": { | ||||
"version": "8.0.100" | |||||
"version": "8.0.203" | |||||
} | } | ||||
} | } |
@@ -8,3 +8,99 @@ dotnet_diagnostic.IDE0028.severity = none | |||||
# IDE0059: 不需要赋值 | # IDE0059: 不需要赋值 | ||||
dotnet_diagnostic.IDE0059.severity = none | dotnet_diagnostic.IDE0059.severity = none | ||||
[*.cs] | |||||
#### 命名样式 #### | |||||
# 命名规则 | |||||
dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion | |||||
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface | |||||
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i | |||||
dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion | |||||
dotnet_naming_rule.types_should_be_pascal_case.symbols = types | |||||
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case | |||||
dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion | |||||
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members | |||||
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case | |||||
# 符号规范 | |||||
dotnet_naming_symbols.interface.applicable_kinds = interface | |||||
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected | |||||
dotnet_naming_symbols.interface.required_modifiers = | |||||
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum | |||||
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected | |||||
dotnet_naming_symbols.types.required_modifiers = | |||||
dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method | |||||
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected | |||||
dotnet_naming_symbols.non_field_members.required_modifiers = | |||||
# 命名样式 | |||||
dotnet_naming_style.begins_with_i.required_prefix = I | |||||
dotnet_naming_style.begins_with_i.required_suffix = | |||||
dotnet_naming_style.begins_with_i.word_separator = | |||||
dotnet_naming_style.begins_with_i.capitalization = pascal_case | |||||
dotnet_naming_style.pascal_case.required_prefix = | |||||
dotnet_naming_style.pascal_case.required_suffix = | |||||
dotnet_naming_style.pascal_case.word_separator = | |||||
dotnet_naming_style.pascal_case.capitalization = pascal_case | |||||
dotnet_naming_style.pascal_case.required_prefix = | |||||
dotnet_naming_style.pascal_case.required_suffix = | |||||
dotnet_naming_style.pascal_case.word_separator = | |||||
dotnet_naming_style.pascal_case.capitalization = pascal_case | |||||
[*.vb] | |||||
#### 命名样式 #### | |||||
# 命名规则 | |||||
dotnet_naming_rule.interface_should_be_以_i_开始.severity = suggestion | |||||
dotnet_naming_rule.interface_should_be_以_i_开始.symbols = interface | |||||
dotnet_naming_rule.interface_should_be_以_i_开始.style = 以_i_开始 | |||||
dotnet_naming_rule.类型_should_be_帕斯卡拼写法.severity = suggestion | |||||
dotnet_naming_rule.类型_should_be_帕斯卡拼写法.symbols = 类型 | |||||
dotnet_naming_rule.类型_should_be_帕斯卡拼写法.style = 帕斯卡拼写法 | |||||
dotnet_naming_rule.非字段成员_should_be_帕斯卡拼写法.severity = suggestion | |||||
dotnet_naming_rule.非字段成员_should_be_帕斯卡拼写法.symbols = 非字段成员 | |||||
dotnet_naming_rule.非字段成员_should_be_帕斯卡拼写法.style = 帕斯卡拼写法 | |||||
# 符号规范 | |||||
dotnet_naming_symbols.interface.applicable_kinds = interface | |||||
dotnet_naming_symbols.interface.applicable_accessibilities = public, friend, private, protected, protected_friend, private_protected | |||||
dotnet_naming_symbols.interface.required_modifiers = | |||||
dotnet_naming_symbols.类型.applicable_kinds = class, struct, interface, enum | |||||
dotnet_naming_symbols.类型.applicable_accessibilities = public, friend, private, protected, protected_friend, private_protected | |||||
dotnet_naming_symbols.类型.required_modifiers = | |||||
dotnet_naming_symbols.非字段成员.applicable_kinds = property, event, method | |||||
dotnet_naming_symbols.非字段成员.applicable_accessibilities = public, friend, private, protected, protected_friend, private_protected | |||||
dotnet_naming_symbols.非字段成员.required_modifiers = | |||||
# 命名样式 | |||||
dotnet_naming_style.以_i_开始.required_prefix = I | |||||
dotnet_naming_style.以_i_开始.required_suffix = | |||||
dotnet_naming_style.以_i_开始.word_separator = | |||||
dotnet_naming_style.以_i_开始.capitalization = pascal_case | |||||
dotnet_naming_style.帕斯卡拼写法.required_prefix = | |||||
dotnet_naming_style.帕斯卡拼写法.required_suffix = | |||||
dotnet_naming_style.帕斯卡拼写法.word_separator = | |||||
dotnet_naming_style.帕斯卡拼写法.capitalization = pascal_case | |||||
dotnet_naming_style.帕斯卡拼写法.required_prefix = | |||||
dotnet_naming_style.帕斯卡拼写法.required_suffix = | |||||
dotnet_naming_style.帕斯卡拼写法.word_separator = | |||||
dotnet_naming_style.帕斯卡拼写法.capitalization = pascal_case |
@@ -8,7 +8,7 @@ | |||||
<PackageProjectUrl>https://github.com/SmallChi/JT808</PackageProjectUrl> | <PackageProjectUrl>https://github.com/SmallChi/JT808</PackageProjectUrl> | ||||
<licenseUrl>https://github.com/SmallChi/JT808/blob/master/LICENSE</licenseUrl> | <licenseUrl>https://github.com/SmallChi/JT808/blob/master/LICENSE</licenseUrl> | ||||
<license>https://github.com/SmallChi/JT808/blob/master/LICENSE</license> | <license>https://github.com/SmallChi/JT808/blob/master/LICENSE</license> | ||||
<Version>2.6.5</Version> | |||||
<Version>2.6.6</Version> | |||||
<ImplicitUsings>enable</ImplicitUsings> | <ImplicitUsings>enable</ImplicitUsings> | ||||
<PackageLicenseFile>LICENSE</PackageLicenseFile> | <PackageLicenseFile>LICENSE</PackageLicenseFile> | ||||
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance> | <PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance> | ||||
@@ -29,6 +29,6 @@ | |||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All"/> | |||||
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="All"/> | |||||
</ItemGroup> | </ItemGroup> | ||||
</Project> | </Project> |
@@ -14,8 +14,8 @@ | |||||
<None Remove="ReportTest\**" /> | <None Remove="ReportTest\**" /> | ||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="BenchmarkDotNet" Version="0.13.10" /> | |||||
<PackageReference Include="BenchmarkDotNet.Diagnostics.Windows" Version="0.13.10" /> | |||||
<PackageReference Include="BenchmarkDotNet" Version="0.13.12" /> | |||||
<PackageReference Include="BenchmarkDotNet.Diagnostics.Windows" Version="0.13.12" /> | |||||
<PackageReference Include="NETStandard.Library" Version="2.0.3" /> | <PackageReference Include="NETStandard.Library" Version="2.0.3" /> | ||||
<PackageReference Include="System.Buffers" Version="4.5.1" /> | <PackageReference Include="System.Buffers" Version="4.5.1" /> | ||||
<PackageReference Include="System.Memory" Version="4.5.5" /> | <PackageReference Include="System.Memory" Version="4.5.5" /> | ||||
@@ -7,9 +7,9 @@ | |||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" /> | <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" /> | ||||
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" /> | <PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" /> | ||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" /> | |||||
<PackageReference Include="xunit" Version="2.6.1" /> | |||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3"> | |||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" /> | |||||
<PackageReference Include="xunit" Version="2.7.0" /> | |||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.7"> | |||||
<PrivateAssets>all</PrivateAssets> | <PrivateAssets>all</PrivateAssets> | ||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | ||||
</PackageReference> | </PackageReference> | ||||
@@ -14,7 +14,7 @@ namespace JT808.Protocol.Extensions.GPS51.Test | |||||
{ | { | ||||
ServiceCollection serviceDescriptors = new ServiceCollection(); | ServiceCollection serviceDescriptors = new ServiceCollection(); | ||||
serviceDescriptors.AddJT808Configure() | serviceDescriptors.AddJT808Configure() | ||||
.AddGPS51Configure(); | |||||
.AddGPS51Configure(); | |||||
IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService<IJT808Config>(); | IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService<IJT808Config>(); | ||||
JT808Serializer = new JT808Serializer(jT808Config); | JT808Serializer = new JT808Serializer(jT808Config); | ||||
@@ -22,6 +22,7 @@ namespace JT808.Protocol.Extensions.GPS51.Test | |||||
[Fact] | [Fact] | ||||
public void Serializer() | public void Serializer() | ||||
{ | { | ||||
#warning ÓÐÎÊÌâ | |||||
JT808_0x0200 jT808UploadLocationRequest = new JT808_0x0200 | JT808_0x0200 jT808UploadLocationRequest = new JT808_0x0200 | ||||
{ | { | ||||
AlarmFlag = 1, | AlarmFlag = 1, | ||||
@@ -6,11 +6,13 @@ using System; | |||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Reflection; | using System.Reflection; | ||||
using System.Text; | using System.Text; | ||||
using static System.Net.WebRequestMethods; | |||||
namespace JT808.Protocol.Extensions.GPS51 | namespace JT808.Protocol.Extensions.GPS51 | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// GPS51 extension JT/T808 | /// GPS51 extension JT/T808 | ||||
/// <see cref="https://gps51.com/#/jt808add"/> | |||||
/// </summary> | /// </summary> | ||||
public static class DependencyInjectionExtensions | public static class DependencyInjectionExtensions | ||||
{ | { | ||||
@@ -1,9 +1,26 @@ | |||||
<Project Sdk="Microsoft.NET.Sdk"> | <Project Sdk="Microsoft.NET.Sdk"> | ||||
<Import Project="..\..\Info.props" /> | |||||
<PropertyGroup> | <PropertyGroup> | ||||
<TargetFramework>netstandard2.0</TargetFramework> | |||||
<PackageId>JT808.Protocol.Extensions.GPS51</PackageId> | |||||
<Product>JT808.Protocol.Extensions.GPS51</Product> | |||||
<Description> | |||||
JT/T1078 video message protocol based on JT/JT808 protocol and GB808 protocol extension.基于JT808协议、GB808协议扩展的JT1078视频消息协议。 | |||||
</Description> | |||||
<PackageReleaseNotes> | |||||
JT/T1078 video message protocol based on JT/JT808 protocol and GB808 protocol extension.基于JT/T808协议、GB808协议扩展的JT/T1078视频消息协议。 | |||||
</PackageReleaseNotes> | |||||
<DocumentationFile>JT808.Protocol.Extensions.GPS51.xml</DocumentationFile> | |||||
<GenerateDocumentationFile>True</GenerateDocumentationFile> | |||||
<LinkRefUrl>https://gps51.com/#/jt808add</LinkRefUrl> | |||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | |||||
<None Include="..\..\..\LICENSE" Pack="true" PackagePath="" /> | |||||
<None Include="..\..\..\README.md" Pack="true" PackagePath="" /> | |||||
<None Include="..\..\..\README.en.md" Pack="true" PackagePath="" /> | |||||
</ItemGroup> | |||||
<ItemGroup> | <ItemGroup> | ||||
<ProjectReference Include="..\..\JT808.Protocol\JT808.Protocol.csproj" /> | <ProjectReference Include="..\..\JT808.Protocol\JT808.Protocol.csproj" /> | ||||
</ItemGroup> | </ItemGroup> | ||||
@@ -0,0 +1,345 @@ | |||||
<?xml version="1.0"?> | |||||
<doc> | |||||
<assembly> | |||||
<name>JT808.Protocol.Extensions.GPS51</name> | |||||
</assembly> | |||||
<members> | |||||
<member name="T:JT808.Protocol.Extensions.GPS51.DependencyInjectionExtensions"> | |||||
<summary> | |||||
GPS51 extension JT/T808 | |||||
<see cref="!:https://gps51.com/#/jt808add"/> | |||||
</summary> | |||||
</member> | |||||
<member name="M:JT808.Protocol.Extensions.GPS51.DependencyInjectionExtensions.AddGPS51Configure(JT808.Protocol.IJT808Builder)"> | |||||
<summary> | |||||
注册GPS51扩展JT/T808 | |||||
Register GPS51 extension JT/T808 | |||||
</summary> | |||||
<param name="jT808Builder"></param> | |||||
<returns></returns> | |||||
</member> | |||||
<member name="T:JT808.Protocol.Extensions.GPS51.Enums.ActivePhotographyStrategyType"> | |||||
<summary> | |||||
主动拍照策略 | |||||
Active photo taking strategy | |||||
</summary> | |||||
</member> | |||||
<member name="F:JT808.Protocol.Extensions.GPS51.Enums.ActivePhotographyStrategyType.not_enabled"> | |||||
<summary> | |||||
不开启 | |||||
Is not enabled | |||||
</summary> | |||||
</member> | |||||
<member name="F:JT808.Protocol.Extensions.GPS51.Enums.ActivePhotographyStrategyType.camera_timer"> | |||||
<summary> | |||||
定时拍照 | |||||
Camera Timer | |||||
</summary> | |||||
</member> | |||||
<member name="F:JT808.Protocol.Extensions.GPS51.Enums.ActivePhotographyStrategyType.distance_take_photos"> | |||||
<summary> | |||||
定距拍照 | |||||
Distance take photos | |||||
</summary> | |||||
</member> | |||||
<member name="F:JT808.Protocol.Extensions.GPS51.Enums.ActivePhotographyStrategyType.reserve"> | |||||
<summary> | |||||
保留 | |||||
reserve | |||||
</summary> | |||||
</member> | |||||
<member name="F:JT808.Protocol.Extensions.GPS51.Enums.ActivePhotographyStrategyType.not_modify_parameters"> | |||||
<summary> | |||||
不修改参数 | |||||
Do not Modify parameters | |||||
</summary> | |||||
</member> | |||||
<member name="T:JT808.Protocol.Extensions.GPS51.JT808_GPS51_Constants"> | |||||
<summary> | |||||
主动安全常量 | |||||
</summary> | |||||
</member> | |||||
<member name="F:JT808.Protocol.Extensions.GPS51.JT808_GPS51_Constants.JT808_0x0200_0x2B"> | |||||
<summary> | |||||
附加信息ID 多路油耗模拟量, | |||||
2*N | |||||
例子报文:2b049203a46f | |||||
解析结果为:2路 模拟量分别为37379 42095 | |||||
</summary> | |||||
</member> | |||||
<member name="F:JT808.Protocol.Extensions.GPS51.JT808_GPS51_Constants.JT808_0x0200_0x51"> | |||||
<summary> | |||||
附加信息ID 2个字节一组温度 0.1度 ffff 代表无效, | |||||
2*N | |||||
04F6代表未接或者传感器掉电, | |||||
第16位代表正负温度 51080134011A04F604F6 | |||||
308=30.8度 282=28.2度 8050=-80=-8度 | |||||
</summary> | |||||
</member> | |||||
<member name="F:JT808.Protocol.Extensions.GPS51.JT808_GPS51_Constants.JT808_0x0200_0x52"> | |||||
<summary> | |||||
附加信息ID | |||||
1 | |||||
正反转 0:未知;1:正转(空车)2:反转(重车);3:停转 | |||||
例子解析为:03 | |||||
</summary> | |||||
</member> | |||||
<member name="F:JT808.Protocol.Extensions.GPS51.JT808_GPS51_Constants.JT808_0x0200_0x54"> | |||||
<summary> | |||||
附加信息ID | |||||
1+7*N | |||||
Wifi数据:第1个字节wifi个数,后面为n个wifi数据; | |||||
WIFI数据:6字节 wifiMac 1字节 信号强度 | |||||
</summary> | |||||
</member> | |||||
<member name="F:JT808.Protocol.Extensions.GPS51.JT808_GPS51_Constants.JT808_0x0200_0x55"> | |||||
<summary> | |||||
载重扩展 8 | |||||
1/10千克 8 字节 | |||||
</summary> | |||||
</member> | |||||
<member name="F:JT808.Protocol.Extensions.GPS51.JT808_GPS51_Constants.JT808_0x0200_0x58"> | |||||
<summary> | |||||
湿度, | |||||
2*N | |||||
精度0.1,0fff 代表无效数据,例子数据: 0012 表示:1.8% | |||||
</summary> | |||||
</member> | |||||
<member name="F:JT808.Protocol.Extensions.GPS51.JT808_GPS51_Constants.JT808_0x0200_0x61"> | |||||
<summary> | |||||
电压, | |||||
2 | |||||
单位0.01V,例子报文:61021d74,解析结果7540,最终电压75.40V | |||||
</summary> | |||||
</member> | |||||
<member name="F:JT808.Protocol.Extensions.GPS51.JT808_GPS51_Constants.JT808_0x0200_0xe1"> | |||||
<summary> | |||||
基站编码 | |||||
4+7*N | |||||
的格式为 MCC MNC LAC CI Signal 2-2-2-4-1-2-4-1, | |||||
其中MCC 2个字节国家编码,MNC 为 2个字节网络编码,LAC为 2个字节地区编码, | |||||
CI 为 4个字节蜂窝 ID , | |||||
信号强度 1字节, | |||||
单基站可以不用信号强度 1cc-0-696a-863a8d0-0 | |||||
</summary> | |||||
</member> | |||||
<member name="F:JT808.Protocol.Extensions.GPS51.JT808_GPS51_Constants.JT808_0x0200_0xe2"> | |||||
<summary> | |||||
版本号, | |||||
N | |||||
开机或者重连第一条上报,例子结果:GB201-GSM-21001-1.1.1 | |||||
</summary> | |||||
</member> | |||||
<member name="F:JT808.Protocol.Extensions.GPS51.JT808_GPS51_Constants.JT808_0x0200_0xf1"> | |||||
<summary> | |||||
iccid, | |||||
20 | |||||
一般开机或者重连第一条0200位置信息上报, | |||||
例子报文:f1143839383630343032313032303930393737303032, | |||||
解析结果为:89860402102090977002 | |||||
</summary> | |||||
</member> | |||||
<member name="F:JT808.Protocol.Extensions.GPS51.JT808_GPS51_Constants.JT808_0x0200_0xf6"> | |||||
<summary> | |||||
IMEI数据: | |||||
8字节, | |||||
第1位为0,后面15位为imei的16进制数据 | |||||
</summary> | |||||
</member> | |||||
<member name="F:JT808.Protocol.Extensions.GPS51.JT808_GPS51_Constants.JT808_0x0200_0xfa"> | |||||
<summary> | |||||
4 | |||||
第0位:震动报警 | |||||
第1位:拆除报警 例子:第0位:震动报警 fa0400000001 第1位:拆除报警 fa0400000002 | |||||
第2位:进入深度休眠 fa0400000004 | |||||
第3位:急加速 fa0400000008 | |||||
第4位:急减速 fa0400000010 | |||||
第5位:急转弯 fa0400000020 | |||||
第6位:acc开报警 fa0400000040 | |||||
第7位:acc关报警 fa0400000080 | |||||
第8位:内部电池电量低fa0400000100 | |||||
第9位:人为关机 | |||||
第10位:低电关机 | |||||
</summary> | |||||
</member> | |||||
<member name="F:JT808.Protocol.Extensions.GPS51.JT808_GPS51_Constants.JT808_0x0200_0xfb"> | |||||
<summary> | |||||
4 | |||||
电量百分比和外部电压, | |||||
电压精度0.01V,充电状态0未充电 1充电中,没有的数据传00 | |||||
例子:fb045F050701 | |||||
解析结果:电量百分比5F=95 电压:0507=1287 最终显示为12.87V 01:充电中 | |||||
</summary> | |||||
</member> | |||||
<member name="M:JT808.Protocol.Extensions.GPS51.JT808_GPS51_Constants.GetCurrentAssembly"> | |||||
<summary> | |||||
</summary> | |||||
<returns></returns> | |||||
</member> | |||||
<member name="T:JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x2B_Ext"> | |||||
<summary> | |||||
多路油耗模拟量 | |||||
</summary> | |||||
</member> | |||||
<member name="P:JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x2B_Ext.AttachInfoId"> | |||||
<summary> | |||||
多路油耗模拟量,Id | |||||
</summary> | |||||
</member> | |||||
<member name="P:JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x2B_Ext.AttachInfoLength"> | |||||
<summary> | |||||
多路油耗模拟量信息附加长度 | |||||
</summary> | |||||
</member> | |||||
<member name="P:JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x2B_Ext.Oils"> | |||||
<summary> | |||||
油量数据 | |||||
</summary> | |||||
</member> | |||||
<member name="M:JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x2B_Ext.Analyze(JT808.Protocol.MessagePack.JT808MessagePackReader@,System.Text.Json.Utf8JsonWriter,JT808.Protocol.IJT808Config)"> | |||||
<summary> | |||||
</summary> | |||||
<param name="reader"></param> | |||||
<param name="writer"></param> | |||||
<param name="config"></param> | |||||
</member> | |||||
<member name="M:JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x2B_Ext.Deserialize(JT808.Protocol.MessagePack.JT808MessagePackReader@,JT808.Protocol.IJT808Config)"> | |||||
<summary> | |||||
</summary> | |||||
<param name="reader"></param> | |||||
<param name="config"></param> | |||||
<returns></returns> | |||||
</member> | |||||
<member name="M:JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x2B_Ext.Serialize(JT808.Protocol.MessagePack.JT808MessagePackWriter@,JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x2B_Ext,JT808.Protocol.IJT808Config)"> | |||||
<summary> | |||||
</summary> | |||||
<param name="writer"></param> | |||||
<param name="value"></param> | |||||
<param name="config"></param> | |||||
</member> | |||||
<member name="T:JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x51"> | |||||
<summary> | |||||
温度 | |||||
</summary> | |||||
</member> | |||||
<member name="P:JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x51.AttachInfoId"> | |||||
<summary> | |||||
温度,Id | |||||
</summary> | |||||
</member> | |||||
<member name="P:JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x51.AttachInfoLength"> | |||||
<summary> | |||||
温度信息附加长度 | |||||
</summary> | |||||
</member> | |||||
<member name="P:JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x51.Temperatures"> | |||||
<summary> | |||||
温度数据 | |||||
</summary> | |||||
</member> | |||||
<member name="M:JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x51.Analyze(JT808.Protocol.MessagePack.JT808MessagePackReader@,System.Text.Json.Utf8JsonWriter,JT808.Protocol.IJT808Config)"> | |||||
<summary> | |||||
</summary> | |||||
<param name="reader"></param> | |||||
<param name="writer"></param> | |||||
<param name="config"></param> | |||||
</member> | |||||
<member name="M:JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x51.Deserialize(JT808.Protocol.MessagePack.JT808MessagePackReader@,JT808.Protocol.IJT808Config)"> | |||||
<summary> | |||||
</summary> | |||||
<param name="reader"></param> | |||||
<param name="config"></param> | |||||
<returns></returns> | |||||
</member> | |||||
<member name="M:JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x51.Serialize(JT808.Protocol.MessagePack.JT808MessagePackWriter@,JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x51,JT808.Protocol.IJT808Config)"> | |||||
<summary> | |||||
</summary> | |||||
<param name="writer"></param> | |||||
<param name="value"></param> | |||||
<param name="config"></param> | |||||
</member> | |||||
<member name="T:JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x52"> | |||||
<summary> | |||||
正反转 | |||||
</summary> | |||||
</member> | |||||
<member name="P:JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x52.AttachInfoId"> | |||||
<summary> | |||||
</summary> | |||||
</member> | |||||
<member name="P:JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x52.AttachInfoLength"> | |||||
<summary> | |||||
</summary> | |||||
</member> | |||||
<member name="P:JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x52.Direction"> | |||||
<summary> | |||||
正反转值 | |||||
0:未知;1:正转(空车)2:反转(重车);3:停转 例子解析为:03 | |||||
</summary> | |||||
</member> | |||||
<member name="M:JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x52.Analyze(JT808.Protocol.MessagePack.JT808MessagePackReader@,System.Text.Json.Utf8JsonWriter,JT808.Protocol.IJT808Config)"> | |||||
<summary> | |||||
</summary> | |||||
<param name="reader"></param> | |||||
<param name="writer"></param> | |||||
<param name="config"></param> | |||||
</member> | |||||
<member name="M:JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x52.Deserialize(JT808.Protocol.MessagePack.JT808MessagePackReader@,JT808.Protocol.IJT808Config)"> | |||||
<summary> | |||||
</summary> | |||||
<param name="reader"></param> | |||||
<param name="config"></param> | |||||
<returns></returns> | |||||
</member> | |||||
<member name="M:JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x52.Serialize(JT808.Protocol.MessagePack.JT808MessagePackWriter@,JT808.Protocol.Extensions.GPS51.MessageBody.JT808_0x0200_0x52,JT808.Protocol.IJT808Config)"> | |||||
<summary> | |||||
</summary> | |||||
<param name="writer"></param> | |||||
<param name="value"></param> | |||||
<param name="config"></param> | |||||
</member> | |||||
<member name="T:JT808.Protocol.Extensions.GPS51.Metadata.AlarmIdentificationProperty"> | |||||
<summary> | |||||
报警标识号 | |||||
</summary> | |||||
</member> | |||||
<member name="P:JT808.Protocol.Extensions.GPS51.Metadata.AlarmIdentificationProperty.TerminalID"> | |||||
<summary> | |||||
终端ID | |||||
</summary> | |||||
</member> | |||||
<member name="P:JT808.Protocol.Extensions.GPS51.Metadata.AlarmIdentificationProperty.Time"> | |||||
<summary> | |||||
YY-MM-DD-hh-mm-ss | |||||
BCD[6] | |||||
</summary> | |||||
</member> | |||||
<member name="P:JT808.Protocol.Extensions.GPS51.Metadata.AlarmIdentificationProperty.SN"> | |||||
<summary> | |||||
序号 | |||||
</summary> | |||||
</member> | |||||
<member name="P:JT808.Protocol.Extensions.GPS51.Metadata.AlarmIdentificationProperty.AttachCount"> | |||||
<summary> | |||||
附件数量 | |||||
</summary> | |||||
</member> | |||||
<member name="P:JT808.Protocol.Extensions.GPS51.Metadata.AlarmIdentificationProperty.Retain"> | |||||
<summary> | |||||
预留 | |||||
</summary> | |||||
</member> | |||||
</members> | |||||
</doc> |
@@ -43,7 +43,8 @@ namespace JT808.Protocol.Extensions.GPS51.MessageBody | |||||
value.AttachInfoLength = reader.ReadByte(); | value.AttachInfoLength = reader.ReadByte(); | ||||
writer.WriteNumber($"[{value.AttachInfoLength.ReadNumber()}]附加信息长度", value.AttachInfoLength); | writer.WriteNumber($"[{value.AttachInfoLength.ReadNumber()}]附加信息长度", value.AttachInfoLength); | ||||
value.Oils = new List<ushort>(); | value.Oils = new List<ushort>(); | ||||
for (ushort i = 0; i < value.AttachInfoLength/2; i++) { | |||||
for (ushort i = 0; i < value.AttachInfoLength/2; i++) | |||||
{ | |||||
value.Oils.Add(reader.ReadUInt16()); | value.Oils.Add(reader.ReadUInt16()); | ||||
} | } | ||||
writer.WriteString($"[油量值:{string.Join("", value.Oils.Select(m=>m.ReadNumber()))}]",string.Join(",", value.Oils)); | writer.WriteString($"[油量值:{string.Join("", value.Oils.Select(m=>m.ReadNumber()))}]",string.Join(",", value.Oils)); | ||||
@@ -43,7 +43,8 @@ namespace JT808.Protocol.Extensions.GPS51.MessageBody | |||||
value.AttachInfoLength = reader.ReadByte(); | value.AttachInfoLength = reader.ReadByte(); | ||||
writer.WriteNumber($"[{value.AttachInfoLength.ReadNumber()}]附加信息长度", value.AttachInfoLength); | writer.WriteNumber($"[{value.AttachInfoLength.ReadNumber()}]附加信息长度", value.AttachInfoLength); | ||||
value.Temperatures = new List<short>(); | value.Temperatures = new List<short>(); | ||||
for (ushort i = 0; i < value.AttachInfoLength/2; i++) { | |||||
for (ushort i = 0; i < value.AttachInfoLength/2; i++) | |||||
{ | |||||
value.Temperatures.Add(reader.ReadInt16()); | value.Temperatures.Add(reader.ReadInt16()); | ||||
} | } | ||||
writer.WriteString($"[温度值:{string.Join("", value.Temperatures.Select(m=>m.ReadNumber()))}]",string.Join(",", value.Temperatures)); | writer.WriteString($"[温度值:{string.Join("", value.Temperatures.Select(m=>m.ReadNumber()))}]",string.Join(",", value.Temperatures)); | ||||
@@ -0,0 +1,95 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Text; | |||||
using System.Text.Json; | |||||
using JT808.Protocol.Extensions.GPS51.Metadata; | |||||
using JT808.Protocol.Formatters; | |||||
using JT808.Protocol.Interfaces; | |||||
using JT808.Protocol.MessageBody; | |||||
using JT808.Protocol.MessagePack; | |||||
namespace JT808.Protocol.Extensions.GPS51.MessageBody | |||||
{ | |||||
/// <summary> | |||||
/// 正反转 | |||||
/// </summary> | |||||
public class JT808_0x0200_0x52 : JT808MessagePackFormatter<JT808_0x0200_0x52>, JT808_0x0200_CustomBodyBase, IJT808Analyze | |||||
{ | |||||
/// <summary> | |||||
/// | |||||
/// </summary> | |||||
public byte AttachInfoId { get; set; } = JT808_GPS51_Constants.JT808_0x0200_0x52; | |||||
/// <summary> | |||||
/// | |||||
/// </summary> | |||||
public byte AttachInfoLength { get; set; } | |||||
/// <summary> | |||||
/// 正反转值 | |||||
/// 0:未知;1:正转(空车)2:反转(重车);3:停转 例子解析为:03 | |||||
/// </summary> | |||||
public byte Direction { get; set; } | |||||
/// <summary> | |||||
/// | |||||
/// </summary> | |||||
/// <param name="reader"></param> | |||||
/// <param name="writer"></param> | |||||
/// <param name="config"></param> | |||||
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) | |||||
{ | |||||
JT808_0x0200_0x52 value = new JT808_0x0200_0x52(); | |||||
value.AttachInfoId = reader.ReadByte(); | |||||
writer.WriteNumber($"[{value.AttachInfoId.ReadNumber()}]附加信息Id", value.AttachInfoId); | |||||
value.AttachInfoLength = reader.ReadByte(); | |||||
writer.WriteNumber($"[{value.AttachInfoLength.ReadNumber()}]附加信息长度", value.AttachInfoLength); | |||||
value.Direction = reader.ReadByte(); | |||||
if (value.Direction == 0) | |||||
{ | |||||
writer.WriteString($"[{value.Direction.ReadNumber()}]正反转", "未知"); | |||||
} | |||||
else if(value.Direction==1) | |||||
{ | |||||
writer.WriteString($"[{value.Direction.ReadNumber()}]正反转", "正转(空车)"); | |||||
} | |||||
else if (value.Direction == 2) | |||||
{ | |||||
writer.WriteString($"[{value.Direction.ReadNumber()}]正反转", "反转(重车)"); | |||||
} | |||||
else if (value.Direction == 3) | |||||
{ | |||||
writer.WriteString($"[{value.Direction.ReadNumber()}]正反转", "停转"); | |||||
} | |||||
else | |||||
{ | |||||
writer.WriteString($"[{value.Direction.ReadNumber()}]正反转", "未知2"); | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// | |||||
/// </summary> | |||||
/// <param name="reader"></param> | |||||
/// <param name="config"></param> | |||||
/// <returns></returns> | |||||
public override JT808_0x0200_0x52 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) | |||||
{ | |||||
JT808_0x0200_0x52 value = new JT808_0x0200_0x52(); | |||||
value.AttachInfoId = reader.ReadByte(); | |||||
value.AttachInfoLength = reader.ReadByte(); | |||||
value.Direction = reader.ReadByte(); | |||||
return value; | |||||
} | |||||
/// <summary> | |||||
/// | |||||
/// </summary> | |||||
/// <param name="writer"></param> | |||||
/// <param name="value"></param> | |||||
/// <param name="config"></param> | |||||
public override void Serialize(ref JT808MessagePackWriter writer, JT808_0x0200_0x52 value, IJT808Config config) | |||||
{ | |||||
writer.WriteByte(value.AttachInfoId); | |||||
writer.WriteByte(1); | |||||
writer.WriteByte(value.Direction); | |||||
} | |||||
} | |||||
} |
@@ -7,9 +7,9 @@ | |||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" /> | <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" /> | ||||
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" /> | <PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" /> | ||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" /> | |||||
<PackageReference Include="xunit" Version="2.6.1" /> | |||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3"> | |||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" /> | |||||
<PackageReference Include="xunit" Version="2.7.0" /> | |||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.7"> | |||||
<PrivateAssets>all</PrivateAssets> | <PrivateAssets>all</PrivateAssets> | ||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | ||||
</PackageReference> | </PackageReference> | ||||
@@ -8,9 +8,9 @@ | |||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" /> | <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" /> | ||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" /> | |||||
<PackageReference Include="xunit" Version="2.6.1" /> | |||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3"> | |||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" /> | |||||
<PackageReference Include="xunit" Version="2.7.0" /> | |||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.7"> | |||||
<PrivateAssets>all</PrivateAssets> | <PrivateAssets>all</PrivateAssets> | ||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | ||||
</PackageReference> | </PackageReference> | ||||
@@ -8,13 +8,13 @@ | |||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" /> | <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" /> | ||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" /> | |||||
<PackageReference Include="xunit" Version="2.6.1" /> | |||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3"> | |||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" /> | |||||
<PackageReference Include="xunit" Version="2.7.0" /> | |||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.7"> | |||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | ||||
<PrivateAssets>all</PrivateAssets> | <PrivateAssets>all</PrivateAssets> | ||||
</PackageReference> | </PackageReference> | ||||
<PackageReference Include="coverlet.collector" Version="6.0.0"> | |||||
<PackageReference Include="coverlet.collector" Version="6.0.2"> | |||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | ||||
<PrivateAssets>all</PrivateAssets> | <PrivateAssets>all</PrivateAssets> | ||||
</PackageReference> | </PackageReference> | ||||
@@ -108,17 +108,17 @@ | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" /> | |||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" /> | |||||
<PackageReference Include="NETStandard.Library" Version="2.0.3" /> | <PackageReference Include="NETStandard.Library" Version="2.0.3" /> | ||||
<PackageReference Include="System.Drawing.Common" Version="8.0.0" /> | |||||
<PackageReference Include="System.Drawing.Common" Version="8.0.3" /> | |||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" /> | <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" /> | ||||
<PackageReference Include="System.Runtime.InteropServices.RuntimeInformation" Version="4.3.0" /> | <PackageReference Include="System.Runtime.InteropServices.RuntimeInformation" Version="4.3.0" /> | ||||
<PackageReference Include="xunit" Version="2.6.1" /> | |||||
<PackageReference Include="xunit.runner.console" Version="2.6.1"> | |||||
<PackageReference Include="xunit" Version="2.7.0" /> | |||||
<PackageReference Include="xunit.runner.console" Version="2.7.0"> | |||||
<PrivateAssets>all</PrivateAssets> | <PrivateAssets>all</PrivateAssets> | ||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> | <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> | ||||
</PackageReference> | </PackageReference> | ||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3"> | |||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.7"> | |||||
<PrivateAssets>all</PrivateAssets> | <PrivateAssets>all</PrivateAssets> | ||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> | <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> | ||||
</PackageReference> | </PackageReference> | ||||
@@ -46,9 +46,9 @@ | |||||
<PackageReference Include="System.Dynamic.Runtime" Version="4.3.0" /> | <PackageReference Include="System.Dynamic.Runtime" Version="4.3.0" /> | ||||
<PackageReference Include="System.Memory" Version="4.5.5" /> | <PackageReference Include="System.Memory" Version="4.5.5" /> | ||||
<PackageReference Include="System.Reflection.Extensions" Version="4.3.0" /> | <PackageReference Include="System.Reflection.Extensions" Version="4.3.0" /> | ||||
<PackageReference Include="System.Text.Json" Version="8.0.0" /> | |||||
<PackageReference Include="System.Text.Json" Version="8.0.3" /> | |||||
<PackageReference Include="System.Text.Encoding.CodePages" Version="8.0.0" /> | <PackageReference Include="System.Text.Encoding.CodePages" Version="8.0.0" /> | ||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" /> | |||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.1" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net7.0' "> | <ItemGroup Condition=" '$(TargetFramework)' == 'net7.0' "> | ||||
@@ -57,7 +57,7 @@ | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net8.0' "> | <ItemGroup Condition=" '$(TargetFramework)' == 'net8.0' "> | ||||
<PackageReference Include="System.Text.Encoding.CodePages" Version="8.0.0" /> | <PackageReference Include="System.Text.Encoding.CodePages" Version="8.0.0" /> | ||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" /> | |||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.1" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
@@ -74,7 +74,7 @@ namespace JT808.Protocol.MessageBody | |||||
value.MultimediaCodingFormat = reader.ReadByte(); | value.MultimediaCodingFormat = reader.ReadByte(); | ||||
writer.WriteNumber($"[{value.MultimediaCodingFormat.ReadNumber()}]多媒体格式编码-{((JT808MultimediaCodingFormat)value.MultimediaCodingFormat).ToString()}", value.MultimediaCodingFormat); | writer.WriteNumber($"[{value.MultimediaCodingFormat.ReadNumber()}]多媒体格式编码-{((JT808MultimediaCodingFormat)value.MultimediaCodingFormat).ToString()}", value.MultimediaCodingFormat); | ||||
value.EventItemCoding = reader.ReadByte(); | value.EventItemCoding = reader.ReadByte(); | ||||
writer.WriteNumber($"[{value.EventItemCoding.ReadNumber()}]事件项编码-{((JT808EventItemCoding)value.EventItemCoding).ToString()}", value.MultimediaCodingFormat); | |||||
writer.WriteNumber($"[{value.EventItemCoding.ReadNumber()}]事件项编码-{((JT808EventItemCoding)value.EventItemCoding).ToString()}", value.EventItemCoding); | |||||
value.ChannelId = reader.ReadByte(); | value.ChannelId = reader.ReadByte(); | ||||
writer.WriteNumber($"[{value.ChannelId.ReadNumber()}]通道ID", value.ChannelId); | writer.WriteNumber($"[{value.ChannelId.ReadNumber()}]通道ID", value.ChannelId); | ||||
} | } | ||||