From 183f2e22081fad0b991d7ab794b01cf84de8c48e Mon Sep 17 00:00:00 2001 From: "SmallChi(Koike)" <564952747@qq.com> Date: Mon, 2 Dec 2019 12:17:06 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A02019=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E6=B6=88=E6=81=AFId=E6=9E=9A=E4=B8=BE=E7=B1=BB=E5=9E=8B=202.?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B6=88=E6=81=AF=E4=BD=93=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=E4=B8=BA=E5=BC=95=E7=94=A8=E7=B1=BB=E5=9E=8B=203.=E5=A2=9E?= =?UTF-8?q?=E5=8A=A02019=E7=89=88=E6=9C=AC=E5=8D=8F=E8=AE=AE=E6=B6=88?= =?UTF-8?q?=E6=81=AFDemo7=204.=E5=B0=862019=E7=89=88=E6=9C=AC=E6=B6=89?= =?UTF-8?q?=E5=8F=8A=E7=9A=84=E6=B6=88=E6=81=AF=E6=89=93=E4=B8=8A=E6=A0=87?= =?UTF-8?q?=E8=AE=B0=205.=E4=BF=AE=E6=94=B9=E6=96=87=E6=A1=A3=E5=86=85?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 20 +- .../JT808SerializerTest.cs | 5 +- .../MessageBody/JT808_0x0001Test.cs | 2 +- .../MessageBody/JT808_0x0801Test.cs | 2 +- .../MessageBody/JT808_0x0805Test.cs | 8 +- src/JT808.Protocol.Test/Simples/Demo7.cs | 86 +- src/JT808.Protocol/Enums/JT808MsgId.cs | 42 + .../Extensions/JT808PackageExtensions.cs | 64 +- .../JT808PackageExtensionsTemplate.cs | 1376 ++++++++++++++++- .../JT808PackageExtensionsTemplate.tt | 18 + .../Interfaces/GlobalConfigBase.cs | 2 - src/JT808.Protocol/Interfaces/IJT808Config.cs | 2 - .../Internal/DefaultGlobalConfig.cs | 4 +- src/JT808.Protocol/JT808.Protocol.xml | 973 +++++++++++- src/JT808.Protocol/JT808Header.cs | 2 +- .../JT808HeaderMessageBodyProperty.cs | 54 +- src/JT808.Protocol/JT808HeaderPackage.cs | 55 +- src/JT808.Protocol/JT808Package.cs | 3 +- src/JT808.Protocol/JT808Serializer.cs | 4 +- .../MessageBody/JT808_0x0802.cs | 3 +- .../MessageBody/JT808_0x0900.cs | 3 +- .../MessageBody/JT808_0x8805.cs | 3 +- .../MessageBody/JT808_0x8900.cs | 3 +- 23 files changed, 2508 insertions(+), 226 deletions(-) diff --git a/README.md b/README.md index d283401..fecf838 100644 --- a/README.md +++ b/README.md @@ -268,6 +268,18 @@ JT808Serializer DT2JT808Serializer = new JT808Serializer(DT2JT808Config); [可以参考Simples的Demo6](https://github.com/SmallChi/JT808/blob/master/src/JT808.Protocol.Test/Simples/Demo6.cs) +### 举个栗子7 + +如何兼容2019版本 + +> 最新协议文档已经写好了如何做兼容,就是在消息体属性中第14位为版本标识。 + +1. 当第14位为0时,标识协议为2011年的版本; + +2. 当第14位为1时,标识协议为2019年的版本。 + +[可以参考Simples的Demo7](https://github.com/SmallChi/JT808/blob/master/src/JT808.Protocol.Test/Simples/Demo7.cs) + ## NuGet安装 | Package Name | Version | Downloads | @@ -367,9 +379,9 @@ Platform=AnyCpu Server=False Toolchain=.NET Core 3.0 | 57 | 0x0802 | √ | √ | 存储多媒体数据检索应答 | | 58 | 0x8803 | √ | √ | 存储多媒体数据上传 | | 59 | 0x8804 | √ | √ | 录音开始命令 | -| 60 | 0x8805 | √ | √ | 单条存储多媒体数据检索上传命令 | -| 61 | 0x8900 | √ | √ | 数据下行透传 | -| 62 | 0x0900 | √ | √ | 数据上行透传 | +| 60 | 0x8805 | √ | √ | 单条存储多媒体数据检索上传命令 |修改| +| 61 | 0x8900 | √ | √ | 数据下行透传 |修改| +| 62 | 0x0900 | √ | √ | 数据上行透传 |修改| | 63 | 0x0901 | √ | √ | 数据压缩上报 | | 64 | 0x8A00 | √ | √ | 平台 RSA 公钥 | | 65 | 0x0A00 | √ | √ | 终端 RSA 公钥 | @@ -381,3 +393,5 @@ Platform=AnyCpu Server=False Toolchain=.NET Core 3.0 | 71 | 0x8204 | √ | √ | 链路检测 |新增| | 72 | 0x8608 | √ | √ | 查询区域或线路数据 |新增| | 73 | 0x0608 | √ | √ | 查询区域或线路数据应答 |新增| +| 74 | 0xE000~0xEFFF | 保留 | 保留 | 厂商自定义上行消息 |新增| +| 75 | 0xF000~0xFFFF | 保留 | 保留 | 厂商自定义下行消息 |新增| diff --git a/src/JT808.Protocol.Test/JT808SerializerTest.cs b/src/JT808.Protocol.Test/JT808SerializerTest.cs index 6f6bd89..cbc1b95 100644 --- a/src/JT808.Protocol.Test/JT808SerializerTest.cs +++ b/src/JT808.Protocol.Test/JT808SerializerTest.cs @@ -40,7 +40,8 @@ namespace JT808.Protocol.Test { MsgId = Enums.JT808MsgId.终端通用应答.ToUInt16Value(), MsgNum = 1203, - TerminalPhoneNo = "012345678900" + TerminalPhoneNo = "012345678900", + MessageBodyProperty=new JT808HeaderMessageBodyProperty() }, Bodies = new JT808_0x0001 { @@ -61,7 +62,7 @@ namespace JT808.Protocol.Test { if (i % 2 == 0) { - defaultGlobalConfigs.Add(new DefaultGlobalConfig(i.ToString(), JT808Version.JTT2019)); + defaultGlobalConfigs.Add(new DefaultGlobalConfig(i.ToString())); } else { diff --git a/src/JT808.Protocol.Test/MessageBody/JT808_0x0001Test.cs b/src/JT808.Protocol.Test/MessageBody/JT808_0x0001Test.cs index 34cb64e..86bbdb0 100644 --- a/src/JT808.Protocol.Test/MessageBody/JT808_0x0001Test.cs +++ b/src/JT808.Protocol.Test/MessageBody/JT808_0x0001Test.cs @@ -17,7 +17,7 @@ namespace JT808.Protocol.Test.MessageBody { MsgId = Enums.JT808MsgId.终端通用应答.ToUInt16Value(), MsgNum = 1203, - TerminalPhoneNo = "012345678900" + TerminalPhoneNo = "012345678900", }, Bodies = new JT808_0x0001 { diff --git a/src/JT808.Protocol.Test/MessageBody/JT808_0x0801Test.cs b/src/JT808.Protocol.Test/MessageBody/JT808_0x0801Test.cs index f654047..d4cf183 100644 --- a/src/JT808.Protocol.Test/MessageBody/JT808_0x0801Test.cs +++ b/src/JT808.Protocol.Test/MessageBody/JT808_0x0801Test.cs @@ -88,7 +88,7 @@ namespace JT808.Protocol.Test.MessageBody public void Package3() { byte[] bytes = "7e080123000138123456782032000a000205060708090a0bffc400b5100002010303020403050504040000017d0101020300041105122131410613516107227114328191a1082342b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b51100020102040403040705040400010277000102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a434445464748494a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffdd00040000ffda000c03010002110311003f006c6a2a755ce299a5c942e0f35281c5004aa72314a54e38a07b8841ef4840a0673de21b4ff498ee402038dade991fe7f4acc110f4a0cd8ef2f1405cd01d45f2e9360a062edc5745616a6dad511861cfccff0053499512e056cf1460e3348a0ed4b8e338fc2819cb5edbfd9ee648b18556f97fdd3d3f4aafb4d332ea433a6573e9550d3131d18c9c558031c0a4083a503039a60c42c2984e4f4a06260d370690098ef4751400c615132d021868a621431a33480ef235e05595403eb54cbb0b8e7069dc0e3a9a41b12a024f4a9d40f4a18c5651e951c88179268194ee614b989a2719461ffea35cfdcda4b6b2ed71c1e55874345c96ba91819a704c50217613db349b39031c9e945c66a69ba794713cebf30fb8be9ee6b540c1e948a48760e3a526d2dc77a0a144471d297cb623a71484646bb685234b81d01d8e7d018f43f9ff003ac16386c552225b8300c2a84c8c8c4ed247b502616cc0517e".ToHexBytes(); - JT808HeaderPackage jT808_0X0801 = JT808Serializer.Deserialize(bytes); + JT808HeaderPackage jT808_0X0801 = JT808Serializer.HeaderDeserialize(bytes); } } } diff --git a/src/JT808.Protocol.Test/MessageBody/JT808_0x0805Test.cs b/src/JT808.Protocol.Test/MessageBody/JT808_0x0805Test.cs index c32bd81..fa9999c 100644 --- a/src/JT808.Protocol.Test/MessageBody/JT808_0x0805Test.cs +++ b/src/JT808.Protocol.Test/MessageBody/JT808_0x0805Test.cs @@ -13,23 +13,23 @@ namespace JT808.Protocol.Test.MessageBody { JT808_0x0805 jT808_0X0805 = new JT808_0x0805(); jT808_0X0805.ReplyMsgNum = 12456; - jT808_0X0805.Result = 1; + jT808_0X0805.Result = 0; jT808_0X0805.MultimediaIds = new List() { 12306, 12580 }; string hex = JT808Serializer.Serialize(jT808_0X0805).ToHexString(); - Assert.Equal("30A80100020000301200003124", hex); + Assert.Equal("30A80000020000301200003124", hex); } [Fact] public void Test2() { - byte[] bytes = "30A80100020000301200003124".ToHexBytes(); + byte[] bytes = "30A80000020000301200003124".ToHexBytes(); JT808_0x0805 jT808_0X0805 = JT808Serializer.Deserialize(bytes); Assert.Equal(12456, jT808_0X0805.ReplyMsgNum); - Assert.Equal(1, jT808_0X0805.Result); + Assert.Equal(0, jT808_0X0805.Result); Assert.Equal(2, jT808_0X0805.MultimediaIdCount); Assert.Equal(new List() { diff --git a/src/JT808.Protocol.Test/Simples/Demo7.cs b/src/JT808.Protocol.Test/Simples/Demo7.cs index 40d9626..0dff5fd 100644 --- a/src/JT808.Protocol.Test/Simples/Demo7.cs +++ b/src/JT808.Protocol.Test/Simples/Demo7.cs @@ -1,84 +1,48 @@ -using JT808.Protocol.Interfaces; +using JT808.Protocol.Enums; +using JT808.Protocol.Interfaces; +using JT808.Protocol.Internal; +using JT808.Protocol.Extensions; using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; using System.Text; using Xunit; +using JT808.Protocol.MessageBody; namespace JT808.Protocol.Test.Simples { public class Demo7 { - /// - /// 单个 - /// - [Fact] - public void Test1() + public JT808Serializer JT808Serializer; + public Demo7() { - IServiceCollection serviceDescriptors1 = new ServiceCollection(); - serviceDescriptors1.AddJT808Configure(new DefaultConfig()); - var serviceProvider1 = serviceDescriptors1.BuildServiceProvider(); - var config = serviceProvider1.GetRequiredService(); - var defaultConfig = (DefaultConfig)config; - Assert.Equal("test", defaultConfig.ConfigId); - Assert.Equal("smallchi", defaultConfig.Test()); + IJT808Config jT808Config = new DefaultGlobalConfig(); + JT808Serializer = new JT808Serializer(jT808Config); } - /// - /// 多个 - /// [Fact] - public void Test2() + public void Test1() { - IServiceCollection serviceDescriptors2 = new ServiceCollection(); - serviceDescriptors2.AddJT808Configure(new Config1()); - serviceDescriptors2.AddJT808Configure(new Config2()); - serviceDescriptors2.AddSingleton(factory => + JT808Package jT808Package = JT808MsgId.查询服务器时间应答.Create_查询服务器时间应答_2019("123456789012", + new JT808_0x8004 { - Func accesor = key => - { - if (key.Equals("Config1")) - { - return factory.GetService(); - } - else if (key.Equals("Config2")) - { - return factory.GetService(); - } - else - { - throw new ArgumentException($"Not Support key : {key}"); - } - }; - return accesor; + Time = DateTime.Parse("2019-12-02 10:10:10"), }); - var ServiceProvider2 = serviceDescriptors2.BuildServiceProvider(); - var config1 = ServiceProvider2.GetRequiredService>()("Config1"); - Assert.Equal("Config1", config1.ConfigId); - Assert.Equal("Config1", config1.GetSerializer().SerializerId); - var config2 = ServiceProvider2.GetRequiredService>()("Config2"); - Assert.Equal("Config2", config2.ConfigId); - Assert.Equal("Config2", config2.GetSerializer().SerializerId); - } - - public class DefaultConfig : GlobalConfigBase - { - public override string ConfigId { get; protected set; } = "test"; - - public string Test() - { - return "smallchi"; - } + jT808Package.Header.MsgNum = 1; + byte[] data = JT808Serializer.Serialize(jT808Package); + var hex = data.ToHexString(); + Assert.Equal("7E8004400601000000001234567890120001191202101010517E", hex); } - public class Config1 : GlobalConfigBase - { - public override string ConfigId { get; protected set; } = "Config1"; - } - - public class Config2 : GlobalConfigBase + [Fact] + public void Test2() { - public override string ConfigId { get; protected set; } = "Config2"; + var data = "7E8004400601000000001234567890120001191202101010517E".ToHexBytes(); + JT808Package jT808Package = JT808Serializer.Deserialize(data); + Assert.Equal(JT808MsgId.查询服务器时间应答.ToUInt16Value(), jT808Package.Header.MsgId); + Assert.Equal(JT808Version.JTT2019, jT808Package.Version); + Assert.True(jT808Package.Header.MessageBodyProperty.VersionFlag); + Assert.Equal(DateTime.Parse("2019-12-02 10:10:10"), ((JT808_0x8004)jT808Package.Bodies).Time); } } } diff --git a/src/JT808.Protocol/Enums/JT808MsgId.cs b/src/JT808.Protocol/Enums/JT808MsgId.cs index cd41b0a..5b4166b 100644 --- a/src/JT808.Protocol/Enums/JT808MsgId.cs +++ b/src/JT808.Protocol/Enums/JT808MsgId.cs @@ -456,5 +456,47 @@ namespace JT808.Protocol.Enums [JT808BodiesType(typeof(JT808_0x0A00))] [JT808MsgIdDescription("0x0A00", "终端RSA公钥")] 终端RSA公钥 = 0x0A00, + /// + /// 查询服务器时间请求 + /// 0x0004 + /// + [JT808BodiesType(typeof(JT808_0x0004))] + [JT808MsgIdDescription("0x0004", "查询服务器时间请求")] + 查询服务器时间请求 = 0x0004, + /// + /// 查询服务器时间应答 + /// 0x8004 + /// + [JT808BodiesType(typeof(JT808_0x8004))] + [JT808MsgIdDescription("0x8004", "查询服务器时间应答")] + 查询服务器时间应答 = 0x8004, + /// + /// 终端补传分包请求 + /// 0x0005 + /// + [JT808BodiesType(typeof(JT808_0x0005))] + [JT808MsgIdDescription("0x0005", "终端补传分包请求")] + 终端补传分包请求 = 0x0005, + /// + /// 链路检测 + /// 0x8204 + /// + [JT808BodiesType(typeof(JT808_0x8204))] + [JT808MsgIdDescription("0x8204", "链路检测")] + 链路检测 = 0x8204, + /// + /// 查询区域或线路数据 + /// 0x8608 + /// + [JT808BodiesType(typeof(JT808_0x8608))] + [JT808MsgIdDescription("0x8608", "查询区域或线路数据")] + 查询区域或线路数据 = 0x8608, + /// + /// 查询区域或线路数据应答 + /// 0x0608 + /// + [JT808BodiesType(typeof(JT808_0x0608))] + [JT808MsgIdDescription("0x0608", "查询区域或线路数据应答")] + 查询区域或线路数据应答 = 0x0608, } } diff --git a/src/JT808.Protocol/Extensions/JT808PackageExtensions.cs b/src/JT808.Protocol/Extensions/JT808PackageExtensions.cs index 9c5f515..2aed936 100644 --- a/src/JT808.Protocol/Extensions/JT808PackageExtensions.cs +++ b/src/JT808.Protocol/Extensions/JT808PackageExtensions.cs @@ -12,7 +12,7 @@ namespace JT808.Protocol.Extensions Header = new JT808Header { MsgId = (ushort)msgId, - TerminalPhoneNo = terminalPhoneNo + TerminalPhoneNo = terminalPhoneNo, }, Bodies = bodies }; @@ -26,7 +26,7 @@ namespace JT808.Protocol.Extensions Header = new JT808Header { MsgId = (ushort)msgId, - TerminalPhoneNo = terminalPhoneNo + TerminalPhoneNo = terminalPhoneNo, } }; return jT808Package; @@ -59,5 +59,65 @@ namespace JT808.Protocol.Extensions }; return jT808Package; } + + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo, TJT808Bodies bodies) + where TJT808Bodies : JT808Bodies + { + JT808Package jT808Package = new JT808Package + { + Header = new JT808Header + { + MsgId = (ushort)msgId, + TerminalPhoneNo = terminalPhoneNo, + }, + Bodies = bodies + }; + jT808Package.Header.MessageBodyProperty.VersionFlag = true; + return jT808Package; + } + + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo) + { + JT808Package jT808Package = new JT808Package + { + Header = new JT808Header + { + MsgId = (ushort)msgId, + TerminalPhoneNo = terminalPhoneNo, + } + }; + jT808Package.Header.MessageBodyProperty.VersionFlag = true; + return jT808Package; + } + + public static JT808Package CreateCustomMsgId2019(this ushort msgId, string terminalPhoneNo, TJT808Bodies bodies) + where TJT808Bodies : JT808Bodies + { + JT808Package jT808Package = new JT808Package + { + Header = new JT808Header + { + MsgId = msgId, + TerminalPhoneNo = terminalPhoneNo + }, + Bodies = bodies + }; + jT808Package.Header.MessageBodyProperty.VersionFlag = true; + return jT808Package; + } + + public static JT808Package CreateCustomMsgId2019(this ushort msgId, string terminalPhoneNo) + { + JT808Package jT808Package = new JT808Package + { + Header = new JT808Header + { + MsgId = msgId, + TerminalPhoneNo = terminalPhoneNo + } + }; + jT808Package.Header.MessageBodyProperty.VersionFlag = true; + return jT808Package; + } } } diff --git a/src/JT808.Protocol/Extensions/JT808PackageExtensionsTemplate.cs b/src/JT808.Protocol/Extensions/JT808PackageExtensionsTemplate.cs index 0c79e71..a4d2a5a 100644 --- a/src/JT808.Protocol/Extensions/JT808PackageExtensionsTemplate.cs +++ b/src/JT808.Protocol/Extensions/JT808PackageExtensionsTemplate.cs @@ -21,6 +21,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x0001 - 终端通用应答 + /// auto-generated 2019 version + /// + public static JT808Package Create_终端通用应答_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0001 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0001 - 终端通用应答 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0001 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x0002 - 终端心跳 /// auto-generated @@ -38,6 +56,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x0002 - 终端心跳 + /// auto-generated 2019 version + /// + public static JT808Package Create_终端心跳_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0002 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0002 - 终端心跳 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0002 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x0003 - 终端注销 /// auto-generated @@ -55,6 +91,94 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x0003 - 终端注销 + /// auto-generated 2019 version + /// + public static JT808Package Create_终端注销_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0003 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0003 - 终端注销 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0003 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + /// + /// 0x0004 - 查询服务器时间请求 + /// auto-generated + /// + public static JT808Package Create_查询服务器时间请求(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0004 bodies) + { + return Create(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0004 - 查询服务器时间请求 + /// auto-generated + /// + public static JT808Package Create(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0004 bodies) + { + return Create(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0004 - 查询服务器时间请求 + /// auto-generated 2019 version + /// + public static JT808Package Create_查询服务器时间请求_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0004 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0004 - 查询服务器时间请求 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0004 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + /// + /// 0x0005 - 终端补传分包请求 + /// auto-generated + /// + public static JT808Package Create_终端补传分包请求(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0005 bodies) + { + return Create(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0005 - 终端补传分包请求 + /// auto-generated + /// + public static JT808Package Create(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0005 bodies) + { + return Create(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0005 - 终端补传分包请求 + /// auto-generated 2019 version + /// + public static JT808Package Create_终端补传分包请求_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0005 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0005 - 终端补传分包请求 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0005 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x0100 - 终端注册 /// auto-generated @@ -72,6 +196,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x0100 - 终端注册 + /// auto-generated 2019 version + /// + public static JT808Package Create_终端注册_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0100 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0100 - 终端注册 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0100 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x0102 - 终端鉴权 /// auto-generated @@ -89,6 +231,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x0102 - 终端鉴权 + /// auto-generated 2019 version + /// + public static JT808Package Create_终端鉴权_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0102 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0102 - 终端鉴权 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0102 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x0104 - 查询终端参数应答 /// auto-generated @@ -106,6 +266,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x0104 - 查询终端参数应答 + /// auto-generated 2019 version + /// + public static JT808Package Create_查询终端参数应答_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0104 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0104 - 查询终端参数应答 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0104 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x0107 - 查询终端属性应答 /// auto-generated @@ -123,6 +301,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x0107 - 查询终端属性应答 + /// auto-generated 2019 version + /// + public static JT808Package Create_查询终端属性应答_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0107 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0107 - 查询终端属性应答 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0107 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x0108 - 终端升级结果通知 /// auto-generated @@ -140,6 +336,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x0108 - 终端升级结果通知 + /// auto-generated 2019 version + /// + public static JT808Package Create_终端升级结果通知_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0108 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0108 - 终端升级结果通知 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0108 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x0200 - 位置信息汇报 /// auto-generated @@ -157,6 +371,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x0200 - 位置信息汇报 + /// auto-generated 2019 version + /// + public static JT808Package Create_位置信息汇报_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0200 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0200 - 位置信息汇报 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0200 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x0201 - 位置信息查询应答 /// auto-generated @@ -174,6 +406,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x0201 - 位置信息查询应答 + /// auto-generated 2019 version + /// + public static JT808Package Create_位置信息查询应答_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0201 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0201 - 位置信息查询应答 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0201 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x0301 - 事件报告 /// auto-generated @@ -191,6 +441,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x0301 - 事件报告 + /// auto-generated 2019 version + /// + public static JT808Package Create_事件报告_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0301 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0301 - 事件报告 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0301 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8302 - 提问应答 /// auto-generated @@ -208,6 +476,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8302 - 提问应答 + /// auto-generated 2019 version + /// + public static JT808Package Create_提问应答_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0302 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8302 - 提问应答 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0302 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x0303 - 信息点播或取消 /// auto-generated @@ -225,6 +511,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x0303 - 信息点播或取消 + /// auto-generated 2019 version + /// + public static JT808Package Create_信息点播或取消_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0303 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0303 - 信息点播或取消 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0303 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x0500 - 车辆控制应答 /// auto-generated @@ -242,6 +546,59 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x0500 - 车辆控制应答 + /// auto-generated 2019 version + /// + public static JT808Package Create_车辆控制应答_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0500 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0500 - 车辆控制应答 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0500 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + /// + /// 0x0608 - 查询区域或线路数据应答 + /// auto-generated + /// + public static JT808Package Create_查询区域或线路数据应答(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0608 bodies) + { + return Create(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0608 - 查询区域或线路数据应答 + /// auto-generated + /// + public static JT808Package Create(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0608 bodies) + { + return Create(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0608 - 查询区域或线路数据应答 + /// auto-generated 2019 version + /// + public static JT808Package Create_查询区域或线路数据应答_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0608 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0608 - 查询区域或线路数据应答 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0608 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x0701 - 电子运单上报 /// auto-generated @@ -259,6 +616,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x0701 - 电子运单上报 + /// auto-generated 2019 version + /// + public static JT808Package Create_电子运单上报_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0701 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0701 - 电子运单上报 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0701 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x0702 - 驾驶员身份信息采集上报 /// auto-generated @@ -276,6 +651,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x0702 - 驾驶员身份信息采集上报 + /// auto-generated 2019 version + /// + public static JT808Package Create_驾驶员身份信息采集上报_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0702 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0702 - 驾驶员身份信息采集上报 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0702 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x0704 - 定位数据批量上传 /// auto-generated @@ -293,6 +686,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x0704 - 定位数据批量上传 + /// auto-generated 2019 version + /// + public static JT808Package Create_定位数据批量上传_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0704 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0704 - 定位数据批量上传 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0704 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x0705 - CAN总线数据上传 /// auto-generated @@ -310,6 +721,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x0705 - CAN总线数据上传 + /// auto-generated 2019 version + /// + public static JT808Package Create_CAN总线数据上传_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0705 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0705 - CAN总线数据上传 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0705 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x0800 - 多媒体事件信息上传 /// auto-generated @@ -327,6 +756,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x0800 - 多媒体事件信息上传 + /// auto-generated 2019 version + /// + public static JT808Package Create_多媒体事件信息上传_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0800 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0800 - 多媒体事件信息上传 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0800 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x0801 - 多媒体数据上传 /// auto-generated @@ -344,6 +791,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x0801 - 多媒体数据上传 + /// auto-generated 2019 version + /// + public static JT808Package Create_多媒体数据上传_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0801 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0801 - 多媒体数据上传 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0801 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x0805 - 摄像头立即拍摄命令应答 /// auto-generated @@ -361,6 +826,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x0805 - 摄像头立即拍摄命令应答 + /// auto-generated 2019 version + /// + public static JT808Package Create_摄像头立即拍摄命令应答_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0805 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0805 - 摄像头立即拍摄命令应答 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0805 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x0900 - 数据上行透传 /// auto-generated @@ -378,73 +861,198 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x0900 - 数据上行透传 + /// auto-generated 2019 version + /// + public static JT808Package Create_数据上行透传_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0900 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0900 - 数据上行透传 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0900 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + /// + /// 0x0901 - 数据压缩上报 + /// auto-generated + /// + public static JT808Package Create_数据压缩上报(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0901 bodies) + { + return Create(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0901 - 数据压缩上报 + /// auto-generated + /// + public static JT808Package Create(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0901 bodies) + { + return Create(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0901 - 数据压缩上报 + /// auto-generated 2019 version + /// + public static JT808Package Create_数据压缩上报_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0901 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0901 - 数据压缩上报 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0901 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + /// + /// 0x0A00 - 终端RSA公钥 + /// auto-generated + /// + public static JT808Package Create_终端RSA公钥(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0A00 bodies) + { + return Create(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0A00 - 终端RSA公钥 + /// auto-generated + /// + public static JT808Package Create(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0A00 bodies) + { + return Create(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0A00 - 终端RSA公钥 + /// auto-generated 2019 version + /// + public static JT808Package Create_终端RSA公钥_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0A00 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x0A00 - 终端RSA公钥 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0A00 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + /// + /// 0x8001 - 平台通用应答 + /// auto-generated + /// + public static JT808Package Create_平台通用应答(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8001 bodies) + { + return Create(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8001 - 平台通用应答 + /// auto-generated + /// + public static JT808Package Create(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8001 bodies) + { + return Create(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8001 - 平台通用应答 + /// auto-generated 2019 version + /// + public static JT808Package Create_平台通用应答_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8001 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8001 - 平台通用应答 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8001 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// - /// 0x0901 - 数据压缩上报 + /// 0x8003 - 补传分包请求 /// auto-generated /// - public static JT808Package Create_数据压缩上报(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0901 bodies) + public static JT808Package Create_补传分包请求(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8003 bodies) { - return Create(msgId,terminalPhoneNo,bodies); + return Create(msgId,terminalPhoneNo,bodies); } /// - /// 0x0901 - 数据压缩上报 + /// 0x8003 - 补传分包请求 /// auto-generated /// - public static JT808Package Create(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0901 bodies) + public static JT808Package Create(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8003 bodies) { - return Create(msgId,terminalPhoneNo,bodies); + return Create(msgId,terminalPhoneNo,bodies); } + /// - /// 0x0A00 - 终端RSA公钥 - /// auto-generated + /// 0x8003 - 补传分包请求 + /// auto-generated 2019 version /// - public static JT808Package Create_终端RSA公钥(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0A00 bodies) + public static JT808Package Create_补传分包请求_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8003 bodies) { - return Create(msgId,terminalPhoneNo,bodies); + return Create2019(msgId,terminalPhoneNo,bodies); } /// - /// 0x0A00 - 终端RSA公钥 - /// auto-generated + /// 0x8003 - 补传分包请求 + /// auto-generated 2019 version /// - public static JT808Package Create(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x0A00 bodies) + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8003 bodies) { - return Create(msgId,terminalPhoneNo,bodies); + return Create2019(msgId,terminalPhoneNo,bodies); } /// - /// 0x8001 - 平台通用应答 + /// 0x8004 - 查询服务器时间应答 /// auto-generated /// - public static JT808Package Create_平台通用应答(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8001 bodies) + public static JT808Package Create_查询服务器时间应答(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8004 bodies) { - return Create(msgId,terminalPhoneNo,bodies); + return Create(msgId,terminalPhoneNo,bodies); } /// - /// 0x8001 - 平台通用应答 + /// 0x8004 - 查询服务器时间应答 /// auto-generated /// - public static JT808Package Create(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8001 bodies) + public static JT808Package Create(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8004 bodies) { - return Create(msgId,terminalPhoneNo,bodies); + return Create(msgId,terminalPhoneNo,bodies); } + /// - /// 0x8003 - 补传分包请求 - /// auto-generated + /// 0x8004 - 查询服务器时间应答 + /// auto-generated 2019 version /// - public static JT808Package Create_补传分包请求(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8003 bodies) + public static JT808Package Create_查询服务器时间应答_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8004 bodies) { - return Create(msgId,terminalPhoneNo,bodies); + return Create2019(msgId,terminalPhoneNo,bodies); } /// - /// 0x8003 - 补传分包请求 - /// auto-generated + /// 0x8004 - 查询服务器时间应答 + /// auto-generated 2019 version /// - public static JT808Package Create(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8003 bodies) + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8004 bodies) { - return Create(msgId,terminalPhoneNo,bodies); + return Create2019(msgId,terminalPhoneNo,bodies); } /// /// 0x8100 - 终端注册应答 @@ -463,6 +1071,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8100 - 终端注册应答 + /// auto-generated 2019 version + /// + public static JT808Package Create_终端注册应答_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8100 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8100 - 终端注册应答 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8100 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8103 - 设置终端参数 /// auto-generated @@ -480,6 +1106,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8103 - 设置终端参数 + /// auto-generated 2019 version + /// + public static JT808Package Create_设置终端参数_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8103 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8103 - 设置终端参数 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8103 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8104 - 查询终端参数 /// auto-generated @@ -497,6 +1141,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8104 - 查询终端参数 + /// auto-generated 2019 version + /// + public static JT808Package Create_查询终端参数_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8104 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8104 - 查询终端参数 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8104 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8105 - 终端控制 /// auto-generated @@ -514,6 +1176,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8105 - 终端控制 + /// auto-generated 2019 version + /// + public static JT808Package Create_终端控制_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8105 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8105 - 终端控制 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8105 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8106 - 查询指定终端参数 /// auto-generated @@ -531,6 +1211,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8106 - 查询指定终端参数 + /// auto-generated 2019 version + /// + public static JT808Package Create_查询指定终端参数_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8106 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8106 - 查询指定终端参数 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8106 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8107 - 查询终端属性 /// auto-generated @@ -548,6 +1246,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8107 - 查询终端属性 + /// auto-generated 2019 version + /// + public static JT808Package Create_查询终端属性_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8107 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8107 - 查询终端属性 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8107 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8108 - 下发终端升级包 /// auto-generated @@ -565,6 +1281,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8108 - 下发终端升级包 + /// auto-generated 2019 version + /// + public static JT808Package Create_下发终端升级包_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8108 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8108 - 下发终端升级包 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8108 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8201 - 位置信息查询 /// auto-generated @@ -582,6 +1316,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8201 - 位置信息查询 + /// auto-generated 2019 version + /// + public static JT808Package Create_位置信息查询_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8201 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8201 - 位置信息查询 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8201 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8202 - 临时位置跟踪控制 /// auto-generated @@ -599,6 +1351,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8202 - 临时位置跟踪控制 + /// auto-generated 2019 version + /// + public static JT808Package Create_临时位置跟踪控制_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8202 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8202 - 临时位置跟踪控制 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8202 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8203 - 人工确认报警消息 /// auto-generated @@ -616,6 +1386,59 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8203 - 人工确认报警消息 + /// auto-generated 2019 version + /// + public static JT808Package Create_人工确认报警消息_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8203 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8203 - 人工确认报警消息 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8203 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + /// + /// 0x8204 - 链路检测 + /// auto-generated + /// + public static JT808Package Create_链路检测(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8204 bodies) + { + return Create(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8204 - 链路检测 + /// auto-generated + /// + public static JT808Package Create(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8204 bodies) + { + return Create(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8204 - 链路检测 + /// auto-generated 2019 version + /// + public static JT808Package Create_链路检测_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8204 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8204 - 链路检测 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8204 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8300 - 文本信息下发 /// auto-generated @@ -633,6 +1456,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8300 - 文本信息下发 + /// auto-generated 2019 version + /// + public static JT808Package Create_文本信息下发_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8300 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8300 - 文本信息下发 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8300 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8301 - 事件设置 /// auto-generated @@ -650,6 +1491,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8301 - 事件设置 + /// auto-generated 2019 version + /// + public static JT808Package Create_事件设置_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8301 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8301 - 事件设置 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8301 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8302 - 提问下发 /// auto-generated @@ -667,6 +1526,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8302 - 提问下发 + /// auto-generated 2019 version + /// + public static JT808Package Create_提问下发_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8302 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8302 - 提问下发 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8302 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8303 - 信息点播菜单设置 /// auto-generated @@ -684,6 +1561,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8303 - 信息点播菜单设置 + /// auto-generated 2019 version + /// + public static JT808Package Create_信息点播菜单设置_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8303 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8303 - 信息点播菜单设置 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8303 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8304 - 信息服务 /// auto-generated @@ -701,22 +1596,58 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8304 - 信息服务 + /// auto-generated 2019 version + /// + public static JT808Package Create_信息服务_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8304 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8304 - 信息服务 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8304 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + /// + /// 0x8400 - 电话回拨 + /// auto-generated + /// + public static JT808Package Create_电话回拨(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8400 bodies) + { + return Create(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8400 - 电话回拨 + /// auto-generated + /// + public static JT808Package Create(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8400 bodies) + { + return Create(msgId,terminalPhoneNo,bodies); + } + /// /// 0x8400 - 电话回拨 - /// auto-generated + /// auto-generated 2019 version /// - public static JT808Package Create_电话回拨(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8400 bodies) + public static JT808Package Create_电话回拨_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8400 bodies) { - return Create(msgId,terminalPhoneNo,bodies); + return Create2019(msgId,terminalPhoneNo,bodies); } /// /// 0x8400 - 电话回拨 - /// auto-generated + /// auto-generated 2019 version /// - public static JT808Package Create(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8400 bodies) + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8400 bodies) { - return Create(msgId,terminalPhoneNo,bodies); + return Create2019(msgId,terminalPhoneNo,bodies); } /// /// 0x8401 - 设置电话本 @@ -735,6 +1666,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8401 - 设置电话本 + /// auto-generated 2019 version + /// + public static JT808Package Create_设置电话本_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8401 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8401 - 设置电话本 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8401 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8500 - 车辆控制 /// auto-generated @@ -752,6 +1701,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8500 - 车辆控制 + /// auto-generated 2019 version + /// + public static JT808Package Create_车辆控制_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8500 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8500 - 车辆控制 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8500 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8600 - 设置圆形区域 /// auto-generated @@ -769,6 +1736,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8600 - 设置圆形区域 + /// auto-generated 2019 version + /// + public static JT808Package Create_设置圆形区域_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8600 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8600 - 设置圆形区域 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8600 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8601 - 删除圆形区域 /// auto-generated @@ -786,6 +1771,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8601 - 删除圆形区域 + /// auto-generated 2019 version + /// + public static JT808Package Create_删除圆形区域_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8601 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8601 - 删除圆形区域 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8601 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8602 - 设置矩形区域 /// auto-generated @@ -803,6 +1806,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8602 - 设置矩形区域 + /// auto-generated 2019 version + /// + public static JT808Package Create_设置矩形区域_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8602 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8602 - 设置矩形区域 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8602 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8603 - 删除矩形区域 /// auto-generated @@ -820,6 +1841,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8603 - 删除矩形区域 + /// auto-generated 2019 version + /// + public static JT808Package Create_删除矩形区域_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8603 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8603 - 删除矩形区域 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8603 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8604 - 设置多边形区域 /// auto-generated @@ -837,6 +1876,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8604 - 设置多边形区域 + /// auto-generated 2019 version + /// + public static JT808Package Create_设置多边形区域_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8604 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8604 - 设置多边形区域 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8604 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8605 - 删除多边形区域 /// auto-generated @@ -854,6 +1911,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8605 - 删除多边形区域 + /// auto-generated 2019 version + /// + public static JT808Package Create_删除多边形区域_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8605 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8605 - 删除多边形区域 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8605 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8606 - 设置路线 /// auto-generated @@ -871,6 +1946,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8606 - 设置路线 + /// auto-generated 2019 version + /// + public static JT808Package Create_设置路线_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8606 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8606 - 设置路线 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8606 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8607 - 删除路线 /// auto-generated @@ -888,6 +1981,59 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8607 - 删除路线 + /// auto-generated 2019 version + /// + public static JT808Package Create_删除路线_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8607 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8607 - 删除路线 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8607 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + /// + /// 0x8608 - 查询区域或线路数据 + /// auto-generated + /// + public static JT808Package Create_查询区域或线路数据(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8608 bodies) + { + return Create(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8608 - 查询区域或线路数据 + /// auto-generated + /// + public static JT808Package Create(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8608 bodies) + { + return Create(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8608 - 查询区域或线路数据 + /// auto-generated 2019 version + /// + public static JT808Package Create_查询区域或线路数据_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8608 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8608 - 查询区域或线路数据 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8608 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8702 - 上报驾驶员身份信息请求 /// auto-generated @@ -905,6 +2051,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8702 - 上报驾驶员身份信息请求 + /// auto-generated 2019 version + /// + public static JT808Package Create_上报驾驶员身份信息请求_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8702 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8702 - 上报驾驶员身份信息请求 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8702 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8800 - 多媒体数据上传应答 /// auto-generated @@ -922,6 +2086,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8800 - 多媒体数据上传应答 + /// auto-generated 2019 version + /// + public static JT808Package Create_多媒体数据上传应答_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8800 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8800 - 多媒体数据上传应答 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8800 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8801 - 摄像头立即拍摄命令 /// auto-generated @@ -939,6 +2121,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8801 - 摄像头立即拍摄命令 + /// auto-generated 2019 version + /// + public static JT808Package Create_摄像头立即拍摄命令_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8801 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8801 - 摄像头立即拍摄命令 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8801 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8802 - 存储多媒体数据检索 /// auto-generated @@ -956,6 +2156,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8802 - 存储多媒体数据检索 + /// auto-generated 2019 version + /// + public static JT808Package Create_存储多媒体数据检索_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8802 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8802 - 存储多媒体数据检索 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8802 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8803 - 存储多媒体数据上传 /// auto-generated @@ -973,6 +2191,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8803 - 存储多媒体数据上传 + /// auto-generated 2019 version + /// + public static JT808Package Create_存储多媒体数据上传_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8803 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8803 - 存储多媒体数据上传 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8803 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8804 - 录音开始命令 /// auto-generated @@ -990,6 +2226,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8804 - 录音开始命令 + /// auto-generated 2019 version + /// + public static JT808Package Create_录音开始命令_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8804 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8804 - 录音开始命令 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8804 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8804 - 单条存储多媒体数据检索上传命令 /// auto-generated @@ -1007,6 +2261,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8804 - 单条存储多媒体数据检索上传命令 + /// auto-generated 2019 version + /// + public static JT808Package Create_单条存储多媒体数据检索上传命令_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8805 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8804 - 单条存储多媒体数据检索上传命令 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8805 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8900 - 数据下行透传 /// auto-generated @@ -1024,6 +2296,24 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8900 - 数据下行透传 + /// auto-generated 2019 version + /// + public static JT808Package Create_数据下行透传_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8900 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8900 - 数据下行透传 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8900 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } /// /// 0x8A00 - 平台RSA公钥 /// auto-generated @@ -1041,5 +2331,23 @@ namespace JT808.Protocol.Extensions { return Create(msgId,terminalPhoneNo,bodies); } + + /// + /// 0x8A00 - 平台RSA公钥 + /// auto-generated 2019 version + /// + public static JT808Package Create_平台RSA公钥_2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8A00 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } + + /// + /// 0x8A00 - 平台RSA公钥 + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,JT808.Protocol.MessageBody.JT808_0x8A00 bodies) + { + return Create2019(msgId,terminalPhoneNo,bodies); + } } } \ No newline at end of file diff --git a/src/JT808.Protocol/Extensions/JT808PackageExtensionsTemplate.tt b/src/JT808.Protocol/Extensions/JT808PackageExtensionsTemplate.tt index 5927ec9..17eb616 100644 --- a/src/JT808.Protocol/Extensions/JT808PackageExtensionsTemplate.tt +++ b/src/JT808.Protocol/Extensions/JT808PackageExtensionsTemplate.tt @@ -46,6 +46,24 @@ namespace JT808.Protocol.Extensions { return Create<<#= jT808BodiesTypeAttribute.JT808BodiesType.FullName#>>(msgId,terminalPhoneNo,bodies); } + + /// + /// <#= jT808MsgIdDescriptionAttribute.Code #> - <#= jT808MsgIdDescriptionAttribute.Name #> + /// auto-generated 2019 version + /// + public static JT808Package Create_<#= jT808MsgIdDescriptionAttribute.Name #>_2019(this JT808MsgId msgId, string terminalPhoneNo,<#= jT808BodiesTypeAttribute.JT808BodiesType.FullName #> bodies) + { + return Create2019<<#= jT808BodiesTypeAttribute.JT808BodiesType.FullName#>>(msgId,terminalPhoneNo,bodies); + } + + /// + /// <#= jT808MsgIdDescriptionAttribute.Code #> - <#= jT808MsgIdDescriptionAttribute.Name #> + /// auto-generated 2019 version + /// + public static JT808Package Create2019(this JT808MsgId msgId, string terminalPhoneNo,<#= jT808BodiesTypeAttribute.JT808BodiesType.FullName #> bodies) + { + return Create2019<<#= jT808BodiesTypeAttribute.JT808BodiesType.FullName#>>(msgId,terminalPhoneNo,bodies); + } <# } #> diff --git a/src/JT808.Protocol/Interfaces/GlobalConfigBase.cs b/src/JT808.Protocol/Interfaces/GlobalConfigBase.cs index f636562..4d87e8b 100644 --- a/src/JT808.Protocol/Interfaces/GlobalConfigBase.cs +++ b/src/JT808.Protocol/Interfaces/GlobalConfigBase.cs @@ -25,10 +25,8 @@ namespace JT808.Protocol.Interfaces JT808_0X8103_Factory = new JT808_0x8103_Factory(); TerminalPhoneNoLength = 12; Trim = true; - Version = JT808Version.JTT2013; } public abstract string ConfigId { get; protected set; } - public virtual JT808Version Version { get; protected set; } public virtual IJT808MsgSNDistributed MsgSNDistributed { get; set; } public virtual IJT808Compress Compress { get; set; } public virtual IJT808SplitPackageStrategy SplitPackageStrategy { get; set; } diff --git a/src/JT808.Protocol/Interfaces/IJT808Config.cs b/src/JT808.Protocol/Interfaces/IJT808Config.cs index e80d3a4..a1d9d7b 100644 --- a/src/JT808.Protocol/Interfaces/IJT808Config.cs +++ b/src/JT808.Protocol/Interfaces/IJT808Config.cs @@ -10,8 +10,6 @@ namespace JT808.Protocol { public interface IJT808Config { - [Obsolete("目前没用")] - JT808Version Version { get;} string ConfigId { get; } /// /// 消息流水号 diff --git a/src/JT808.Protocol/Internal/DefaultGlobalConfig.cs b/src/JT808.Protocol/Internal/DefaultGlobalConfig.cs index 98fe943..36c0215 100644 --- a/src/JT808.Protocol/Internal/DefaultGlobalConfig.cs +++ b/src/JT808.Protocol/Internal/DefaultGlobalConfig.cs @@ -11,11 +11,9 @@ namespace JT808.Protocol.Internal class DefaultGlobalConfig : GlobalConfigBase { public override string ConfigId { get; protected set; } - public override JT808Version Version { get ; protected set; } - public DefaultGlobalConfig(string configId= "Default", JT808Version jT808Version= JT808Version.JTT2013) + public DefaultGlobalConfig(string configId= "Default") { ConfigId = configId; - Version = jT808Version; } } } diff --git a/src/JT808.Protocol/JT808.Protocol.xml b/src/JT808.Protocol/JT808.Protocol.xml index 9719a0c..229e897 100644 --- a/src/JT808.Protocol/JT808.Protocol.xml +++ b/src/JT808.Protocol/JT808.Protocol.xml @@ -680,6 +680,42 @@ 0x0A00 + + + 查询服务器时间请求 + 0x0004 + + + + + 查询服务器时间应答 + 0x8004 + + + + + 终端补传分包请求 + 0x0005 + + + + + 链路检测 + 0x8204 + + + + + 查询区域或线路数据 + 0x8608 + + + + + 查询区域或线路数据应答 + 0x0608 + + 多媒体格式编码 @@ -930,6 +966,18 @@ auto-generated + + + 0x0001 - 终端通用应答 + auto-generated 2019 version + + + + + 0x0001 - 终端通用应答 + auto-generated 2019 version + + 0x0002 - 终端心跳 @@ -942,6 +990,18 @@ auto-generated + + + 0x0002 - 终端心跳 + auto-generated 2019 version + + + + + 0x0002 - 终端心跳 + auto-generated 2019 version + + 0x0003 - 终端注销 @@ -954,6 +1014,66 @@ auto-generated + + + 0x0003 - 终端注销 + auto-generated 2019 version + + + + + 0x0003 - 终端注销 + auto-generated 2019 version + + + + + 0x0004 - 查询服务器时间请求 + auto-generated + + + + + 0x0004 - 查询服务器时间请求 + auto-generated + + + + + 0x0004 - 查询服务器时间请求 + auto-generated 2019 version + + + + + 0x0004 - 查询服务器时间请求 + auto-generated 2019 version + + + + + 0x0005 - 终端补传分包请求 + auto-generated + + + + + 0x0005 - 终端补传分包请求 + auto-generated + + + + + 0x0005 - 终端补传分包请求 + auto-generated 2019 version + + + + + 0x0005 - 终端补传分包请求 + auto-generated 2019 version + + 0x0100 - 终端注册 @@ -966,6 +1086,18 @@ auto-generated + + + 0x0100 - 终端注册 + auto-generated 2019 version + + + + + 0x0100 - 终端注册 + auto-generated 2019 version + + 0x0102 - 终端鉴权 @@ -978,6 +1110,18 @@ auto-generated + + + 0x0102 - 终端鉴权 + auto-generated 2019 version + + + + + 0x0102 - 终端鉴权 + auto-generated 2019 version + + 0x0104 - 查询终端参数应答 @@ -990,6 +1134,18 @@ auto-generated + + + 0x0104 - 查询终端参数应答 + auto-generated 2019 version + + + + + 0x0104 - 查询终端参数应答 + auto-generated 2019 version + + 0x0107 - 查询终端属性应答 @@ -1002,6 +1158,18 @@ auto-generated + + + 0x0107 - 查询终端属性应答 + auto-generated 2019 version + + + + + 0x0107 - 查询终端属性应答 + auto-generated 2019 version + + 0x0108 - 终端升级结果通知 @@ -1014,6 +1182,18 @@ auto-generated + + + 0x0108 - 终端升级结果通知 + auto-generated 2019 version + + + + + 0x0108 - 终端升级结果通知 + auto-generated 2019 version + + 0x0200 - 位置信息汇报 @@ -1026,6 +1206,18 @@ auto-generated + + + 0x0200 - 位置信息汇报 + auto-generated 2019 version + + + + + 0x0200 - 位置信息汇报 + auto-generated 2019 version + + 0x0201 - 位置信息查询应答 @@ -1038,6 +1230,18 @@ auto-generated + + + 0x0201 - 位置信息查询应答 + auto-generated 2019 version + + + + + 0x0201 - 位置信息查询应答 + auto-generated 2019 version + + 0x0301 - 事件报告 @@ -1050,6 +1254,18 @@ auto-generated + + + 0x0301 - 事件报告 + auto-generated 2019 version + + + + + 0x0301 - 事件报告 + auto-generated 2019 version + + 0x8302 - 提问应答 @@ -1062,6 +1278,18 @@ auto-generated + + + 0x8302 - 提问应答 + auto-generated 2019 version + + + + + 0x8302 - 提问应答 + auto-generated 2019 version + + 0x0303 - 信息点播或取消 @@ -1074,6 +1302,18 @@ auto-generated + + + 0x0303 - 信息点播或取消 + auto-generated 2019 version + + + + + 0x0303 - 信息点播或取消 + auto-generated 2019 version + + 0x0500 - 车辆控制应答 @@ -1086,6 +1326,42 @@ auto-generated + + + 0x0500 - 车辆控制应答 + auto-generated 2019 version + + + + + 0x0500 - 车辆控制应答 + auto-generated 2019 version + + + + + 0x0608 - 查询区域或线路数据应答 + auto-generated + + + + + 0x0608 - 查询区域或线路数据应答 + auto-generated + + + + + 0x0608 - 查询区域或线路数据应答 + auto-generated 2019 version + + + + + 0x0608 - 查询区域或线路数据应答 + auto-generated 2019 version + + 0x0701 - 电子运单上报 @@ -1098,6 +1374,18 @@ auto-generated + + + 0x0701 - 电子运单上报 + auto-generated 2019 version + + + + + 0x0701 - 电子运单上报 + auto-generated 2019 version + + 0x0702 - 驾驶员身份信息采集上报 @@ -1110,6 +1398,18 @@ auto-generated + + + 0x0702 - 驾驶员身份信息采集上报 + auto-generated 2019 version + + + + + 0x0702 - 驾驶员身份信息采集上报 + auto-generated 2019 version + + 0x0704 - 定位数据批量上传 @@ -1122,6 +1422,18 @@ auto-generated + + + 0x0704 - 定位数据批量上传 + auto-generated 2019 version + + + + + 0x0704 - 定位数据批量上传 + auto-generated 2019 version + + 0x0705 - CAN总线数据上传 @@ -1134,6 +1446,18 @@ auto-generated + + + 0x0705 - CAN总线数据上传 + auto-generated 2019 version + + + + + 0x0705 - CAN总线数据上传 + auto-generated 2019 version + + 0x0800 - 多媒体事件信息上传 @@ -1146,6 +1470,18 @@ auto-generated + + + 0x0800 - 多媒体事件信息上传 + auto-generated 2019 version + + + + + 0x0800 - 多媒体事件信息上传 + auto-generated 2019 version + + 0x0801 - 多媒体数据上传 @@ -1158,6 +1494,18 @@ auto-generated + + + 0x0801 - 多媒体数据上传 + auto-generated 2019 version + + + + + 0x0801 - 多媒体数据上传 + auto-generated 2019 version + + 0x0805 - 摄像头立即拍摄命令应答 @@ -1170,6 +1518,18 @@ auto-generated + + + 0x0805 - 摄像头立即拍摄命令应答 + auto-generated 2019 version + + + + + 0x0805 - 摄像头立即拍摄命令应答 + auto-generated 2019 version + + 0x0900 - 数据上行透传 @@ -1182,6 +1542,18 @@ auto-generated + + + 0x0900 - 数据上行透传 + auto-generated 2019 version + + + + + 0x0900 - 数据上行透传 + auto-generated 2019 version + + 0x0901 - 数据压缩上报 @@ -1194,6 +1566,18 @@ auto-generated + + + 0x0901 - 数据压缩上报 + auto-generated 2019 version + + + + + 0x0901 - 数据压缩上报 + auto-generated 2019 version + + 0x0A00 - 终端RSA公钥 @@ -1206,6 +1590,18 @@ auto-generated + + + 0x0A00 - 终端RSA公钥 + auto-generated 2019 version + + + + + 0x0A00 - 终端RSA公钥 + auto-generated 2019 version + + 0x8001 - 平台通用应答 @@ -1218,6 +1614,18 @@ auto-generated + + + 0x8001 - 平台通用应答 + auto-generated 2019 version + + + + + 0x8001 - 平台通用应答 + auto-generated 2019 version + + 0x8003 - 补传分包请求 @@ -1230,6 +1638,42 @@ auto-generated + + + 0x8003 - 补传分包请求 + auto-generated 2019 version + + + + + 0x8003 - 补传分包请求 + auto-generated 2019 version + + + + + 0x8004 - 查询服务器时间应答 + auto-generated + + + + + 0x8004 - 查询服务器时间应答 + auto-generated + + + + + 0x8004 - 查询服务器时间应答 + auto-generated 2019 version + + + + + 0x8004 - 查询服务器时间应答 + auto-generated 2019 version + + 0x8100 - 终端注册应答 @@ -1242,6 +1686,18 @@ auto-generated + + + 0x8100 - 终端注册应答 + auto-generated 2019 version + + + + + 0x8100 - 终端注册应答 + auto-generated 2019 version + + 0x8103 - 设置终端参数 @@ -1254,6 +1710,18 @@ auto-generated + + + 0x8103 - 设置终端参数 + auto-generated 2019 version + + + + + 0x8103 - 设置终端参数 + auto-generated 2019 version + + 0x8104 - 查询终端参数 @@ -1266,6 +1734,18 @@ auto-generated + + + 0x8104 - 查询终端参数 + auto-generated 2019 version + + + + + 0x8104 - 查询终端参数 + auto-generated 2019 version + + 0x8105 - 终端控制 @@ -1278,76 +1758,184 @@ auto-generated + + + 0x8105 - 终端控制 + auto-generated 2019 version + + + + + 0x8105 - 终端控制 + auto-generated 2019 version + + 0x8106 - 查询指定终端参数 auto-generated - + + + 0x8106 - 查询指定终端参数 + auto-generated + + + + + 0x8106 - 查询指定终端参数 + auto-generated 2019 version + + + + + 0x8106 - 查询指定终端参数 + auto-generated 2019 version + + + + + 0x8107 - 查询终端属性 + auto-generated + + + + + 0x8107 - 查询终端属性 + auto-generated + + + + + 0x8107 - 查询终端属性 + auto-generated 2019 version + + + + + 0x8107 - 查询终端属性 + auto-generated 2019 version + + + + + 0x8108 - 下发终端升级包 + auto-generated + + + + + 0x8108 - 下发终端升级包 + auto-generated + + + + + 0x8108 - 下发终端升级包 + auto-generated 2019 version + + + + + 0x8108 - 下发终端升级包 + auto-generated 2019 version + + + + + 0x8201 - 位置信息查询 + auto-generated + + + + + 0x8201 - 位置信息查询 + auto-generated + + + + + 0x8201 - 位置信息查询 + auto-generated 2019 version + + + + + 0x8201 - 位置信息查询 + auto-generated 2019 version + + + + + 0x8202 - 临时位置跟踪控制 + auto-generated + + + - 0x8106 - 查询指定终端参数 + 0x8202 - 临时位置跟踪控制 auto-generated - + - 0x8107 - 查询终端属性 - auto-generated + 0x8202 - 临时位置跟踪控制 + auto-generated 2019 version - + - 0x8107 - 查询终端属性 - auto-generated + 0x8202 - 临时位置跟踪控制 + auto-generated 2019 version - + - 0x8108 - 下发终端升级包 + 0x8203 - 人工确认报警消息 auto-generated - + - 0x8108 - 下发终端升级包 + 0x8203 - 人工确认报警消息 auto-generated - + - 0x8201 - 位置信息查询 - auto-generated + 0x8203 - 人工确认报警消息 + auto-generated 2019 version - + - 0x8201 - 位置信息查询 - auto-generated + 0x8203 - 人工确认报警消息 + auto-generated 2019 version - + - 0x8202 - 临时位置跟踪控制 + 0x8204 - 链路检测 auto-generated - + - 0x8202 - 临时位置跟踪控制 + 0x8204 - 链路检测 auto-generated - + - 0x8203 - 人工确认报警消息 - auto-generated + 0x8204 - 链路检测 + auto-generated 2019 version - + - 0x8203 - 人工确认报警消息 - auto-generated + 0x8204 - 链路检测 + auto-generated 2019 version @@ -1362,6 +1950,18 @@ auto-generated + + + 0x8300 - 文本信息下发 + auto-generated 2019 version + + + + + 0x8300 - 文本信息下发 + auto-generated 2019 version + + 0x8301 - 事件设置 @@ -1374,6 +1974,18 @@ auto-generated + + + 0x8301 - 事件设置 + auto-generated 2019 version + + + + + 0x8301 - 事件设置 + auto-generated 2019 version + + 0x8302 - 提问下发 @@ -1386,6 +1998,18 @@ auto-generated + + + 0x8302 - 提问下发 + auto-generated 2019 version + + + + + 0x8302 - 提问下发 + auto-generated 2019 version + + 0x8303 - 信息点播菜单设置 @@ -1398,6 +2022,18 @@ auto-generated + + + 0x8303 - 信息点播菜单设置 + auto-generated 2019 version + + + + + 0x8303 - 信息点播菜单设置 + auto-generated 2019 version + + 0x8304 - 信息服务 @@ -1410,6 +2046,18 @@ auto-generated + + + 0x8304 - 信息服务 + auto-generated 2019 version + + + + + 0x8304 - 信息服务 + auto-generated 2019 version + + 0x8400 - 电话回拨 @@ -1422,6 +2070,18 @@ auto-generated + + + 0x8400 - 电话回拨 + auto-generated 2019 version + + + + + 0x8400 - 电话回拨 + auto-generated 2019 version + + 0x8401 - 设置电话本 @@ -1434,6 +2094,18 @@ auto-generated + + + 0x8401 - 设置电话本 + auto-generated 2019 version + + + + + 0x8401 - 设置电话本 + auto-generated 2019 version + + 0x8500 - 车辆控制 @@ -1446,6 +2118,18 @@ auto-generated + + + 0x8500 - 车辆控制 + auto-generated 2019 version + + + + + 0x8500 - 车辆控制 + auto-generated 2019 version + + 0x8600 - 设置圆形区域 @@ -1458,6 +2142,18 @@ auto-generated + + + 0x8600 - 设置圆形区域 + auto-generated 2019 version + + + + + 0x8600 - 设置圆形区域 + auto-generated 2019 version + + 0x8601 - 删除圆形区域 @@ -1470,6 +2166,18 @@ auto-generated + + + 0x8601 - 删除圆形区域 + auto-generated 2019 version + + + + + 0x8601 - 删除圆形区域 + auto-generated 2019 version + + 0x8602 - 设置矩形区域 @@ -1482,6 +2190,18 @@ auto-generated + + + 0x8602 - 设置矩形区域 + auto-generated 2019 version + + + + + 0x8602 - 设置矩形区域 + auto-generated 2019 version + + 0x8603 - 删除矩形区域 @@ -1494,6 +2214,18 @@ auto-generated + + + 0x8603 - 删除矩形区域 + auto-generated 2019 version + + + + + 0x8603 - 删除矩形区域 + auto-generated 2019 version + + 0x8604 - 设置多边形区域 @@ -1506,6 +2238,18 @@ auto-generated + + + 0x8604 - 设置多边形区域 + auto-generated 2019 version + + + + + 0x8604 - 设置多边形区域 + auto-generated 2019 version + + 0x8605 - 删除多边形区域 @@ -1518,6 +2262,18 @@ auto-generated + + + 0x8605 - 删除多边形区域 + auto-generated 2019 version + + + + + 0x8605 - 删除多边形区域 + auto-generated 2019 version + + 0x8606 - 设置路线 @@ -1530,6 +2286,18 @@ auto-generated + + + 0x8606 - 设置路线 + auto-generated 2019 version + + + + + 0x8606 - 设置路线 + auto-generated 2019 version + + 0x8607 - 删除路线 @@ -1542,6 +2310,42 @@ auto-generated + + + 0x8607 - 删除路线 + auto-generated 2019 version + + + + + 0x8607 - 删除路线 + auto-generated 2019 version + + + + + 0x8608 - 查询区域或线路数据 + auto-generated + + + + + 0x8608 - 查询区域或线路数据 + auto-generated + + + + + 0x8608 - 查询区域或线路数据 + auto-generated 2019 version + + + + + 0x8608 - 查询区域或线路数据 + auto-generated 2019 version + + 0x8702 - 上报驾驶员身份信息请求 @@ -1554,6 +2358,18 @@ auto-generated + + + 0x8702 - 上报驾驶员身份信息请求 + auto-generated 2019 version + + + + + 0x8702 - 上报驾驶员身份信息请求 + auto-generated 2019 version + + 0x8800 - 多媒体数据上传应答 @@ -1566,6 +2382,18 @@ auto-generated + + + 0x8800 - 多媒体数据上传应答 + auto-generated 2019 version + + + + + 0x8800 - 多媒体数据上传应答 + auto-generated 2019 version + + 0x8801 - 摄像头立即拍摄命令 @@ -1578,6 +2406,18 @@ auto-generated + + + 0x8801 - 摄像头立即拍摄命令 + auto-generated 2019 version + + + + + 0x8801 - 摄像头立即拍摄命令 + auto-generated 2019 version + + 0x8802 - 存储多媒体数据检索 @@ -1590,6 +2430,18 @@ auto-generated + + + 0x8802 - 存储多媒体数据检索 + auto-generated 2019 version + + + + + 0x8802 - 存储多媒体数据检索 + auto-generated 2019 version + + 0x8803 - 存储多媒体数据上传 @@ -1602,6 +2454,18 @@ auto-generated + + + 0x8803 - 存储多媒体数据上传 + auto-generated 2019 version + + + + + 0x8803 - 存储多媒体数据上传 + auto-generated 2019 version + + 0x8804 - 录音开始命令 @@ -1614,6 +2478,18 @@ auto-generated + + + 0x8804 - 录音开始命令 + auto-generated 2019 version + + + + + 0x8804 - 录音开始命令 + auto-generated 2019 version + + 0x8804 - 单条存储多媒体数据检索上传命令 @@ -1626,6 +2502,18 @@ auto-generated + + + 0x8804 - 单条存储多媒体数据检索上传命令 + auto-generated 2019 version + + + + + 0x8804 - 单条存储多媒体数据检索上传命令 + auto-generated 2019 version + + 0x8900 - 数据下行透传 @@ -1638,6 +2526,18 @@ auto-generated + + + 0x8900 - 数据下行透传 + auto-generated 2019 version + + + + + 0x8900 - 数据下行透传 + auto-generated 2019 version + + 0x8A00 - 平台RSA公钥 @@ -1650,6 +2550,18 @@ auto-generated + + + 0x8A00 - 平台RSA公钥 + auto-generated 2019 version + + + + + 0x8A00 - 平台RSA公钥 + auto-generated 2019 version + + 压缩接口 @@ -2287,6 +3199,11 @@ 终止符 + + + 原数据 + + JT808数据包 diff --git a/src/JT808.Protocol/JT808Header.cs b/src/JT808.Protocol/JT808Header.cs index c5eb137..d48a738 100644 --- a/src/JT808.Protocol/JT808Header.cs +++ b/src/JT808.Protocol/JT808Header.cs @@ -16,7 +16,7 @@ namespace JT808.Protocol /// /// 消息体属性 /// - public JT808HeaderMessageBodyProperty MessageBodyProperty { get; set; } + public JT808HeaderMessageBodyProperty MessageBodyProperty { get; set; } = new JT808HeaderMessageBodyProperty(); /// /// 协议版本号(2019版本) /// diff --git a/src/JT808.Protocol/JT808HeaderMessageBodyProperty.cs b/src/JT808.Protocol/JT808HeaderMessageBodyProperty.cs index c90dd55..004558c 100644 --- a/src/JT808.Protocol/JT808HeaderMessageBodyProperty.cs +++ b/src/JT808.Protocol/JT808HeaderMessageBodyProperty.cs @@ -5,7 +5,7 @@ using System; namespace JT808.Protocol { - public struct JT808HeaderMessageBodyProperty + public class JT808HeaderMessageBodyProperty { public JT808HeaderMessageBodyProperty(int dataLength,bool isPackage, bool versionFlag= false, JT808EncryptMethod jT808EncryptMethod= JT808EncryptMethod.None) { @@ -30,7 +30,7 @@ namespace JT808.Protocol DataLength = 0; VersionFlag = versionFlag; } - + public JT808HeaderMessageBodyProperty(){} public JT808HeaderMessageBodyProperty(ushort value) { VersionFlag = (value >> 14 & 0x01) == 1; @@ -52,27 +52,26 @@ namespace JT808.Protocol /// /// 版本标识(默认为1=true) /// - public bool VersionFlag { get; set; } + public bool VersionFlag { get; set; } = false; /// /// 是否分包 /// true-1 表示消息体为长消息,进行分包发送处理 /// false-0 消息头中无消息包封装项字段。 /// - public bool IsPackage { get; set; } + public bool IsPackage { get; set; } = false; /// /// 加密标识,0为不加密 /// 当此三位都为 0,表示消息体不加密; /// 当第 10 位为 1,表示消息体经过 RSA 算法加密; /// todo:没有涉及到加密先不考虑 /// - public JT808EncryptMethod Encrypt { get; set; } + public JT808EncryptMethod Encrypt { get; set; } = JT808EncryptMethod.None; /// /// 消息体长度 /// - public int DataLength { get; set; } + public int DataLength { get; set; } = 0; public ushort Wrap() { - // 1.是否分包 int tmpIsPacke = 0; if (IsPackage) @@ -100,7 +99,7 @@ namespace JT808.Protocol // 判断有无数据体长度 DataLength = 0; } - // 3.是否分包 + // 3.版本标识 int versionFlag = 0; if (VersionFlag) { @@ -108,44 +107,5 @@ namespace JT808.Protocol } return (ushort)(versionFlag|tmpIsPacke | tmpEncrypt | DataLength); } - - public ushort Wrap(int dataLength) - { - // 1.是否分包 - int tmpIsPacke = 0; - if (IsPackage) - { - tmpIsPacke = 1 << 13; - } - // 2.是否加密 - int tmpEncrypt; - // 2.3.数据加密方式 - switch (Encrypt) - { - case JT808EncryptMethod.None: - tmpEncrypt = 0; - break; - case JT808EncryptMethod.RSA: - tmpEncrypt = 1 << 10; - break; - default: - tmpEncrypt = 0; - break; - } - // 2.4.数据长度 - DataLength = dataLength; - if (dataLength <= 0) - { - // 判断有无数据体长度 - dataLength = 0; - } - // 3.是否分包 - int versionFlag = 0; - if (VersionFlag) - { - versionFlag = 1 << 14; - } - return (ushort)(versionFlag | tmpIsPacke | tmpEncrypt | dataLength); - } } } diff --git a/src/JT808.Protocol/JT808HeaderPackage.cs b/src/JT808.Protocol/JT808HeaderPackage.cs index f644e97..0a9f9bf 100644 --- a/src/JT808.Protocol/JT808HeaderPackage.cs +++ b/src/JT808.Protocol/JT808HeaderPackage.cs @@ -10,7 +10,7 @@ namespace JT808.Protocol /// /// JT808头部数据包 /// - public class JT808HeaderPackage: IJT808MessagePackFormatter + public ref struct JT808HeaderPackage { /// /// 起始符 @@ -23,7 +23,7 @@ namespace JT808.Protocol /// /// 数据体 /// - public byte[] Bodies { get; set; } + public ReadOnlySpan Bodies { get; set; } /// /// 校验码 /// 从消息头开始,同后一字节异或,直到校验码前一个字节,占用一个字节。 @@ -33,7 +33,6 @@ namespace JT808.Protocol /// 终止符 /// public byte End { get; set; } - public JT808Version Version { get { @@ -61,8 +60,12 @@ namespace JT808.Protocol } } } + /// + /// 原数据 + /// + public ReadOnlySpan OriginalData { get; set; } - public JT808HeaderPackage Deserialize(ref JT808MessagePackReader reader, IJT808Config config) + public JT808HeaderPackage(ref JT808MessagePackReader reader, IJT808Config config) { // 1. 验证校验和 if (!config.SkipCRCCode) @@ -72,60 +75,58 @@ namespace JT808.Protocol throw new JT808Exception(JT808ErrorCode.CheckCodeNotEqual, $"{reader.RealCheckXorCode}!={reader.CalculateCheckXorCode}"); } } - JT808HeaderPackage jT808Package = new JT808HeaderPackage(); // ---------------开始解包-------------- // 2.读取起始位置 - jT808Package.Begin = reader.ReadStart(); + this.Begin = reader.ReadStart(); // 3.读取头部信息 - jT808Package.Header = new JT808Header(); + this.Header = new JT808Header(); // 3.1.读取消息Id - jT808Package.Header.MsgId = reader.ReadUInt16(); + this.Header.MsgId = reader.ReadUInt16(); // 3.2.读取消息体属性 ushort messageBodyPropertyValue = reader.ReadUInt16(); // 3.2.1.解包消息体属性 - jT808Package.Header.MessageBodyProperty = new JT808HeaderMessageBodyProperty(messageBodyPropertyValue); - if (jT808Package.Header.MessageBodyProperty.VersionFlag) + this.Header.MessageBodyProperty = new JT808HeaderMessageBodyProperty(messageBodyPropertyValue); + if (this.Header.MessageBodyProperty.VersionFlag) { //2019版本 // 3.3.读取协议版本号 - jT808Package.Header.ProtocolVersion = reader.ReadByte(); + this.Header.ProtocolVersion = reader.ReadByte(); // 3.4.读取终端手机号 - jT808Package.Header.TerminalPhoneNo = reader.ReadBCD(20, config.Trim); + this.Header.TerminalPhoneNo = reader.ReadBCD(20, config.Trim); reader.Version = JT808Version.JTT2019; } else { //2013版本 // 3.3.读取终端手机号 - jT808Package.Header.TerminalPhoneNo = reader.ReadBCD(config.TerminalPhoneNoLength, config.Trim); + this.Header.TerminalPhoneNo = reader.ReadBCD(config.TerminalPhoneNoLength, config.Trim); } // 3.4.读取消息流水号 - jT808Package.Header.MsgNum = reader.ReadUInt16(); + this.Header.MsgNum = reader.ReadUInt16(); // 3.5.判断有无分包 - if (jT808Package.Header.MessageBodyProperty.IsPackage) + if (this.Header.MessageBodyProperty.IsPackage) { //3.5.1.读取消息包总数 - jT808Package.Header.PackgeCount = reader.ReadUInt16(); + this.Header.PackgeCount = reader.ReadUInt16(); //3.5.2.读取消息包序号 - jT808Package.Header.PackageIndex = reader.ReadUInt16(); + this.Header.PackageIndex = reader.ReadUInt16(); } // 4.处理数据体 // 4.1.判断有无数据体 - if (jT808Package.Header.MessageBodyProperty.DataLength > 0) + if (this.Header.MessageBodyProperty.DataLength > 0) { - jT808Package.Bodies = reader.ReadContent().ToArray(); + this.Bodies = reader.ReadContent(); + } + else + { + this.Bodies = ReadOnlySpan.Empty; } // 5.读取校验码 - jT808Package.CheckCode = reader.ReadByte(); + this.CheckCode = reader.ReadByte(); // 6.读取终止位置 - jT808Package.End = reader.ReadEnd(); + this.End = reader.ReadEnd(); // ---------------解包完成-------------- - return jT808Package; - } - - public void Serialize(ref JT808MessagePackWriter writer, JT808HeaderPackage value, IJT808Config config) - { - throw new NotImplementedException("只适用反序列化"); + this.OriginalData = reader.SrcBuffer; } } } diff --git a/src/JT808.Protocol/JT808Package.cs b/src/JT808.Protocol/JT808Package.cs index 7c7485a..d9c6a33 100644 --- a/src/JT808.Protocol/JT808Package.cs +++ b/src/JT808.Protocol/JT808Package.cs @@ -228,7 +228,8 @@ namespace JT808.Protocol } // 3.1.处理数据体长度 // 2.2.回写消息体属性 - writer.WriteUInt16Return(value.Header.MessageBodyProperty.Wrap((writer.GetCurrentPosition() - headerLength)), msgBodiesPropertyPosition); + value.Header.MessageBodyProperty.DataLength = (writer.GetCurrentPosition() - headerLength); + writer.WriteUInt16Return(value.Header.MessageBodyProperty.Wrap(), msgBodiesPropertyPosition); // 4.校验码 writer.WriteXor(); // 5.终止符 diff --git a/src/JT808.Protocol/JT808Serializer.cs b/src/JT808.Protocol/JT808Serializer.cs index 8f606be..7df4ede 100644 --- a/src/JT808.Protocol/JT808Serializer.cs +++ b/src/JT808.Protocol/JT808Serializer.cs @@ -10,8 +10,6 @@ namespace JT808.Protocol { public class JT808Serializer { - private readonly static JT808HeaderPackage jT808HeaderPackage = new JT808HeaderPackage(); - private readonly static JT808Package jT808Package = new JT808Package(); public JT808Serializer(IJT808Config jT808Config) @@ -140,7 +138,7 @@ namespace JT808.Protocol { JT808MessagePackReader jT808MessagePackReader = new JT808MessagePackReader(bytes, version); jT808MessagePackReader.Decode(buffer); - return jT808HeaderPackage.Deserialize(ref jT808MessagePackReader,jT808Config); + return new JT808HeaderPackage(ref jT808MessagePackReader,jT808Config); } finally { diff --git a/src/JT808.Protocol/MessageBody/JT808_0x0802.cs b/src/JT808.Protocol/MessageBody/JT808_0x0802.cs index 997ed18..3ede9fc 100644 --- a/src/JT808.Protocol/MessageBody/JT808_0x0802.cs +++ b/src/JT808.Protocol/MessageBody/JT808_0x0802.cs @@ -1,4 +1,5 @@ using JT808.Protocol.Formatters; +using JT808.Protocol.Interfaces; using JT808.Protocol.MessagePack; using JT808.Protocol.Metadata; using System.Collections.Generic; @@ -9,7 +10,7 @@ namespace JT808.Protocol.MessageBody /// 存储多媒体数据检索应答 /// 0x0802 /// - public class JT808_0x0802 : JT808Bodies, IJT808MessagePackFormatter + public class JT808_0x0802 : JT808Bodies, IJT808MessagePackFormatter, IJT808_2019_Version { public override ushort MsgId { get; } = 0x0802; /// diff --git a/src/JT808.Protocol/MessageBody/JT808_0x0900.cs b/src/JT808.Protocol/MessageBody/JT808_0x0900.cs index c32f0d9..84c51ef 100644 --- a/src/JT808.Protocol/MessageBody/JT808_0x0900.cs +++ b/src/JT808.Protocol/MessageBody/JT808_0x0900.cs @@ -1,6 +1,7 @@ using JT808.Protocol.Attributes; using JT808.Protocol.Extensions; using JT808.Protocol.Formatters; +using JT808.Protocol.Interfaces; using JT808.Protocol.MessagePack; namespace JT808.Protocol.MessageBody @@ -8,7 +9,7 @@ namespace JT808.Protocol.MessageBody /// /// 数据上行透传 /// - public class JT808_0x0900 : JT808Bodies, IJT808MessagePackFormatter + public class JT808_0x0900 : JT808Bodies, IJT808MessagePackFormatter, IJT808_2019_Version { public override ushort MsgId { get; } = 0x0900; /// diff --git a/src/JT808.Protocol/MessageBody/JT808_0x8805.cs b/src/JT808.Protocol/MessageBody/JT808_0x8805.cs index 11486ce..cf56b20 100644 --- a/src/JT808.Protocol/MessageBody/JT808_0x8805.cs +++ b/src/JT808.Protocol/MessageBody/JT808_0x8805.cs @@ -1,4 +1,5 @@ using JT808.Protocol.Formatters; +using JT808.Protocol.Interfaces; using JT808.Protocol.MessagePack; namespace JT808.Protocol.MessageBody @@ -6,7 +7,7 @@ namespace JT808.Protocol.MessageBody /// /// 单条存储多媒体数据检索上传命令 /// - public class JT808_0x8805 : JT808Bodies, IJT808MessagePackFormatter + public class JT808_0x8805 : JT808Bodies, IJT808MessagePackFormatter,IJT808_2019_Version { public override ushort MsgId { get; } = 0x8805; /// diff --git a/src/JT808.Protocol/MessageBody/JT808_0x8900.cs b/src/JT808.Protocol/MessageBody/JT808_0x8900.cs index 8d315e2..3283377 100644 --- a/src/JT808.Protocol/MessageBody/JT808_0x8900.cs +++ b/src/JT808.Protocol/MessageBody/JT808_0x8900.cs @@ -1,5 +1,6 @@ using JT808.Protocol.Extensions; using JT808.Protocol.Formatters; +using JT808.Protocol.Interfaces; using JT808.Protocol.MessagePack; namespace JT808.Protocol.MessageBody @@ -7,7 +8,7 @@ namespace JT808.Protocol.MessageBody /// /// 数据下行透传 /// - public class JT808_0x8900 : JT808Bodies, IJT808MessagePackFormatter + public class JT808_0x8900 : JT808Bodies, IJT808MessagePackFormatter, IJT808_2019_Version { public override ushort MsgId { get; } = 0x8900; ///