From 748e408d4fc726780da20ecde431a7d3252a1c11 Mon Sep 17 00:00:00 2001 From: SmallChi <564952747@qq.com> Date: Tue, 9 Oct 2018 20:01:15 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E4=B8=9A=E5=8A=A1=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=8F=8A=E5=AD=90=E4=B8=9A=E5=8A=A1=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E7=89=B9=E6=80=A7;=202.=E4=BF=AE=E6=94=B9=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E4=B8=BA=E5=AF=B9=E5=BA=94=E4=B8=AD=E6=96=87?= =?UTF-8?q?=E6=98=BE=E7=A4=BA;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 18 +- .../JT809SerializerContext.cs | 4 +- src/JT809.Protocol.Test/JT809HeaderTest.cs | 4 +- .../JT809MessageBody/JT809_0x1200Test.cs | 4 +- .../JT809MessageBody/JT809_0x1300Test.cs | 4 +- .../JT809MessageBody/JT809_0x1600Test.cs | 4 +- .../JT809_0x1001EncryptPackageTest.cs | 4 +- .../JT809Packages/JT809_0x1001PackageTest.cs | 4 +- .../JT809_0x9400_0x9401PackageTest.cs | 12 +- .../JT809BusinessTypeDescriptionAttribute.cs | 20 ++ ...T809SubBusinessTypeDescriptionAttribute.cs | 24 +++ .../JT809Enums/JT809BusinessType.cs | 136 +++++++++---- .../JT809Enums/JT809SubBusinessType.cs | 186 +++++++++++++----- .../JT809Extensions/JT809PackageExtensions.cs | 108 +++------- .../JT809Formatters/JT809HeaderFormatter.cs | 4 +- .../JT809Formatters/JT809PackageFormatter.cs | 4 +- src/JT809.Protocol/JT809Header.cs | 2 +- 17 files changed, 331 insertions(+), 211 deletions(-) create mode 100644 src/JT809.Protocol/JT809Attributes/JT809BusinessTypeDescriptionAttribute.cs create mode 100644 src/JT809.Protocol/JT809Attributes/JT809SubBusinessTypeDescriptionAttribute.cs diff --git a/README.md b/README.md index 0535ba5..e36ed60 100644 --- a/README.md +++ b/README.md @@ -29,11 +29,11 @@ |数据长度|报文序列号|业务数据类型|下级平台接入码|协议版本号标识|报文加密标识位|数据加密的密匙| |:------:|:------:|:------:|:------:|:------:|:------:|:------:| -| MsgLength | MsgSN | MsgID | MsgGNSSCENTERID | Version |EncryptFlag | EncryptKey | +| MsgLength | MsgSN | BusinessType | MsgGNSSCENTERID | Version |EncryptFlag | EncryptKey | ### 数据体[JT809Bodies] -> 根据对应业务数据类型:MsgID +> 根据对应业务数据类型:BusinessType |车牌号|车辆颜色|子业务类型标识|后续数据长度|子业务数据体 |:------:|:------:|:------:|:------:|:------:| @@ -58,7 +58,7 @@ #### 1.组包: -> 业务数据类型 MsgID:从链路报警信息交互消息 +> 业务数据类型 BusinessType:从链路报警信息交互消息 > > 子业务类型标识 SubBusinessType:报警督办请求消息 @@ -71,7 +71,7 @@ jT809Package.Header = new JT809Header EncryptKey = 9999, EncryptFlag= JT809Header_Encrypt.None, Version = new JT809Header_Version(1, 0, 0), - MsgID = JT809Enums.JT809BusinessType.DOWN_WARN_MSG, + BusinessType = JT809Enums.JT809BusinessType.从链路报警信息交互消息, MsgGNSSCENTERID = 20180920, }; @@ -79,7 +79,7 @@ jT809Package.Bodies = new JT809_0x9400 { VehicleNo="粤A12345", VehicleColor= JT809Enums.JT809VehicleColorType.黄色, - SubBusinessType= JT809Enums.JT809SubBusinessType.DOWN_WARN_MSG_URGE_TODO_REQ, + SubBusinessType= JT809Enums.JT809SubBusinessType.报警督办请求消息, }; JT809_0x9400_0x9401 jT809_0x9400_0x9401 = new JT809_0x9400_0x9401 @@ -160,14 +160,14 @@ Assert.Equal((uint)1666, jT809Package.Header.MsgSN); Assert.Equal((uint)9999, jT809Package.Header.EncryptKey); Assert.Equal(JT809Header_Encrypt.None, jT809Package.Header.EncryptFlag); Assert.Equal((uint)20180920, jT809Package.Header.MsgGNSSCENTERID); -Assert.Equal(JT809Enums.JT809BusinessType.DOWN_WARN_MSG, jT809Package.Header.MsgID); +Assert.Equal(JT809Enums.JT809BusinessType.从链路报警信息交互消息, jT809Package.Header.BusinessType); Assert.Equal(new JT809Header_Version(1, 0, 0).ToString(), jT809Package.Header.Version.ToString()); //4.数据包体 JT809_0x9400 jT809_0X400 = (JT809_0x9400)jT809Package.Bodies; Assert.Equal("粤A12345", jT809_0X400.VehicleNo); Assert.Equal(JT809Enums.JT809VehicleColorType.黄色, jT809_0X400.VehicleColor); -Assert.Equal(JT809Enums.JT809SubBusinessType.DOWN_WARN_MSG_URGE_TODO_REQ, jT809_0X400.SubBusinessType); +Assert.Equal(JT809Enums.JT809SubBusinessType.报警督办请求消息, jT809_0X400.SubBusinessType); Assert.Equal((uint)92, jT809_0X400.DataLength); //5.子数据包体 @@ -194,11 +194,11 @@ JT809GlobalConfig.Instance.SetHeaderOptions(new JT809Configs.JT809HeaderOptions }); // 根据业务类型创建对应包 -JT809Package jT809Package = JT809BusinessType.DOWN_WARN_MSG.Create(new JT809_0x9400 +JT809Package jT809Package = JT809BusinessType.从链路报警信息交互消息.Create(new JT809_0x9400 { VehicleNo = "粤A12345", VehicleColor = JT809Enums.JT809VehicleColorType.黄色, - SubBusinessType = JT809Enums.JT809SubBusinessType.DOWN_WARN_MSG_URGE_TODO_REQ, + SubBusinessType = JT809Enums.JT809SubBusinessType.报警督办请求消息, JT809SubBodies = new JT809_0x9400_0x9401 { WarnSrc = JT809WarnSrc.车载终端, diff --git a/src/JT809.Protocol.Benchmark/JT809SerializerContext.cs b/src/JT809.Protocol.Benchmark/JT809SerializerContext.cs index 7c16ba6..48dbec8 100644 --- a/src/JT809.Protocol.Benchmark/JT809SerializerContext.cs +++ b/src/JT809.Protocol.Benchmark/JT809SerializerContext.cs @@ -51,7 +51,7 @@ namespace JT809.Protocol.Benchmark EncryptKey = 9999, EncryptFlag = JT809Header_Encrypt.None, Version = new JT809Header_Version(1, 0, 0), - MsgID = JT809Enums.JT809BusinessType.DOWN_WARN_MSG, + BusinessType = JT809Enums.JT809BusinessType.从链路报警信息交互消息, MsgGNSSCENTERID = 20180920, }; @@ -59,7 +59,7 @@ namespace JT809.Protocol.Benchmark { VehicleNo = "粤A12345", VehicleColor = JT809Enums.JT809VehicleColorType.黄色, - SubBusinessType = JT809Enums.JT809SubBusinessType.DOWN_WARN_MSG_URGE_TODO_REQ, + SubBusinessType = JT809Enums.JT809SubBusinessType.报警督办请求, }; JT809_0x9400_0x9401 jT809_0x9400_0x9401 = new JT809_0x9400_0x9401 diff --git a/src/JT809.Protocol.Test/JT809HeaderTest.cs b/src/JT809.Protocol.Test/JT809HeaderTest.cs index ed5d254..3c4926e 100644 --- a/src/JT809.Protocol.Test/JT809HeaderTest.cs +++ b/src/JT809.Protocol.Test/JT809HeaderTest.cs @@ -17,7 +17,7 @@ namespace JT809.Protocol.Test JT809Header jT809Header = new JT809Header(); jT809Header.MsgLength = 24; jT809Header.MsgSN = 1024; - jT809Header.MsgID = JT809Enums.JT809BusinessType.DOWN_BASE_MSG; + jT809Header.BusinessType = JT809Enums.JT809BusinessType.从链路静态信息交换消息; jT809Header.MsgGNSSCENTERID = 1200; jT809Header.Version = new JT809Header_Version(); jT809Header.EncryptFlag = JT809Header_Encrypt.None; @@ -33,7 +33,7 @@ namespace JT809.Protocol.Test JT809Header jT809Header= JT809Serializer.Deserialize(bytes); Assert.Equal((uint)24, jT809Header.MsgLength); Assert.Equal((uint)1024, jT809Header.MsgSN); - Assert.Equal(JT809Enums.JT809BusinessType.DOWN_BASE_MSG, jT809Header.MsgID); + Assert.Equal(JT809Enums.JT809BusinessType.从链路静态信息交换消息, jT809Header.BusinessType); Assert.Equal((uint)1200, jT809Header.MsgGNSSCENTERID); Assert.Equal(new JT809Header_Version().ToString(), jT809Header.Version.ToString()); Assert.Equal(JT809Header_Encrypt.None, jT809Header.EncryptFlag); diff --git a/src/JT809.Protocol.Test/JT809MessageBody/JT809_0x1200Test.cs b/src/JT809.Protocol.Test/JT809MessageBody/JT809_0x1200Test.cs index 10fd692..6bc9587 100644 --- a/src/JT809.Protocol.Test/JT809MessageBody/JT809_0x1200Test.cs +++ b/src/JT809.Protocol.Test/JT809MessageBody/JT809_0x1200Test.cs @@ -18,7 +18,7 @@ namespace JT809.Protocol.Test.JT809MessageBody JT809_0x1200 jT809_0X1200 = new JT809_0x1200(); jT809_0X1200.VehicleNo= "粤A12345"; jT809_0X1200.VehicleColor = JT809Enums.JT809VehicleColorType.蓝色; - jT809_0X1200.SubBusinessType = JT809Enums.JT809SubBusinessType.UP_EXG_MSG_REGISTER; + jT809_0X1200.SubBusinessType = JT809Enums.JT809SubBusinessType.上传车辆注册信息; jT809_0X1200.DataLength = 61; JT809_0x1200_0x1201 jT809_0X1200_0X1201 = new JT809_0x1200_0x1201 { @@ -41,7 +41,7 @@ namespace JT809.Protocol.Test.JT809MessageBody JT809_0x1200 jT809_0X9001 = JT809Serializer.Deserialize(bytes); Assert.Equal("粤A12345", jT809_0X9001.VehicleNo); Assert.Equal(JT809Enums.JT809VehicleColorType.蓝色, jT809_0X9001.VehicleColor); - Assert.Equal(JT809Enums.JT809SubBusinessType.UP_EXG_MSG_REGISTER, jT809_0X9001.SubBusinessType); + Assert.Equal(JT809Enums.JT809SubBusinessType.上传车辆注册信息, jT809_0X9001.SubBusinessType); Assert.Equal((ushort)61, jT809_0X9001.DataLength); JT809_0x1200_0x1201 jT809_0X1200_0X1201 = jT809_0X9001.JT809SubBodies as JT809_0x1200_0x1201; Assert.Equal("1111111111", jT809_0X1200_0X1201.PlateformId); diff --git a/src/JT809.Protocol.Test/JT809MessageBody/JT809_0x1300Test.cs b/src/JT809.Protocol.Test/JT809MessageBody/JT809_0x1300Test.cs index cafe73a..1ce2189 100644 --- a/src/JT809.Protocol.Test/JT809MessageBody/JT809_0x1300Test.cs +++ b/src/JT809.Protocol.Test/JT809MessageBody/JT809_0x1300Test.cs @@ -16,7 +16,7 @@ namespace JT809.Protocol.Test.JT809MessageBody public void Test1() { JT809_0x1300 jT809Bodies = new JT809_0x1300(); - jT809Bodies.SubBusinessType = JT809Enums.JT809SubBusinessType.UP_PLATFORM_MSG_POST_QUERY_ACK; + jT809Bodies.SubBusinessType = JT809Enums.JT809SubBusinessType.平台查岗应答; jT809Bodies.JT809SubBodies = new JT809_0x1300_0x1301 { ObjectID="111", @@ -33,7 +33,7 @@ namespace JT809.Protocol.Test.JT809MessageBody { var bytes = "13 01 00 00 00 1B 01 31 31 31 00 00 00 00 00 00 00 00 00 00 00 04 D2 00 00 00 06 32 32 68 61 32 32".ToHexBytes(); JT809_0x1300 jT809Bodies = JT809Serializer.Deserialize(bytes); - Assert.Equal(JT809Enums.JT809SubBusinessType.UP_PLATFORM_MSG_POST_QUERY_ACK, jT809Bodies.SubBusinessType); + Assert.Equal(JT809Enums.JT809SubBusinessType.平台查岗应答, jT809Bodies.SubBusinessType); JT809_0x1300_0x1301 jT809SubBodies = (JT809_0x1300_0x1301)jT809Bodies.JT809SubBodies; Assert.Equal("111", jT809SubBodies.ObjectID); Assert.Equal("22ha22", jT809SubBodies.InfoContent); diff --git a/src/JT809.Protocol.Test/JT809MessageBody/JT809_0x1600Test.cs b/src/JT809.Protocol.Test/JT809MessageBody/JT809_0x1600Test.cs index 6e70e51..d797f91 100644 --- a/src/JT809.Protocol.Test/JT809MessageBody/JT809_0x1600Test.cs +++ b/src/JT809.Protocol.Test/JT809MessageBody/JT809_0x1600Test.cs @@ -18,7 +18,7 @@ namespace JT809.Protocol.Test.JT809MessageBody JT809_0x1600 jT809Bodies = new JT809_0x1600(); jT809Bodies.VehicleNo = "粤A12345"; jT809Bodies.VehicleColor = JT809Enums.JT809VehicleColorType.蓝色; - jT809Bodies.SubBusinessType = JT809Enums.JT809SubBusinessType.UP_BASE_MSG_VEHICLE_ADDED_ACK; + jT809Bodies.SubBusinessType = JT809Enums.JT809SubBusinessType.补报车辆静态信息应答; jT809Bodies.JT809SubBodies = new JT809_0x1600_0x1601 { CarInfo = "什么鬼" @@ -34,7 +34,7 @@ namespace JT809.Protocol.Test.JT809MessageBody JT809_0x1600 jT809Bodies = JT809Serializer.Deserialize(bytes); Assert.Equal("粤A12345", jT809Bodies.VehicleNo); Assert.Equal(JT809Enums.JT809VehicleColorType.蓝色, jT809Bodies.VehicleColor); - Assert.Equal(JT809Enums.JT809SubBusinessType.UP_BASE_MSG_VEHICLE_ADDED_ACK, jT809Bodies.SubBusinessType); + Assert.Equal(JT809Enums.JT809SubBusinessType.补报车辆静态信息应答, jT809Bodies.SubBusinessType); Assert.Equal("什么鬼", ((JT809_0x1600_0x1601)jT809Bodies.JT809SubBodies).CarInfo); } } diff --git a/src/JT809.Protocol.Test/JT809Packages/JT809_0x1001EncryptPackageTest.cs b/src/JT809.Protocol.Test/JT809Packages/JT809_0x1001EncryptPackageTest.cs index 06c5ea4..62b2ecc 100644 --- a/src/JT809.Protocol.Test/JT809Packages/JT809_0x1001EncryptPackageTest.cs +++ b/src/JT809.Protocol.Test/JT809Packages/JT809_0x1001EncryptPackageTest.cs @@ -31,7 +31,7 @@ namespace JT809.Protocol.Test.JT809Packages EncryptFlag= JT809Header_Encrypt.Common, MsgSN= 133, EncryptKey=5819, - MsgID= JT809Enums.JT809BusinessType.UP_CONNECT_REQ, + BusinessType= JT809Enums.JT809BusinessType.主链路登录请求消息, MsgGNSSCENTERID= 20180920, }; JT809_0x1001 jT809_0X1001 = new JT809_0x1001(); @@ -55,7 +55,7 @@ namespace JT809.Protocol.Test.JT809Packages Assert.Equal((uint)133, jT809Package.Header.MsgSN); Assert.Equal((uint)5819, jT809Package.Header.EncryptKey); Assert.Equal((uint)20180920, jT809Package.Header.MsgGNSSCENTERID); - Assert.Equal(JT809Enums.JT809BusinessType.UP_CONNECT_REQ, jT809Package.Header.MsgID); + Assert.Equal(JT809Enums.JT809BusinessType.主链路登录请求消息, jT809Package.Header.BusinessType); Assert.Equal(new JT809Header_Version().ToString(), jT809Package.Header.Version.ToString()); JT809_0x1001 jT809_0X1001 = (JT809_0x1001)jT809Package.Bodies; Assert.Equal((uint)20180920, jT809_0X1001.UserId); diff --git a/src/JT809.Protocol.Test/JT809Packages/JT809_0x1001PackageTest.cs b/src/JT809.Protocol.Test/JT809Packages/JT809_0x1001PackageTest.cs index b9717db..aa4a1e5 100644 --- a/src/JT809.Protocol.Test/JT809Packages/JT809_0x1001PackageTest.cs +++ b/src/JT809.Protocol.Test/JT809Packages/JT809_0x1001PackageTest.cs @@ -18,7 +18,7 @@ namespace JT809.Protocol.Test.JT809Packages { MsgSN= 133, EncryptKey=9999, - MsgID= JT809Enums.JT809BusinessType.UP_CONNECT_REQ, + BusinessType= JT809Enums.JT809BusinessType.主链路登录请求消息, MsgGNSSCENTERID= 20180920, }; JT809_0x1001 jT809_0X1001 = new JT809_0x1001(); @@ -53,7 +53,7 @@ namespace JT809.Protocol.Test.JT809Packages Assert.Equal((uint)133, jT809Package.Header.MsgSN); Assert.Equal((uint)9999, jT809Package.Header.EncryptKey); Assert.Equal((uint)20180920, jT809Package.Header.MsgGNSSCENTERID); - Assert.Equal(JT809Enums.JT809BusinessType.UP_CONNECT_REQ, jT809Package.Header.MsgID); + Assert.Equal(JT809Enums.JT809BusinessType.主链路登录请求消息, jT809Package.Header.BusinessType); Assert.Equal(new JT809Header_Version().ToString(), jT809Package.Header.Version.ToString()); JT809_0x1001 jT809_0X1001 = (JT809_0x1001)jT809Package.Bodies; Assert.Equal((uint)20180920, jT809_0X1001.UserId); diff --git a/src/JT809.Protocol.Test/JT809Packages/JT809_0x9400_0x9401PackageTest.cs b/src/JT809.Protocol.Test/JT809Packages/JT809_0x9400_0x9401PackageTest.cs index 1f16dc2..58cd751 100644 --- a/src/JT809.Protocol.Test/JT809Packages/JT809_0x9400_0x9401PackageTest.cs +++ b/src/JT809.Protocol.Test/JT809Packages/JT809_0x9400_0x9401PackageTest.cs @@ -23,7 +23,7 @@ namespace JT809.Protocol.Test.JT809Packages EncryptKey = 9999, EncryptFlag= JT809Header_Encrypt.None, Version = new JT809Header_Version(1, 0, 0), - MsgID = JT809Enums.JT809BusinessType.DOWN_WARN_MSG, + BusinessType = JT809Enums.JT809BusinessType.从链路报警信息交互消息, MsgGNSSCENTERID = 20180920, }; @@ -31,7 +31,7 @@ namespace JT809.Protocol.Test.JT809Packages { VehicleNo="粤A12345", VehicleColor= JT809Enums.JT809VehicleColorType.黄色, - SubBusinessType= JT809Enums.JT809SubBusinessType.DOWN_WARN_MSG_URGE_TODO_REQ, + SubBusinessType= JT809Enums.JT809SubBusinessType.报警督办请求, }; JT809_0x9400_0x9401 jT809_0x9400_0x9401 = new JT809_0x9400_0x9401 @@ -63,13 +63,13 @@ namespace JT809.Protocol.Test.JT809Packages Assert.Equal((uint)9999, jT809Package.Header.EncryptKey); Assert.Equal(JT809Header_Encrypt.None, jT809Package.Header.EncryptFlag); Assert.Equal((uint)20180920, jT809Package.Header.MsgGNSSCENTERID); - Assert.Equal(JT809Enums.JT809BusinessType.DOWN_WARN_MSG, jT809Package.Header.MsgID); + Assert.Equal(JT809Enums.JT809BusinessType.从链路报警信息交互消息, jT809Package.Header.BusinessType); Assert.Equal(new JT809Header_Version().ToString(), jT809Package.Header.Version.ToString()); JT809_0x9400 jT809_0X400 = (JT809_0x9400)jT809Package.Bodies; Assert.Equal("粤A12345", jT809_0X400.VehicleNo); Assert.Equal(JT809Enums.JT809VehicleColorType.黄色, jT809_0X400.VehicleColor); - Assert.Equal(JT809Enums.JT809SubBusinessType.DOWN_WARN_MSG_URGE_TODO_REQ, jT809_0X400.SubBusinessType); + Assert.Equal(JT809Enums.JT809SubBusinessType.报警督办请求, jT809_0X400.SubBusinessType); Assert.Equal((uint)92, jT809_0X400.DataLength); JT809_0x9400_0x9401 jT809_0x9400_0x9401 = (JT809_0x9400_0x9401)jT809_0X400.JT809SubBodies; @@ -92,11 +92,11 @@ namespace JT809.Protocol.Test.JT809Packages EncryptKey= 9999, MsgGNSSCENTERID= 20180920 }); - JT809Package jT809Package = JT809BusinessType.DOWN_WARN_MSG.Create(new JT809_0x9400 + JT809Package jT809Package = JT809BusinessType.从链路报警信息交互消息.Create(new JT809_0x9400 { VehicleNo = "粤A12345", VehicleColor = JT809Enums.JT809VehicleColorType.黄色, - SubBusinessType = JT809Enums.JT809SubBusinessType.DOWN_WARN_MSG_URGE_TODO_REQ, + SubBusinessType = JT809Enums.JT809SubBusinessType.报警督办请求, JT809SubBodies = new JT809_0x9400_0x9401 { WarnSrc = JT809WarnSrc.车载终端, diff --git a/src/JT809.Protocol/JT809Attributes/JT809BusinessTypeDescriptionAttribute.cs b/src/JT809.Protocol/JT809Attributes/JT809BusinessTypeDescriptionAttribute.cs new file mode 100644 index 0000000..6b9db66 --- /dev/null +++ b/src/JT809.Protocol/JT809Attributes/JT809BusinessTypeDescriptionAttribute.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace JT809.Protocol.JT809Attributes +{ + [AttributeUsage(AttributeTargets.Field, Inherited = false, AllowMultiple = false)] + public sealed class JT809BusinessTypeDescriptionAttribute : Attribute + { + public string Code { get; set; } + + public string Name { get; set; } + + public JT809BusinessTypeDescriptionAttribute(string code,string name) + { + Code = code; + Name = name; + } + } +} diff --git a/src/JT809.Protocol/JT809Attributes/JT809SubBusinessTypeDescriptionAttribute.cs b/src/JT809.Protocol/JT809Attributes/JT809SubBusinessTypeDescriptionAttribute.cs new file mode 100644 index 0000000..ea33ae8 --- /dev/null +++ b/src/JT809.Protocol/JT809Attributes/JT809SubBusinessTypeDescriptionAttribute.cs @@ -0,0 +1,24 @@ +using JT809.Protocol.JT809Enums; +using System; +using System.Collections.Generic; +using System.Text; + +namespace JT809.Protocol.JT809Attributes +{ + [AttributeUsage(AttributeTargets.Field, Inherited = false, AllowMultiple = false)] + public sealed class JT809SubBusinessTypeDescriptionAttribute : Attribute + { + public JT809BusinessType BusinessType { get; set; } + + public string Code { get; set; } + + public string Name { get; set; } + + public JT809SubBusinessTypeDescriptionAttribute(string code,string name, JT809BusinessType businessType) + { + Code = code; + Name = name; + BusinessType = businessType; + } + } +} diff --git a/src/JT809.Protocol/JT809Enums/JT809BusinessType.cs b/src/JT809.Protocol/JT809Enums/JT809BusinessType.cs index acc4e7e..e748ba3 100644 --- a/src/JT809.Protocol/JT809Enums/JT809BusinessType.cs +++ b/src/JT809.Protocol/JT809Enums/JT809BusinessType.cs @@ -14,179 +14,233 @@ namespace JT809.Protocol.JT809Enums { #region 链路管理类 /// - ///主链路登录请求消息 + ///主链路登录请求消息 + ///UP_CONNECT_REQ /// [Description("主链路登录请求消息")] [JT809BodiesType(typeof(JT809_0x1001))] - UP_CONNECT_REQ = 0x1001, + [JT809BusinessTypeDescription("UP_CONNECT_REQ", "主链路登录请求消息")] + 主链路登录请求消息 = 0x1001, /// ///主链路登录应答消息 + ///UP_CONNECT_RSP /// [Description("主链路登录应答消息")] + [JT809BusinessTypeDescription("UP_CONNECT_RSP", "主链路登录应答消息")] [JT809BodiesType(typeof(JT809_0x1002))] - UP_CONNECT_RSP = 0x1002, + 主链路登录应答消息 = 0x1002, /// - ///主链路注销请求消息 + ///主链路注销请求消息 + ///UP_DISCONNECT_REQ /// [Description("主链路注销请求消息")] + [JT809BusinessTypeDescription("UP_DISCONNECT_REQ", "主链路注销请求消息")] [JT809BodiesType(typeof(JT809_0x1003))] - UP_DISCONNECT_REQ = 0x1003, + 主链路注销请求消息 = 0x1003, /// - ///主链路注销应答消息 + ///主链路注销应答消息 + ///UP_DISCONNECT_RSP /// [Description("主链路注销应答消息")] [JT809BodiesType(typeof(JT809_0x1004))] - UP_DISCONNECT_RSP = 0x1004, + [JT809BusinessTypeDescription("UP_DISCONNECT_RSP", "主链路注销应答消息")] + 主链路注销应答消息 = 0x1004, /// ///主链路连接保持请求消息 + ///UP_LINKTEST_REQ /// [Description("主链路连接保持请求消息")] [JT809BodiesType(typeof(JT809_0x1005))] - UP_LINKTEST_REQ = 0x1005, + [JT809BusinessTypeDescription("UP_LINKTEST_REQ", "主链路连接保持请求消息")] + 主链路连接保持请求消息 = 0x1005, /// ///主链路连接保持应答消息 + ///UP_LINKTEST_RSP /// [Description("主链路连接保持应答消息")] [JT809BodiesType(typeof(JT809_0x1006))] - UP_LINKTEST_RSP = 0x1006, + [JT809BusinessTypeDescription("UP_LINKTEST_RSP", "主链路连接保持应答消息")] + 主链路连接保持应答消息 = 0x1006, /// - ///主链路断开通知消息 + ///主链路断开通知消息 + ///UP_DISCONNECT_INFORM /// [Description("主链路断开通知消息")] [JT809BodiesType(typeof(JT809_0x1007))] - UP_DISCONNECT_INFORM = 0x1007, + [JT809BusinessTypeDescription("UP_DISCONNECT_INFORM", "主链路断开通知消息")] + 主链路断开通知消息 = 0x1007, /// ///下级平台主动关闭链路通知消息 + ///UP_CLOSELINK_INFORM /// [Description("下级平台主动关闭链路通知消息")] [JT809BodiesType(typeof(JT809_0x1008))] - UP_CLOSELINK_INFORM = 0x1008, + [JT809BusinessTypeDescription("UP_CLOSELINK_INFORM", "下级平台主动关闭链路通知消息")] + 下级平台主动关闭链路通知消息 = 0x1008, /// ///从链路连接请求消息 + ///DOWN_CONNECT_REQ /// [Description("从链路连接请求消息")] [JT809BodiesType(typeof(JT809_0x9001))] - DOWN_CONNECT_REQ = 0x9001, + [JT809BusinessTypeDescription("DOWN_CONNECT_REQ", "从链路连接请求消息")] + 从链路连接请求消息 = 0x9001, /// - ///从链路连接应答消息 + ///从链路连接应答消息 + ///DOWN_CONNECT_RSP /// [Description("从链路连接应答消息")] [JT809BodiesType(typeof(JT809_0x9002))] - DOWN_CONNECT_RSP = 0x9002, + [JT809BusinessTypeDescription("DOWN_CONNECT_RSP", "从链路连接应答消息")] + 从链路连接应答消息 = 0x9002, /// ///从链路注销请求消息 + ///DOWN_DISCONNECT_REQ /// [Description("从链路注销请求消息")] [JT809BodiesType(typeof(JT809_0x9003))] - DOWN_DISCONNECT_REQ = 0x9003, + [JT809BusinessTypeDescription("DOWN_DISCONNECT_REQ", "从链路注销请求消息")] + 从链路注销请求消息 = 0x9003, /// ///从链路注销应答消息 + ///DOWN_DISCONNECT_RSP /// [Description("从链路注销应答消息")] [JT809BodiesType(typeof(JT809_0x9004))] - DOWN_DISCONNECT_RSP = 0x9004, + [JT809BusinessTypeDescription("DOWN_DISCONNECT_RSP", "从链路注销应答消息")] + 从链路注销应答消息 = 0x9004, /// ///从链路连接保持请求消息 + ///DOWN_LINKTEST_REQ /// [Description("从链路连接保持请求消息")] [JT809BodiesType(typeof(JT809_0x9005))] - DOWN_LINKTEST_REQ = 0x9005, + [JT809BusinessTypeDescription("DOWN_LINKTEST_REQ", "从链路连接保持请求消息")] + 从链路连接保持请求消息 = 0x9005, /// - ///从链路连接保持应答消息 + ///从链路连接保持应答消息 + ///DOWN_LINKTEST_RSP /// [Description("从链路连接保持应答消息")] [JT809BodiesType(typeof(JT809_0x9006))] - DOWN_LINKTEST_RSP = 0x9006, + [JT809BusinessTypeDescription("DOWN_LINKTEST_RSP", "从链路连接保持应答消息")] + 从链路连接保持应答消息 = 0x9006, /// ///从链路断开通知消息 + ///DOWN_DISCONNECT_INFORM /// [Description("从链路断开通知消息")] [JT809BodiesType(typeof(JT809_0x9007))] - DOWN_DISCONNECT_INFORM = 0x9007, + [JT809BusinessTypeDescription("DOWN_DISCONNECT_INFORM", "从链路断开通知消息")] + 从链路断开通知消息 = 0x9007, /// - ///上级平台主动关闭链路通知消息 + ///上级平台主动关闭链路通知消息 + ///DOWN_CLOSELINK_INFORM /// [Description("上级平台主动关闭链路通知消息")] [JT809BodiesType(typeof(JT809_0x9008))] - DOWN_CLOSELINK_INFORM = 0x9008, + [JT809BusinessTypeDescription("DOWN_CLOSELINK_INFORM", "上级平台主动关闭链路通知消息")] + 上级平台主动关闭链路通知消息 = 0x9008, #endregion #region 信息统计类 /// - ///接收定位信息数量通知消息 + ///接收定位信息数量通知消息 + ///DOWN_TOTAL_RECV_BACK_MSG /// [Description("接收定位信息数量通知消息")] [JT809BodiesType(typeof(JT809_0x9101))] - DOWN_TOTAL_RECV_BACK_MSG = 0x9101, + [JT809BusinessTypeDescription("DOWN_TOTAL_RECV_BACK_MSG", "接收定位信息数量通知消息")] + 接收定位信息数量通知消息 = 0x9101, #endregion #region 车辆动态信息交换 /// - ///主链路动态信息交换消息 + ///主链路动态信息交换消息 + ///UP_EXG_MSG /// [Description("主链路动态信息交换消息")] [JT809BodiesType(typeof(JT809_0x1200))] - UP_EXG_MSG = 0x1200, + [JT809BusinessTypeDescription("UP_EXG_MSG", "主链路动态信息交换消息")] + 主链路动态信息交换消息 = 0x1200, /// ///从链路动态信息交换消息 + ///DOWN_EXG_MSG /// [Description("从链路动态信息交换消息")] [JT809BodiesType(typeof(JT809_0x9200))] - DOWN_EXG_MSG = 0x9200, + [JT809BusinessTypeDescription("DOWN_EXG_MSG", "从链路动态信息交换消息")] + 从链路动态信息交换消息 = 0x9200, #endregion #region 平台间信息交互类 /// ///主链路平台间信息交互消息 + ///UP_PLATFORM_MSG /// [Description("主链路平台间信息交互消息")] [JT809BodiesType(typeof(JT809_0x1300))] - UP_PLATFORM_MSG = 0x1300, + [JT809BusinessTypeDescription("UP_PLATFORM_MSG", "主链路平台间信息交互消息")] + 主链路平台间信息交互消息 = 0x1300, /// ///从链路平台间信息交互消息 + ///DOWN_PLATFORM_MSG /// [Description("从链路平台间信息交互消息")] [JT809BodiesType(typeof(JT809_0x9300))] - DOWN_PLATFORM_MSG = 0x9300, + [JT809BusinessTypeDescription("DOWN_PLATFORM_MSG", "从链路平台间信息交互消息")] + 从链路平台间信息交互消息 = 0x9300, #endregion #region 车辆报警信息交互类 /// ///主链路报警信息交互消息 + ///UP_WARN_MSG /// [Description("主链路报警信息交互消息")] [JT809BodiesType(typeof(JT809_0x1400))] - UP_WARN_MSG = 0x1400, + [JT809BusinessTypeDescription("UP_WARN_MSG", "主链路报警信息交互消息")] + 主链路报警信息交互消息 = 0x1400, /// - ///从链路报警信息交互消息 + ///从链路报警信息交互消息 + ///DOWN_WARN_MSG /// [Description("从链路报警信息交互消息")] [JT809BodiesType(typeof(JT809_0x9400))] - DOWN_WARN_MSG = 0x9400, + [JT809BusinessTypeDescription("DOWN_WARN_MSG", "从链路报警信息交互消息")] + 从链路报警信息交互消息 = 0x9400, #endregion #region 车辆监管类 /// - ///主链路车辆监管消息 + ///主链路车辆监管消息 + ///UP_CTRL_MSG /// [Description("主链路车辆监管消息")] [JT809BodiesType(typeof(JT809_0x1500))] - UP_CTRL_MSG = 0x1500, + [JT809BusinessTypeDescription("UP_CTRL_MSG", "主链路车辆监管消息")] + 主链路车辆监管消息 = 0x1500, /// - ///从链路车辆监管消息 + ///从链路车辆监管消息 + ///DOWN_CTRL_MSG /// [Description("从链路车辆监管消息")] [JT809BodiesType(typeof(JT809_0x9500))] - DOWN_CTRL_MSG = 0x9500, + [JT809BusinessTypeDescription("DOWN_CTRL_MSG", "从链路车辆监管消息")] + 从链路车辆监管消息 = 0x9500, #endregion #region 车辆静态信息交换类 /// - ///主链路静态信息交换消息 + ///主链路静态信息交换消息 + ///UP_BASE_MSG /// [Description("主链路静态信息交换消息")] [JT809BodiesType(typeof(JT809_0x1600))] - UP_BASE_MSG = 0x1600, + [JT809BusinessTypeDescription("UP_BASE_MSG", "主链路静态信息交换消息")] + 主链路静态信息交换消息 = 0x1600, /// - ///从链路静态信息交换消息 + ///从链路静态信息交换消息 + ///DOWN_BASE_MSG /// [Description("从链路静态信息交换消息")] [JT809BodiesType(typeof(JT809_0x9600))] - DOWN_BASE_MSG = 0x9600, + [JT809BusinessTypeDescription("DOWN_BASE_MSG", "从链路静态信息交换消息")] + 从链路静态信息交换消息 = 0x9600, #endregion } } diff --git a/src/JT809.Protocol/JT809Enums/JT809SubBusinessType.cs b/src/JT809.Protocol/JT809Enums/JT809SubBusinessType.cs index 6648373..f414d30 100644 --- a/src/JT809.Protocol/JT809Enums/JT809SubBusinessType.cs +++ b/src/JT809.Protocol/JT809Enums/JT809SubBusinessType.cs @@ -13,169 +13,220 @@ namespace JT809.Protocol.JT809Enums #region 主链路动态信息交换消息 UP_EXG_MSG /// /// 上传车辆注册信息 + /// UP_EXG_MSG_REGISTER /// [Description("上传车辆注册信息")] [JT809BodiesType(typeof(JT809_0x1200_0x1201))] - UP_EXG_MSG_REGISTER = 0x1201, + [JT809SubBusinessTypeDescription("UP_EXG_MSG_REGISTER", "上传车辆注册信息", JT809BusinessType.主链路动态信息交换消息)] + 上传车辆注册信息 = 0x1201, /// ///实时上传车辆定位信息 + ///UP_EXG_MSG_REAL_LOCATION /// [Description("实时上传车辆定位信息")] [JT809BodiesType(typeof(JT809_0x1200_0x1202))] - UP_EXG_MSG_REAL_LOCATION = 0x1202, + [JT809SubBusinessTypeDescription("UP_EXG_MSG_REAL_LOCATION", "实时上传车辆定位信息", JT809BusinessType.主链路动态信息交换消息)] + 实时上传车辆定位信息 = 0x1202, /// - ///车辆定位信息自动补报 + ///车辆定位信息自动补报 + ///UP_EXG_MSG_HISTORY_LOCATION /// [Description("车辆定位信息自动补报")] [JT809BodiesType(typeof(JT809_0x1200_0x1203))] - UP_EXG_MSG_HISTORY_LOCATION = 0x1203, + [JT809SubBusinessTypeDescription("UP_EXG_MSG_HISTORY_LOCATION", "车辆定位信息自动补报", JT809BusinessType.主链路动态信息交换消息)] + 车辆定位信息自动补报 = 0x1203, /// ///启动车辆定位信息交换应答 + ///UP_EXG_MSG_RETURN_STARTUP_ACK /// [Description("启动车辆定位信息交换应答")] [JT809BodiesType(typeof(JT809_0x1200_0x1205))] - UP_EXG_MSG_RETURN_STARTUP_ACK = 0x1205, + [JT809SubBusinessTypeDescription("UP_EXG_MSG_RETURN_STARTUP_ACK", "启动车辆定位信息交换应答", JT809BusinessType.主链路动态信息交换消息)] + 启动车辆定位信息交换应答 = 0x1205, /// ///结束车辆定位信息交换应答 + ///UP_EXG_MSG_RETURN_END_ACK /// [Description("结束车辆定位信息交换应答")] [JT809BodiesType(typeof(JT809_0x1200_0x1206))] - UP_EXG_MSG_RETURN_END_ACK = 0x1206, + [JT809SubBusinessTypeDescription("UP_EXG_MSG_RETURN_END_ACK", "结束车辆定位信息交换应答", JT809BusinessType.主链路动态信息交换消息)] + 结束车辆定位信息交换应答 = 0x1206, /// ///申请交换指定车辆定位信息请求 + ///UP_EXG_MSG_APPLY_FOR_MONITOR_STARTUP /// [Description("申请交换指定车辆定位信息请求")] [JT809BodiesType(typeof(JT809_0x1200_0x1207))] - UP_EXG_MSG_APPLY_FOR_MONITOR_STARTUP = 0x1207, + [JT809SubBusinessTypeDescription("UP_EXG_MSG_APPLY_FOR_MONITOR_STARTUP", "申请交换指定车辆定位信息请求", JT809BusinessType.主链路动态信息交换消息)] + 申请交换指定车辆定位信息请求 = 0x1207, /// - ///取消交换指定车辆定位信息请求 + ///取消交换指定车辆定位信息请求 + ///UP_EXG_MSG_APPLY_FOR_MONITOR_END /// [Description("取消交换指定车辆定位信息请求")] [JT809BodiesType(typeof(JT809_0x1200_0x1208))] - UP_EXG_MSG_APPLY_FOR_MONITOR_END = 0x1208, + [JT809SubBusinessTypeDescription("UP_EXG_MSG_APPLY_FOR_MONITOR_END", "取消交换指定车辆定位信息请求", JT809BusinessType.主链路动态信息交换消息)] + 取消交换指定车辆定位信息请求 = 0x1208, /// - ///补发车辆定位信息请求 + ///补发车辆定位信息请求 + ///UP_EXG_MSG_APPLY_HISGNSSDATA_REQ /// [Description("补发车辆定位信息请求")] [JT809BodiesType(typeof(JT809_0x1200_0x1209))] - UP_EXG_MSG_APPLY_HISGNSSDATA_REQ = 0x1209, + [JT809SubBusinessTypeDescription("UP_EXG_MSG_APPLY_HISGNSSDATA_REQ", "补发车辆定位信息请求", JT809BusinessType.主链路动态信息交换消息)] + 补发车辆定位信息请求 = 0x1209, /// - ///上报车辆驾驶员身份识别信息应答 + ///上报车辆驾驶员身份识别信息应答 + ///UP_EXG_MSG_REPORT_DRIVER_INFO_ACK /// [Description("上报车辆驾驶员身份识别信息应答")] [JT809BodiesType(typeof(JT809_0x1200_0x120A))] - UP_EXG_MSG_REPORT_DRIVER_INFO_ACK = 0x120A, + [JT809SubBusinessTypeDescription("UP_EXG_MSG_REPORT_DRIVER_INFO_ACK", "上报车辆驾驶员身份识别信息应答", JT809BusinessType.主链路动态信息交换消息)] + 上报车辆驾驶员身份识别信息应答 = 0x120A, /// ///上报车辆电子运单应答 + ///UP_EXG_MSG_TAKE_EWAYBILL_ACK /// [Description("上报车辆电子运单应答")] [JT809BodiesType(typeof(JT809_0x1200_0x120B))] - UP_EXG_MSG_TAKE_EWAYBILL_ACK = 0x120B, + [JT809SubBusinessTypeDescription("UP_EXG_MSG_TAKE_EWAYBILL_ACK", "上报车辆电子运单应答", JT809BusinessType.主链路动态信息交换消息)] + 上报车辆电子运单应答 = 0x120B, /// ///主动上报驾驶员身份信息 + ///UP_EXG_MSG_REPORT_DRIVER_INFO /// [Description("主动上报驾驶员身份信息")] [JT809BodiesType(typeof(JT809_0x1200_0x120C))] - UP_EXG_MSG_REPORT_DRIVER_INFO = 0x120C, + [JT809SubBusinessTypeDescription("UP_EXG_MSG_REPORT_DRIVER_INFO", "主动上报驾驶员身份信息", JT809BusinessType.主链路动态信息交换消息)] + 主动上报驾驶员身份信息 = 0x120C, /// ///主动上报车辆电子运单信息 + ///UP_EXG_MSG_REPORT_EWAYBILL_INFO /// [Description("主动上报车辆电子运单信息")] [JT809BodiesType(typeof(JT809_0x1200_0x120D))] - UP_EXG_MSG_REPORT_EWAYBILL_INFO = 0x120D, + [JT809SubBusinessTypeDescription("UP_EXG_MSG_REPORT_EWAYBILL_INFO", "主动上报车辆电子运单信息", JT809BusinessType.主链路动态信息交换消息)] + 主动上报车辆电子运单信息 = 0x120D, #endregion #region 从链路动态信息交换消息 DOWN_EXG_MSG /// ///交换车辆定位信息 + ///DOWN_EXG_MSG_CAR_LOCATION /// [Description("交换车辆定位信息")] [JT809BodiesType(typeof(JT809_0x9200_0x9202))] - DOWN_EXG_MSG_CAR_LOCATION = 0x9202, + [JT809SubBusinessTypeDescription("DOWN_EXG_MSG_CAR_LOCATION", "交换车辆定位信息", JT809BusinessType.从链路动态信息交换消息)] + 交换车辆定位信息 = 0x9202, /// ///车辆定位信息交换补发 + ///DOWN_EXG_MSG_HISTORY_ARCOSSAREA /// [Description("车辆定位信息交换补发")] [JT809BodiesType(typeof(JT809_0x9200_0x9203))] - DOWN_EXG_MSG_HISTORY_ARCOSSAREA = 0x9203, + [JT809SubBusinessTypeDescription("DOWN_EXG_MSG_HISTORY_ARCOSSAREA", "车辆定位信息交换补发", JT809BusinessType.从链路动态信息交换消息)] + 车辆定位信息交换补发 = 0x9203, /// - ///交换车辆静态信息 + ///交换车辆静态信息 + ///DOWN_EXG_MSG_CAR_INFO /// [Description("交换车辆静态信息")] [JT809BodiesType(typeof(JT809_0x9200_0x9204))] - DOWN_EXG_MSG_CAR_INFO = 0x9204, + [JT809SubBusinessTypeDescription("DOWN_EXG_MSG_CAR_INFO", "交换车辆静态信息", JT809BusinessType.从链路动态信息交换消息)] + 交换车辆静态信息 = 0x9204, /// - ///启动车辆定位信息交换请求 + ///启动车辆定位信息交换请求 + ///DOWN_EXG_MSG_RETURN_STARTUP /// [Description("启动车辆定位信息交换请求")] [JT809BodiesType(typeof(JT809_0x9200_0x9205))] - DOWN_EXG_MSG_RETURN_STARTUP = 0x9205, + [JT809SubBusinessTypeDescription("DOWN_EXG_MSG_RETURN_STARTUP", "启动车辆定位信息交换请求", JT809BusinessType.从链路动态信息交换消息)] + 启动车辆定位信息交换请求 = 0x9205, /// ///结束车辆定位信息交换请求 /// [Description("结束车辆定位信息交换请求")] [JT809BodiesType(typeof(JT809_0x9200_0x9206))] - DOWN_EXG_MSG_RETURN_END = 0x9206, + [JT809SubBusinessTypeDescription("DOWN_EXG_MSG_RETURN_END", "结束车辆定位信息交换请求", JT809BusinessType.从链路动态信息交换消息)] + 结束车辆定位信息交换请求 = 0x9206, /// ///申请交换指定车辆定位信息应答 + ///DOWN_EXG_MSG_APPLY_FOR_MONITOR_STARTUP_ACK /// [Description("申请交换指定车辆定位信息应答")] [JT809BodiesType(typeof(JT809_0x9200_0x9207))] - DOWN_EXG_MSG_APPLY_FOR_MONITOR_STARTUP_ACK = 0x9207, + [JT809SubBusinessTypeDescription("DOWN_EXG_MSG_APPLY_FOR_MONITOR_STARTUP_ACK", "申请交换指定车辆定位信息应答", JT809BusinessType.从链路动态信息交换消息)] + 申请交换指定车辆定位信息应答 = 0x9207, /// ///取消交换指定车辆定位信息应答 + ///DOWN_EXG_MSG_APPLY_FOR_MONITOR_END_ACK /// [Description("取消交换指定车辆定位信息应答")] [JT809BodiesType(typeof(JT809_0x9200_0x9208))] - DOWN_EXG_MSG_APPLY_FOR_MONITOR_END_ACK = 0x9208, + [JT809SubBusinessTypeDescription("DOWN_EXG_MSG_APPLY_FOR_MONITOR_END_ACK", "取消交换指定车辆定位信息应答", JT809BusinessType.从链路动态信息交换消息)] + 取消交换指定车辆定位信息应答 = 0x9208, /// ///补发车辆定位信息应答 + ///DOWN_EXG_MSG_APPLY_HISGNSSDATA_ACK /// [Description("补发车辆定位信息应答")] [JT809BodiesType(typeof(JT809_0x9200_0x9209))] - DOWN_EXG_MSG_APPLY_HISGNSSDATA_ACK = 0x9209, + [JT809SubBusinessTypeDescription("DOWN_EXG_MSG_APPLY_HISGNSSDATA_ACK", "补发车辆定位信息应答", JT809BusinessType.从链路动态信息交换消息)] + 补发车辆定位信息应答 = 0x9209, /// ///上报车辆驾驶员身份识别信息请求 + ///DOWN_EXG_MSG_REPORT_DRIVER_INFO /// [Description("上报车辆驾驶员身份识别信息请求")] [JT809BodiesType(typeof(JT809_0x9200_0x920A))] - DOWN_EXG_MSG_REPORT_DRIVER_INFO = 0x920A, + [JT809SubBusinessTypeDescription("DOWN_EXG_MSG_REPORT_DRIVER_INFO", "上报车辆驾驶员身份识别信息请求", JT809BusinessType.从链路动态信息交换消息)] + 上报车辆驾驶员身份识别信息请求 = 0x920A, /// ///上报车辆电子运单请求 + ///DOWN_EXG_MSG_TAKE_EWAYBILL_REQ /// [Description("上报车辆电子运单请求")] [JT809BodiesType(typeof(JT809_0x9200_0x920B))] - DOWN_EXG_MSG_TAKE_EWAYBILL_REQ = 0x920B, + [JT809SubBusinessTypeDescription("DOWN_EXG_MSG_TAKE_EWAYBILL_REQ", "上报车辆电子运单请求", JT809BusinessType.从链路动态信息交换消息)] + 上报车辆电子运单请求 = 0x920B, #endregion #region 主链路平台信息交互消息 UP_PLATFORM_MSG /// ///平台查岗应答 + ///UP_PLATFORM_MSG_POST_QUERY_ACK /// [Description("平台查岗应答")] [JT809BodiesType(typeof(JT809_0x1300_0x1301))] - UP_PLATFORM_MSG_POST_QUERY_ACK = 0x1301, + [JT809SubBusinessTypeDescription("UP_PLATFORM_MSG_POST_QUERY_ACK", "平台查岗应答", JT809BusinessType.主链路平台间信息交互消息)] + 平台查岗应答 = 0x1301, /// ///下发平台间报文应答 + ///UP_PLATFORM_MSG_INFO_ACK /// [Description("下发平台间报文应答")] [JT809BodiesType(typeof(JT809_0x1300_0x1302))] - UP_PLATFORM_MSG_INFO_ACK = 0x1302, + [JT809SubBusinessTypeDescription("UP_PLATFORM_MSG_INFO_ACK", "下发平台间报文应答", JT809BusinessType.主链路平台间信息交互消息)] + 下发平台间报文应答 = 0x1302, #endregion #region 从链路平台信息交互消息 DOWN_PLATFORM_MSG /// ///平台查岗请求 + ///DOWN_PLATFORM_MSG_POST_QUERY_REQ /// [Description("平台查岗请求")] [JT809BodiesType(typeof(JT809_0x9300_0x9301))] - DOWN_PLATFORM_MSG_POST_QUERY_REQ = 0x9301, + [JT809SubBusinessTypeDescription("DOWN_PLATFORM_MSG_POST_QUERY_REQ", "平台查岗请求", JT809BusinessType.从链路平台间信息交互消息)] + 平台查岗请求 = 0x9301, /// ///下发平台间报文请求 + ///DOWN_PLATFORM_MSG_INFO_REQ /// [Description("下发平台间报文请求")] [JT809BodiesType(typeof(JT809_0x9300_0x9302))] - DOWN_PLATFORM_MSG_INFO_REQ = 0x9302, + [JT809SubBusinessTypeDescription("DOWN_PLATFORM_MSG_INFO_REQ", "下发平台间报文请求", JT809BusinessType.从链路平台间信息交互消息)] + 下发平台间报文请求 = 0x9302, #endregion #region 主链路报警信息交互消息 UP_WARN_MSG @@ -184,124 +235,159 @@ namespace JT809.Protocol.JT809Enums /// [Description("报警督办应答")] [JT809BodiesType(typeof(JT809_0x1400_0x1401))] + [JT809SubBusinessTypeDescription("DOWN_PLATFORM_MSG_INFO_REQ", "下发平台间报文请求", JT809BusinessType.主链路报警信息交互消息)] UP_WARN_MSG_URGE_TODO_ACK = 0x1401, /// ///上报报警信息 + ///UP_WARN_MSG_ADPT_INFO /// [Description("上报报警信息")] [JT809BodiesType(typeof(JT809_0x1400_0x1402))] - UP_WARN_MSG_ADPT_INFO = 0x1402, + [JT809SubBusinessTypeDescription("UP_WARN_MSG_ADPT_INFO", "上报报警信息", JT809BusinessType.主链路报警信息交互消息)] + 上报报警信息 = 0x1402, /// ///主动上报报警处理结果信息 + ///UP_WARN_MSG_ADPT_TODO_INFO /// [Description("主动上报报警处理结果信息")] [JT809BodiesType(typeof(JT809_0x1400_0x1403))] - UP_WARN_MSG_ADPT_TODO_INFO = 0x1403, + [JT809SubBusinessTypeDescription("UP_WARN_MSG_ADPT_TODO_INFO", "主动上报报警处理结果信息", JT809BusinessType.主链路报警信息交互消息)] + 主动上报报警处理结果信息 = 0x1403, #endregion #region 从链路报警信息交互消息 DOWN_WARN_MSG /// ///报警督办请求 + ///DOWN_WARN_MSG_URGE_TODO_REQ /// [Description("报警督办请求")] [JT809BodiesType(typeof(JT809_0x9400_0x9401))] - DOWN_WARN_MSG_URGE_TODO_REQ = 0x9401, + [JT809SubBusinessTypeDescription("DOWN_WARN_MSG_URGE_TODO_REQ", "报警督办请求", JT809BusinessType.从链路报警信息交互消息)] + 报警督办请求 = 0x9401, /// ///报警预警 + ///DOWN_WARN_MSG_INFORM_TIPS /// [Description("报警预警")] [JT809BodiesType(typeof(JT809_0x9400_0x9402))] - DOWN_WARN_MSG_INFORM_TIPS = 0x9402, + [JT809SubBusinessTypeDescription("DOWN_WARN_MSG_INFORM_TIPS", "报警预警", JT809BusinessType.从链路报警信息交互消息)] + 报警预警 = 0x9402, /// ///实时交换报警信息 + ///DOWN_WARN_MSG_EXG_INFORM /// [Description("实时交换报警信息")] [JT809BodiesType(typeof(JT809_0x9400_0x9403))] - DOWN_WARN_MSG_EXG_INFORM = 0x9403, + [JT809SubBusinessTypeDescription("DOWN_WARN_MSG_EXG_INFORM", "实时交换报警信息", JT809BusinessType.从链路报警信息交互消息)] + 实时交换报警信息 = 0x9403, #endregion #region 主链路车辆监管消息 UP_CTRL_MSG /// ///车辆单向监听应答 + ///UP_CTRL_MSG_MONITOR_VEHICLE_ACK /// [Description("车辆单向监听应答")] [JT809BodiesType(typeof(JT809_0x1500_0x1501))] - UP_CTRL_MSG_MONITOR_VEHICLE_ACK = 0x1501, + [JT809SubBusinessTypeDescription("UP_CTRL_MSG_MONITOR_VEHICLE_ACK", "车辆单向监听应答", JT809BusinessType.主链路车辆监管消息)] + 车辆单向监听应答 = 0x1501, /// ///车辆拍照应答 + ///UP_CTRL_MSG_TAKE_PHOTO_ACK /// [Description("车辆拍照应答")] [JT809BodiesType(typeof(JT809_0x1500_0x1502))] - UP_CTRL_MSG_TAKE_PHOTO_ACK = 0x1502, + [JT809SubBusinessTypeDescription("UP_CTRL_MSG_TAKE_PHOTO_ACK", "车辆拍照应答", JT809BusinessType.主链路车辆监管消息)] + 车辆拍照应答 = 0x1502, /// ///下发车辆报文应答 + ///UP_CTRL_MSG_TEXT_INFO_ACK /// [Description("下发车辆报文应答")] [JT809BodiesType(typeof(JT809_0x1500_0x1503))] - UP_CTRL_MSG_TEXT_INFO_ACK = 0x1503, + [JT809SubBusinessTypeDescription("UP_CTRL_MSG_TEXT_INFO_ACK", "下发车辆报文应答", JT809BusinessType.主链路车辆监管消息)] + 下发车辆报文应答 = 0x1503, /// ///上报车辆行驶记录应答 + ///UP_CTRL_MSG_TAKE_TRAVEL_ACK /// [Description("上报车辆行驶记录应答")] [JT809BodiesType(typeof(JT809_0x1500_0x1504))] - UP_CTRL_MSG_TAKE_TRAVEL_ACK = 0x1504, + [JT809SubBusinessTypeDescription("UP_CTRL_MSG_TAKE_TRAVEL_ACK", "上报车辆行驶记录应答", JT809BusinessType.主链路车辆监管消息)] + 上报车辆行驶记录应答 = 0x1504, /// ///车辆应急接入监管平台应答消息 + ///UP_CTRL_MSG_EMERGENCY_MONITORING_ACK /// [Description("车辆应急接入监管平台应答消息")] [JT809BodiesType(typeof(JT809_0x1500_0x1505))] - UP_CTRL_MSG_EMERGENCY_MONITORING_ACK = 0x1505, + [JT809SubBusinessTypeDescription("UP_CTRL_MSG_EMERGENCY_MONITORING_ACK", "车辆应急接入监管平台应答消息", JT809BusinessType.主链路车辆监管消息)] + 车辆应急接入监管平台应答消息 = 0x1505, #endregion #region 从链路车辆监管消息 DOWN_CTRL_MSG /// ///车辆单向监听请求 + ///DOWN_CTRL_MSG_MONITOR_VEHICLE_REQ /// [Description("车辆单向监听请求")] [JT809BodiesType(typeof(JT809_0x9500_0x9501))] - DOWN_CTRL_MSG_MONITOR_VEHICLE_REQ = 0x9501, + [JT809SubBusinessTypeDescription("DOWN_CTRL_MSG_MONITOR_VEHICLE_REQ", "车辆单向监听请求", JT809BusinessType.从链路车辆监管消息)] + 车辆单向监听请求 = 0x9501, /// ///车辆拍照请求 + ///DOWN_CTRL_MSG_TAKE_PHOTO_REQ /// [Description("车辆拍照请求")] [JT809BodiesType(typeof(JT809_0x9500_0x9502))] - DOWN_CTRL_MSG_TAKE_PHOTO_REQ = 0x9502, + [JT809SubBusinessTypeDescription("DOWN_CTRL_MSG_TAKE_PHOTO_REQ", "车辆拍照请求", JT809BusinessType.从链路车辆监管消息)] + 车辆拍照请求 = 0x9502, /// ///下发车辆报文请求 + ///DOWN_CTRL_MSG_TEXT_INFO /// [Description("下发车辆报文请求")] [JT809BodiesType(typeof(JT809_0x9500_0x9503))] - DOWN_CTRL_MSG_TEXT_INFO = 0x9503, + [JT809SubBusinessTypeDescription("DOWN_CTRL_MSG_TEXT_INFO", "下发车辆报文请求", JT809BusinessType.从链路车辆监管消息)] + 下发车辆报文请求 = 0x9503, /// ///上报车辆行驶记录请求 + ///DOWN_CTRL_MSG_TAKE_TRAVEL_REQ /// [Description("上报车辆行驶记录请求")] [JT809BodiesType(typeof(JT809_0x9500_0x9504))] - DOWN_CTRL_MSG_TAKE_TRAVEL_REQ = 0x9504, + [JT809SubBusinessTypeDescription("DOWN_CTRL_MSG_TAKE_TRAVEL_REQ", "上报车辆行驶记录请求", JT809BusinessType.从链路车辆监管消息)] + 上报车辆行驶记录请求 = 0x9504, /// ///车辆应急接入监管平台请求消息 + ///DOWN_CTRL_MSG_EMERGENCY_MONITORING_REQ /// [Description("车辆应急接入监管平台请求消息")] [JT809BodiesType(typeof(JT809_0x9500_0x9505))] - DOWN_CTRL_MSG_EMERGENCY_MONITORING_REQ = 0x9505, + [JT809SubBusinessTypeDescription("DOWN_CTRL_MSG_EMERGENCY_MONITORING_REQ", "车辆应急接入监管平台请求消息", JT809BusinessType.从链路车辆监管消息)] + 车辆应急接入监管平台请求消息 = 0x9505, #endregion #region 主链路静态信息交换消息 UP_BASE_MSG /// ///补报车辆静态信息应答 + ///UP_BASE_MSG_VEHICLE_ADDED_ACK /// [Description("补报车辆静态信息应答")] [JT809BodiesType(typeof(JT809_0x1600_0x1601))] - UP_BASE_MSG_VEHICLE_ADDED_ACK = 0x1601, + [JT809SubBusinessTypeDescription("UP_BASE_MSG_VEHICLE_ADDED_ACK", "补报车辆静态信息应答", JT809BusinessType.主链路静态信息交换消息)] + 补报车辆静态信息应答 = 0x1601, #endregion #region 从链路静态信息交换消息 DOWN_BASE_MSG /// - ///补报车辆静态信息请求 + ///补报车辆静态信息请求 + ///DOWN_BASE_MSG_VEHICLE_ADDED /// [Description("补报车辆静态信息请求")] [JT809BodiesType(typeof(JT809_0x9600_0x9601))] - DOWN_BASE_MSG_VEHICLE_ADDED = 0x9601, + [JT809SubBusinessTypeDescription("DOWN_BASE_MSG_VEHICLE_ADDED", "补报车辆静态信息请求", JT809BusinessType.从链路静态信息交换消息)] + 补报车辆静态信息请求 = 0x9601, #endregion } } diff --git a/src/JT809.Protocol/JT809Extensions/JT809PackageExtensions.cs b/src/JT809.Protocol/JT809Extensions/JT809PackageExtensions.cs index 6db7ae8..65c6f78 100644 --- a/src/JT809.Protocol/JT809Extensions/JT809PackageExtensions.cs +++ b/src/JT809.Protocol/JT809Extensions/JT809PackageExtensions.cs @@ -8,103 +8,20 @@ namespace JT809.Protocol.JT809Extensions public static class JT809PackageExtensions { /// - /// 创建JT809Package对应的数据体: - /// - /// - /// JT809_0x1001 - /// - /// - /// JT809_0x1002 - /// - /// - /// JT809_0x1003 - /// - /// - /// JT809_0x1004 - /// - /// - /// JT809_0x1005 - /// - /// - /// JT809_0x1006 - /// - /// - /// JT809_0x1007 - /// - /// - /// JT809_0x1008 - /// - /// - /// JT809_0x1200 - /// - /// - /// JT809_0x1300 - /// - /// - /// JT809_0x1400 - /// - /// - /// JT809_0x1500 - /// - /// - /// JT809_0x1600 - /// - /// - /// JT809_0x9001 - /// - /// - /// JT809_0x9002 - /// - /// - /// JT809_0x9003 - /// - /// - /// JT809_0x9004 - /// - /// - /// JT809_0x9005 - /// - /// - /// JT809_0x9006 - /// - /// - /// JT809_0x9007 - /// - /// - /// JT809_0x9008 - /// - /// - /// JT809_0x9101 - /// - /// - /// JT809_0x9200 - /// - /// - /// JT809_0x9300 - /// - /// - /// JT809_0x9400 - /// - /// - /// JT809_0x9500 - /// - /// - /// JT809_0x9600 - /// - /// + /// 创建JT809Package对应的数据体 /// /// /// /// /// - public static JT809Package Create(this JT809BusinessType msgID, TJT809Bodies jT809Bodies) + public static JT809Package Create(this JT809BusinessType jT809BusinessType, TJT809Bodies jT809Bodies) where TJT809Bodies: JT809Bodies { JT809Package jT809Package = new JT809Package(); jT809Package.Bodies = jT809Bodies; jT809Package.Header = new JT809Header() { - MsgID = msgID, + BusinessType = jT809BusinessType, MsgSN = JT809GlobalConfig.Instance.MsgSNDistributed.Increment(), EncryptFlag = JT809GlobalConfig.Instance.HeaderOptions.EncryptFlag, EncryptKey = JT809GlobalConfig.Instance.HeaderOptions.EncryptKey, @@ -113,5 +30,24 @@ namespace JT809.Protocol.JT809Extensions }; return jT809Package; } + /// + /// 创建JT809Package对应的数据体 + /// + /// + /// + public static JT809Package Create(this JT809BusinessType jT809BusinessType) + { + JT809Package jT809Package = new JT809Package(); + jT809Package.Header = new JT809Header() + { + BusinessType = jT809BusinessType, + MsgSN = JT809GlobalConfig.Instance.MsgSNDistributed.Increment(), + EncryptFlag = JT809GlobalConfig.Instance.HeaderOptions.EncryptFlag, + EncryptKey = JT809GlobalConfig.Instance.HeaderOptions.EncryptKey, + MsgGNSSCENTERID = JT809GlobalConfig.Instance.HeaderOptions.MsgGNSSCENTERID, + Version = JT809GlobalConfig.Instance.HeaderOptions.Version + }; + return jT809Package; + } } } diff --git a/src/JT809.Protocol/JT809Formatters/JT809HeaderFormatter.cs b/src/JT809.Protocol/JT809Formatters/JT809HeaderFormatter.cs index 71088fd..0926234 100644 --- a/src/JT809.Protocol/JT809Formatters/JT809HeaderFormatter.cs +++ b/src/JT809.Protocol/JT809Formatters/JT809HeaderFormatter.cs @@ -15,7 +15,7 @@ namespace JT809.Protocol.JT809Formatters JT809Header jT809Header = new JT809Header(); jT809Header.MsgLength = JT809BinaryExtensions.ReadUInt32Little(bytes, ref offset); jT809Header.MsgSN= JT809BinaryExtensions.ReadUInt32Little(bytes, ref offset); - jT809Header.MsgID = (JT809BusinessType)JT809BinaryExtensions.ReadUInt16Little(bytes, ref offset); + jT809Header.BusinessType = (JT809BusinessType)JT809BinaryExtensions.ReadUInt16Little(bytes, ref offset); jT809Header.MsgGNSSCENTERID = JT809BinaryExtensions.ReadUInt32Little(bytes, ref offset); jT809Header.Version = new JT809Header_Version(JT809BinaryExtensions.ReadBytesLittle(bytes, ref offset, JT809Header_Version.FixedByteLength)); jT809Header.EncryptFlag= (JT809Header_Encrypt)JT809BinaryExtensions.ReadByteLittle(bytes, ref offset); @@ -28,7 +28,7 @@ namespace JT809.Protocol.JT809Formatters { offset += JT809BinaryExtensions.WriteUInt32Little(memoryOwner, offset, value.MsgLength); offset += JT809BinaryExtensions.WriteUInt32Little(memoryOwner, offset, value.MsgSN); - offset += JT809BinaryExtensions.WriteUInt16Little(memoryOwner, offset, (ushort)value.MsgID); + offset += JT809BinaryExtensions.WriteUInt16Little(memoryOwner, offset, (ushort)value.BusinessType); offset += JT809BinaryExtensions.WriteUInt32Little(memoryOwner, offset, value.MsgGNSSCENTERID); offset += JT809BinaryExtensions.WriteBytesLittle(memoryOwner, offset, value.Version.Buffer); offset += JT809BinaryExtensions.WriteByteLittle(memoryOwner, offset, (byte)value.EncryptFlag); diff --git a/src/JT809.Protocol/JT809Formatters/JT809PackageFormatter.cs b/src/JT809.Protocol/JT809Formatters/JT809PackageFormatter.cs index ae8f7f4..b89e0e3 100644 --- a/src/JT809.Protocol/JT809Formatters/JT809PackageFormatter.cs +++ b/src/JT809.Protocol/JT809Formatters/JT809PackageFormatter.cs @@ -52,7 +52,7 @@ namespace JT809.Protocol.JT809Formatters if ((jT809Package.Header.MsgLength - JT809Package.FixedByteLength) > 0) { //JT809.Protocol.JT809Enums.JT809BusinessType 映射对应消息特性 - JT809BodiesTypeAttribute jT809BodiesTypeAttribute = jT809Package.Header.MsgID.GetAttribute(); + JT809BodiesTypeAttribute jT809BodiesTypeAttribute = jT809Package.Header.BusinessType.GetAttribute(); if (jT809BodiesTypeAttribute != null) { try @@ -85,7 +85,7 @@ namespace JT809.Protocol.JT809Formatters { // 1. 先序列化数据体,根据数据体的长度赋值给头部,在序列化头部。 int messageBodyOffset = 0; - JT809BodiesTypeAttribute jT809BodiesTypeAttribute = value.Header.MsgID.GetAttribute(); + JT809BodiesTypeAttribute jT809BodiesTypeAttribute = value.Header.BusinessType.GetAttribute(); if (jT809BodiesTypeAttribute != null) { if (value.Bodies != null) diff --git a/src/JT809.Protocol/JT809Header.cs b/src/JT809.Protocol/JT809Header.cs index 41d42cf..7defbc8 100644 --- a/src/JT809.Protocol/JT809Header.cs +++ b/src/JT809.Protocol/JT809Header.cs @@ -29,7 +29,7 @@ namespace JT809.Protocol /// /// 业务数据类型 /// - public JT809BusinessType MsgID { get; set; } + public JT809BusinessType BusinessType { get; set; } /// /// 下级平台接入码,上级平台给下级平台分配唯一标识码。 ///