Bläddra i källkod

1.修复多媒体事件信息上传分析解析错误

2.增加51gps通用解析库
tags/v2.6.6
SmallChi(Koike) 11 månader sedan
förälder
incheckning
917429b048
21 ändrade filer med 593 tillägg och 32 borttagningar
  1. +1
    -1
      .github/workflows/dotnetcore.yml
  2. +1
    -0
      README.en.md
  3. +2
    -0
      README.md
  4. +1
    -1
      global.json
  5. +96
    -0
      src/.editorconfig
  6. +2
    -2
      src/Info.props
  7. +2
    -2
      src/JT808.Protocol.Benchmark/JT808.Protocol.Benchmark.csproj
  8. +3
    -3
      src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.GPS51.Test/JT808.Protocol.Extensions.GPS51.Test.csproj
  9. +2
    -1
      src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.GPS51.Test/JT808_0x0200_0x51_Test.cs
  10. +2
    -0
      src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.GPS51/DependencyInjectionExtensions.cs
  11. +18
    -1
      src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.GPS51/JT808.Protocol.Extensions.GPS51.csproj
  12. +345
    -0
      src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.GPS51/JT808.Protocol.Extensions.GPS51.xml
  13. +2
    -1
      src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.GPS51/MessageBody/JT808_0x0200_0x2B_Ext.cs
  14. +2
    -1
      src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.GPS51/MessageBody/JT808_0x0200_0x51.cs
  15. +95
    -0
      src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.GPS51/MessageBody/JT808_0x0200_0x52.cs
  16. +3
    -3
      src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078.Test/JT808.Protocol.Extensions.JT1078.Test.csproj
  17. +3
    -3
      src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao.Test/JT808.Protocol.Extensions.SuBiao.Test.csproj
  18. +4
    -4
      src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808.Protocol.Extensions.YueBiao.Test.csproj
  19. +5
    -5
      src/JT808.Protocol.Test/JT808.Protocol.Test.csproj
  20. +3
    -3
      src/JT808.Protocol/JT808.Protocol.csproj
  21. +1
    -1
      src/JT808.Protocol/MessageBody/JT808_0x0800.cs

+ 1
- 1
.github/workflows/dotnetcore.yml Visa fil

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


+ 1
- 0
README.en.md Visa fil

@@ -382,6 +382,7 @@ Due to access many different equipment vendor's agreement, but each protocol doc
| Install-Package JT808.Protocol.Extensions.JT1078 | ![JT808.Protocol.Extensions.JT1078](https://img.shields.io/nuget/v/JT808.Protocol.Extensions.JT1078.svg) | ![JT808.Protocol.Extensions.JT1078](https://img.shields.io/nuget/vpre/JT808.Protocol.Extensions.JT1078.svg)|![JT808](https://img.shields.io/nuget/dt/JT808.Protocol.Extensions.JT1078.svg) |JT1078 extension JT808|
| Install-Package JT808.Protocol.Extensions.SuBiao| ![JT808.Protocol.Extensions.SuBiao](https://img.shields.io/nuget/v/JT808.Protocol.Extensions.SuBiao.svg) | ![JT808.Protocol.Extensions.SuBiao](https://img.shields.io/nuget/vpre/JT808.Protocol.Extensions.SuBiao.svg)|![JT808](https://img.shields.io/nuget/dt/JT808.Protocol.Extensions.SuBiao.svg) |Active Safety (Su Biao) extension JT808|
| Install-Package JT808.Protocol.Extensions.YueBiao| ![JT808.Protocol.Extensions.YueBiao](https://img.shields.io/nuget/v/JT808.Protocol.Extensions.YueBiao.svg) | ![JT808.Protocol.Extensions.YueBiao](https://img.shields.io/nuget/vpre/JT808.Protocol.Extensions.YueBiao.svg)|![JT808](https://img.shields.io/nuget/dt/JT808.Protocol.Extensions.YueBiao.svg) |Active Safety (Yue Biao) extension JT808|
| Install-Package JT808.Protocol.Extensions.GPS51 | ![JT808.Protocol.Extensions.GPS51](https://img.shields.io/nuget/v/JT808.Protocol.Extensions.GPS51.svg) | ![JT808.Protocol.Extensions.GPS51](https://img.shields.io/nuget/vpre/JT808.Protocol.Extensions.GPS51.svg) | ![JT808](https://img.shields.io/nuget/dt/JT808.Protocol.Extensions.GPS51.svg)

## Using BenchmarkDotNet performance test reports (just for fun, not to be taken seriously)



+ 2
- 0
README.md Visa fil

@@ -398,6 +398,8 @@ JT808Serializer DT2JT808Serializer = new JT808Serializer(DT2JT808Config);
| Install-Package JT808.Protocol.Extensions.JT1078 | ![JT808.Protocol.Extensions.JT1078](https://img.shields.io/nuget/v/JT808.Protocol.Extensions.JT1078.svg) | ![JT808.Protocol.Extensions.JT1078](https://img.shields.io/nuget/vpre/JT808.Protocol.Extensions.JT1078.svg) | ![JT808](https://img.shields.io/nuget/dt/JT808.Protocol.Extensions.JT1078.svg) | JT1078 扩展 JT808 |
| Install-Package JT808.Protocol.Extensions.SuBiao | ![JT808.Protocol.Extensions.SuBiao](https://img.shields.io/nuget/v/JT808.Protocol.Extensions.SuBiao.svg) | ![JT808.Protocol.Extensions.SuBiao](https://img.shields.io/nuget/vpre/JT808.Protocol.Extensions.SuBiao.svg) | ![JT808](https://img.shields.io/nuget/dt/JT808.Protocol.Extensions.SuBiao.svg) | 主动安全(苏标)扩展 JT808 |
| Install-Package JT808.Protocol.Extensions.YueBiao | ![JT808.Protocol.Extensions.YueBiao](https://img.shields.io/nuget/v/JT808.Protocol.Extensions.YueBiao.svg) | ![JT808.Protocol.Extensions.YueBiao](https://img.shields.io/nuget/vpre/JT808.Protocol.Extensions.YueBiao.svg) | ![JT808](https://img.shields.io/nuget/dt/JT808.Protocol.Extensions.YueBiao.svg) | 主动安全(粤标)扩展 JT808 |
| Install-Package JT808.Protocol.Extensions.GPS51 | ![JT808.Protocol.Extensions.GPS51](https://img.shields.io/nuget/v/JT808.Protocol.Extensions.GPS51.svg) | ![JT808.Protocol.Extensions.GPS51](https://img.shields.io/nuget/vpre/JT808.Protocol.Extensions.GPS51.svg) | ![JT808](https://img.shields.io/nuget/dt/JT808.Protocol.Extensions.GPS51.svg) | 主动安全(粤标)扩展 JT808 |


## 使用 BenchmarkDotNet 性能测试报告(只是玩玩,不能当真)



+ 1
- 1
global.json Visa fil

@@ -1,5 +1,5 @@
{
"sdk": {
"version": "8.0.100"
"version": "8.0.203"
}
}

+ 96
- 0
src/.editorconfig Visa fil

@@ -8,3 +8,99 @@ dotnet_diagnostic.IDE0028.severity = none

# IDE0059: 不需要赋值
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

+ 2
- 2
src/Info.props Visa fil

@@ -8,7 +8,7 @@
<PackageProjectUrl>https://github.com/SmallChi/JT808</PackageProjectUrl>
<licenseUrl>https://github.com/SmallChi/JT808/blob/master/LICENSE</licenseUrl>
<license>https://github.com/SmallChi/JT808/blob/master/LICENSE</license>
<Version>2.6.5</Version>
<Version>2.6.6</Version>
<ImplicitUsings>enable</ImplicitUsings>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
@@ -29,6 +29,6 @@
</PropertyGroup>

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

+ 2
- 2
src/JT808.Protocol.Benchmark/JT808.Protocol.Benchmark.csproj Visa fil

@@ -14,8 +14,8 @@
<None Remove="ReportTest\**" />
</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="System.Buffers" Version="4.5.1" />
<PackageReference Include="System.Memory" Version="4.5.5" />


+ 3
- 3
src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.GPS51.Test/JT808.Protocol.Extensions.GPS51.Test.csproj Visa fil

@@ -7,9 +7,9 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyInjection" 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>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>


+ 2
- 1
src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.GPS51.Test/JT808_0x0200_0x51_Test.cs Visa fil

@@ -14,7 +14,7 @@ namespace JT808.Protocol.Extensions.GPS51.Test
{
ServiceCollection serviceDescriptors = new ServiceCollection();
serviceDescriptors.AddJT808Configure()
.AddGPS51Configure();
.AddGPS51Configure();

IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService<IJT808Config>();
JT808Serializer = new JT808Serializer(jT808Config);
@@ -22,6 +22,7 @@ namespace JT808.Protocol.Extensions.GPS51.Test
[Fact]
public void Serializer()
{
#warning ÓÐÎÊÌâ
JT808_0x0200 jT808UploadLocationRequest = new JT808_0x0200
{
AlarmFlag = 1,


+ 2
- 0
src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.GPS51/DependencyInjectionExtensions.cs Visa fil

@@ -6,11 +6,13 @@ using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text;
using static System.Net.WebRequestMethods;

namespace JT808.Protocol.Extensions.GPS51
{
/// <summary>
/// GPS51 extension JT/T808
/// <see cref="https://gps51.com/#/jt808add"/>
/// </summary>
public static class DependencyInjectionExtensions
{


+ 18
- 1
src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.GPS51/JT808.Protocol.Extensions.GPS51.csproj Visa fil

@@ -1,9 +1,26 @@
<Project Sdk="Microsoft.NET.Sdk">

<Import Project="..\..\Info.props" />
<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>

<ItemGroup>
<None Include="..\..\..\LICENSE" Pack="true" PackagePath="" />
<None Include="..\..\..\README.md" Pack="true" PackagePath="" />
<None Include="..\..\..\README.en.md" Pack="true" PackagePath="" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\JT808.Protocol\JT808.Protocol.csproj" />
</ItemGroup>


+ 345
- 0
src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.GPS51/JT808.Protocol.Extensions.GPS51.xml Visa fil

@@ -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>

+ 2
- 1
src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.GPS51/MessageBody/JT808_0x0200_0x2B_Ext.cs Visa fil

@@ -43,7 +43,8 @@ namespace JT808.Protocol.Extensions.GPS51.MessageBody
value.AttachInfoLength = reader.ReadByte();
writer.WriteNumber($"[{value.AttachInfoLength.ReadNumber()}]附加信息长度", value.AttachInfoLength);
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());
}
writer.WriteString($"[油量值:{string.Join("", value.Oils.Select(m=>m.ReadNumber()))}]",string.Join(",", value.Oils));


+ 2
- 1
src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.GPS51/MessageBody/JT808_0x0200_0x51.cs Visa fil

@@ -43,7 +43,8 @@ namespace JT808.Protocol.Extensions.GPS51.MessageBody
value.AttachInfoLength = reader.ReadByte();
writer.WriteNumber($"[{value.AttachInfoLength.ReadNumber()}]附加信息长度", value.AttachInfoLength);
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());
}
writer.WriteString($"[温度值:{string.Join("", value.Temperatures.Select(m=>m.ReadNumber()))}]",string.Join(",", value.Temperatures));


+ 95
- 0
src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.GPS51/MessageBody/JT808_0x0200_0x52.cs Visa fil

@@ -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);
}
}
}

+ 3
- 3
src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078.Test/JT808.Protocol.Extensions.JT1078.Test.csproj Visa fil

@@ -7,9 +7,9 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyInjection" 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>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>


+ 3
- 3
src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.SuBiao.Test/JT808.Protocol.Extensions.SuBiao.Test.csproj Visa fil

@@ -8,9 +8,9 @@

<ItemGroup>
<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>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>


+ 4
- 4
src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808.Protocol.Extensions.YueBiao.Test.csproj Visa fil

@@ -8,13 +8,13 @@

<ItemGroup>
<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>
<PrivateAssets>all</PrivateAssets>
</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>
<PrivateAssets>all</PrivateAssets>
</PackageReference>


+ 5
- 5
src/JT808.Protocol.Test/JT808.Protocol.Test.csproj Visa fil

@@ -108,17 +108,17 @@
</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="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="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>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3">
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.7">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>


+ 3
- 3
src/JT808.Protocol/JT808.Protocol.csproj Visa fil

@@ -46,9 +46,9 @@
<PackageReference Include="System.Dynamic.Runtime" Version="4.3.0" />
<PackageReference Include="System.Memory" Version="4.5.5" />
<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="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.1" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'net7.0' ">
@@ -57,7 +57,7 @@
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net8.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>


+ 1
- 1
src/JT808.Protocol/MessageBody/JT808_0x0800.cs Visa fil

@@ -74,7 +74,7 @@ namespace JT808.Protocol.MessageBody
value.MultimediaCodingFormat = reader.ReadByte();
writer.WriteNumber($"[{value.MultimediaCodingFormat.ReadNumber()}]多媒体格式编码-{((JT808MultimediaCodingFormat)value.MultimediaCodingFormat).ToString()}", value.MultimediaCodingFormat);
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();
writer.WriteNumber($"[{value.ChannelId.ReadNumber()}]通道ID", value.ChannelId);
}


Laddar…
Avbryt
Spara