@@ -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.车载终端, | |||
@@ -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 | |||
@@ -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<JT809Header>(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); | |||
@@ -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<JT809_0x1200>(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); | |||
@@ -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<JT809_0x1300>(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); | |||
@@ -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<JT809_0x1600>(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); | |||
} | |||
} | |||
@@ -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); | |||
@@ -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); | |||
@@ -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.车载终端, | |||
@@ -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; | |||
} | |||
} | |||
} |
@@ -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; | |||
} | |||
} | |||
} |
@@ -14,179 +14,233 @@ namespace JT809.Protocol.JT809Enums | |||
{ | |||
#region 链路管理类 | |||
///<summary> | |||
///主链路登录请求消息 | |||
///主链路登录请求消息 | |||
///UP_CONNECT_REQ | |||
///</summary> | |||
[Description("主链路登录请求消息")] | |||
[JT809BodiesType(typeof(JT809_0x1001))] | |||
UP_CONNECT_REQ = 0x1001, | |||
[JT809BusinessTypeDescription("UP_CONNECT_REQ", "主链路登录请求消息")] | |||
主链路登录请求消息 = 0x1001, | |||
///<summary> | |||
///主链路登录应答消息 | |||
///UP_CONNECT_RSP | |||
///</summary> | |||
[Description("主链路登录应答消息")] | |||
[JT809BusinessTypeDescription("UP_CONNECT_RSP", "主链路登录应答消息")] | |||
[JT809BodiesType(typeof(JT809_0x1002))] | |||
UP_CONNECT_RSP = 0x1002, | |||
主链路登录应答消息 = 0x1002, | |||
///<summary> | |||
///主链路注销请求消息 | |||
///主链路注销请求消息 | |||
///UP_DISCONNECT_REQ | |||
///</summary> | |||
[Description("主链路注销请求消息")] | |||
[JT809BusinessTypeDescription("UP_DISCONNECT_REQ", "主链路注销请求消息")] | |||
[JT809BodiesType(typeof(JT809_0x1003))] | |||
UP_DISCONNECT_REQ = 0x1003, | |||
主链路注销请求消息 = 0x1003, | |||
///<summary> | |||
///主链路注销应答消息 | |||
///主链路注销应答消息 | |||
///UP_DISCONNECT_RSP | |||
///</summary> | |||
[Description("主链路注销应答消息")] | |||
[JT809BodiesType(typeof(JT809_0x1004))] | |||
UP_DISCONNECT_RSP = 0x1004, | |||
[JT809BusinessTypeDescription("UP_DISCONNECT_RSP", "主链路注销应答消息")] | |||
主链路注销应答消息 = 0x1004, | |||
///<summary> | |||
///主链路连接保持请求消息 | |||
///UP_LINKTEST_REQ | |||
///</summary> | |||
[Description("主链路连接保持请求消息")] | |||
[JT809BodiesType(typeof(JT809_0x1005))] | |||
UP_LINKTEST_REQ = 0x1005, | |||
[JT809BusinessTypeDescription("UP_LINKTEST_REQ", "主链路连接保持请求消息")] | |||
主链路连接保持请求消息 = 0x1005, | |||
///<summary> | |||
///主链路连接保持应答消息 | |||
///UP_LINKTEST_RSP | |||
///</summary> | |||
[Description("主链路连接保持应答消息")] | |||
[JT809BodiesType(typeof(JT809_0x1006))] | |||
UP_LINKTEST_RSP = 0x1006, | |||
[JT809BusinessTypeDescription("UP_LINKTEST_RSP", "主链路连接保持应答消息")] | |||
主链路连接保持应答消息 = 0x1006, | |||
///<summary> | |||
///主链路断开通知消息 | |||
///主链路断开通知消息 | |||
///UP_DISCONNECT_INFORM | |||
///</summary> | |||
[Description("主链路断开通知消息")] | |||
[JT809BodiesType(typeof(JT809_0x1007))] | |||
UP_DISCONNECT_INFORM = 0x1007, | |||
[JT809BusinessTypeDescription("UP_DISCONNECT_INFORM", "主链路断开通知消息")] | |||
主链路断开通知消息 = 0x1007, | |||
///<summary> | |||
///下级平台主动关闭链路通知消息 | |||
///UP_CLOSELINK_INFORM | |||
///</summary> | |||
[Description("下级平台主动关闭链路通知消息")] | |||
[JT809BodiesType(typeof(JT809_0x1008))] | |||
UP_CLOSELINK_INFORM = 0x1008, | |||
[JT809BusinessTypeDescription("UP_CLOSELINK_INFORM", "下级平台主动关闭链路通知消息")] | |||
下级平台主动关闭链路通知消息 = 0x1008, | |||
///<summary> | |||
///从链路连接请求消息 | |||
///DOWN_CONNECT_REQ | |||
///</summary> | |||
[Description("从链路连接请求消息")] | |||
[JT809BodiesType(typeof(JT809_0x9001))] | |||
DOWN_CONNECT_REQ = 0x9001, | |||
[JT809BusinessTypeDescription("DOWN_CONNECT_REQ", "从链路连接请求消息")] | |||
从链路连接请求消息 = 0x9001, | |||
///<summary> | |||
///从链路连接应答消息 | |||
///从链路连接应答消息 | |||
///DOWN_CONNECT_RSP | |||
///</summary> | |||
[Description("从链路连接应答消息")] | |||
[JT809BodiesType(typeof(JT809_0x9002))] | |||
DOWN_CONNECT_RSP = 0x9002, | |||
[JT809BusinessTypeDescription("DOWN_CONNECT_RSP", "从链路连接应答消息")] | |||
从链路连接应答消息 = 0x9002, | |||
///<summary> | |||
///从链路注销请求消息 | |||
///DOWN_DISCONNECT_REQ | |||
///</summary> | |||
[Description("从链路注销请求消息")] | |||
[JT809BodiesType(typeof(JT809_0x9003))] | |||
DOWN_DISCONNECT_REQ = 0x9003, | |||
[JT809BusinessTypeDescription("DOWN_DISCONNECT_REQ", "从链路注销请求消息")] | |||
从链路注销请求消息 = 0x9003, | |||
///<summary> | |||
///从链路注销应答消息 | |||
///DOWN_DISCONNECT_RSP | |||
///</summary> | |||
[Description("从链路注销应答消息")] | |||
[JT809BodiesType(typeof(JT809_0x9004))] | |||
DOWN_DISCONNECT_RSP = 0x9004, | |||
[JT809BusinessTypeDescription("DOWN_DISCONNECT_RSP", "从链路注销应答消息")] | |||
从链路注销应答消息 = 0x9004, | |||
///<summary> | |||
///从链路连接保持请求消息 | |||
///DOWN_LINKTEST_REQ | |||
///</summary> | |||
[Description("从链路连接保持请求消息")] | |||
[JT809BodiesType(typeof(JT809_0x9005))] | |||
DOWN_LINKTEST_REQ = 0x9005, | |||
[JT809BusinessTypeDescription("DOWN_LINKTEST_REQ", "从链路连接保持请求消息")] | |||
从链路连接保持请求消息 = 0x9005, | |||
///<summary> | |||
///从链路连接保持应答消息 | |||
///从链路连接保持应答消息 | |||
///DOWN_LINKTEST_RSP | |||
///</summary> | |||
[Description("从链路连接保持应答消息")] | |||
[JT809BodiesType(typeof(JT809_0x9006))] | |||
DOWN_LINKTEST_RSP = 0x9006, | |||
[JT809BusinessTypeDescription("DOWN_LINKTEST_RSP", "从链路连接保持应答消息")] | |||
从链路连接保持应答消息 = 0x9006, | |||
///<summary> | |||
///从链路断开通知消息 | |||
///DOWN_DISCONNECT_INFORM | |||
///</summary> | |||
[Description("从链路断开通知消息")] | |||
[JT809BodiesType(typeof(JT809_0x9007))] | |||
DOWN_DISCONNECT_INFORM = 0x9007, | |||
[JT809BusinessTypeDescription("DOWN_DISCONNECT_INFORM", "从链路断开通知消息")] | |||
从链路断开通知消息 = 0x9007, | |||
///<summary> | |||
///上级平台主动关闭链路通知消息 | |||
///上级平台主动关闭链路通知消息 | |||
///DOWN_CLOSELINK_INFORM | |||
///</summary> | |||
[Description("上级平台主动关闭链路通知消息")] | |||
[JT809BodiesType(typeof(JT809_0x9008))] | |||
DOWN_CLOSELINK_INFORM = 0x9008, | |||
[JT809BusinessTypeDescription("DOWN_CLOSELINK_INFORM", "上级平台主动关闭链路通知消息")] | |||
上级平台主动关闭链路通知消息 = 0x9008, | |||
#endregion | |||
#region 信息统计类 | |||
///<summary> | |||
///接收定位信息数量通知消息 | |||
///接收定位信息数量通知消息 | |||
///DOWN_TOTAL_RECV_BACK_MSG | |||
///</summary> | |||
[Description("接收定位信息数量通知消息")] | |||
[JT809BodiesType(typeof(JT809_0x9101))] | |||
DOWN_TOTAL_RECV_BACK_MSG = 0x9101, | |||
[JT809BusinessTypeDescription("DOWN_TOTAL_RECV_BACK_MSG", "接收定位信息数量通知消息")] | |||
接收定位信息数量通知消息 = 0x9101, | |||
#endregion | |||
#region 车辆动态信息交换 | |||
///<summary> | |||
///主链路动态信息交换消息 | |||
///主链路动态信息交换消息 | |||
///UP_EXG_MSG | |||
///</summary> | |||
[Description("主链路动态信息交换消息")] | |||
[JT809BodiesType(typeof(JT809_0x1200))] | |||
UP_EXG_MSG = 0x1200, | |||
[JT809BusinessTypeDescription("UP_EXG_MSG", "主链路动态信息交换消息")] | |||
主链路动态信息交换消息 = 0x1200, | |||
///<summary> | |||
///从链路动态信息交换消息 | |||
///DOWN_EXG_MSG | |||
///</summary> | |||
[Description("从链路动态信息交换消息")] | |||
[JT809BodiesType(typeof(JT809_0x9200))] | |||
DOWN_EXG_MSG = 0x9200, | |||
[JT809BusinessTypeDescription("DOWN_EXG_MSG", "从链路动态信息交换消息")] | |||
从链路动态信息交换消息 = 0x9200, | |||
#endregion | |||
#region 平台间信息交互类 | |||
///<summary> | |||
///主链路平台间信息交互消息 | |||
///UP_PLATFORM_MSG | |||
///</summary> | |||
[Description("主链路平台间信息交互消息")] | |||
[JT809BodiesType(typeof(JT809_0x1300))] | |||
UP_PLATFORM_MSG = 0x1300, | |||
[JT809BusinessTypeDescription("UP_PLATFORM_MSG", "主链路平台间信息交互消息")] | |||
主链路平台间信息交互消息 = 0x1300, | |||
///<summary> | |||
///从链路平台间信息交互消息 | |||
///DOWN_PLATFORM_MSG | |||
///</summary> | |||
[Description("从链路平台间信息交互消息")] | |||
[JT809BodiesType(typeof(JT809_0x9300))] | |||
DOWN_PLATFORM_MSG = 0x9300, | |||
[JT809BusinessTypeDescription("DOWN_PLATFORM_MSG", "从链路平台间信息交互消息")] | |||
从链路平台间信息交互消息 = 0x9300, | |||
#endregion | |||
#region 车辆报警信息交互类 | |||
///<summary> | |||
///主链路报警信息交互消息 | |||
///UP_WARN_MSG | |||
///</summary> | |||
[Description("主链路报警信息交互消息")] | |||
[JT809BodiesType(typeof(JT809_0x1400))] | |||
UP_WARN_MSG = 0x1400, | |||
[JT809BusinessTypeDescription("UP_WARN_MSG", "主链路报警信息交互消息")] | |||
主链路报警信息交互消息 = 0x1400, | |||
///<summary> | |||
///从链路报警信息交互消息 | |||
///从链路报警信息交互消息 | |||
///DOWN_WARN_MSG | |||
///</summary> | |||
[Description("从链路报警信息交互消息")] | |||
[JT809BodiesType(typeof(JT809_0x9400))] | |||
DOWN_WARN_MSG = 0x9400, | |||
[JT809BusinessTypeDescription("DOWN_WARN_MSG", "从链路报警信息交互消息")] | |||
从链路报警信息交互消息 = 0x9400, | |||
#endregion | |||
#region 车辆监管类 | |||
///<summary> | |||
///主链路车辆监管消息 | |||
///主链路车辆监管消息 | |||
///UP_CTRL_MSG | |||
///</summary> | |||
[Description("主链路车辆监管消息")] | |||
[JT809BodiesType(typeof(JT809_0x1500))] | |||
UP_CTRL_MSG = 0x1500, | |||
[JT809BusinessTypeDescription("UP_CTRL_MSG", "主链路车辆监管消息")] | |||
主链路车辆监管消息 = 0x1500, | |||
///<summary> | |||
///从链路车辆监管消息 | |||
///从链路车辆监管消息 | |||
///DOWN_CTRL_MSG | |||
///</summary> | |||
[Description("从链路车辆监管消息")] | |||
[JT809BodiesType(typeof(JT809_0x9500))] | |||
DOWN_CTRL_MSG = 0x9500, | |||
[JT809BusinessTypeDescription("DOWN_CTRL_MSG", "从链路车辆监管消息")] | |||
从链路车辆监管消息 = 0x9500, | |||
#endregion | |||
#region 车辆静态信息交换类 | |||
///<summary> | |||
///主链路静态信息交换消息 | |||
///主链路静态信息交换消息 | |||
///UP_BASE_MSG | |||
///</summary> | |||
[Description("主链路静态信息交换消息")] | |||
[JT809BodiesType(typeof(JT809_0x1600))] | |||
UP_BASE_MSG = 0x1600, | |||
[JT809BusinessTypeDescription("UP_BASE_MSG", "主链路静态信息交换消息")] | |||
主链路静态信息交换消息 = 0x1600, | |||
///<summary> | |||
///从链路静态信息交换消息 | |||
///从链路静态信息交换消息 | |||
///DOWN_BASE_MSG | |||
///</summary> | |||
[Description("从链路静态信息交换消息")] | |||
[JT809BodiesType(typeof(JT809_0x9600))] | |||
DOWN_BASE_MSG = 0x9600, | |||
[JT809BusinessTypeDescription("DOWN_BASE_MSG", "从链路静态信息交换消息")] | |||
从链路静态信息交换消息 = 0x9600, | |||
#endregion | |||
} | |||
} |
@@ -13,169 +13,220 @@ namespace JT809.Protocol.JT809Enums | |||
#region 主链路动态信息交换消息 UP_EXG_MSG | |||
/// <summary> | |||
/// 上传车辆注册信息 | |||
/// UP_EXG_MSG_REGISTER | |||
/// </summary> | |||
[Description("上传车辆注册信息")] | |||
[JT809BodiesType(typeof(JT809_0x1200_0x1201))] | |||
UP_EXG_MSG_REGISTER = 0x1201, | |||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_REGISTER", "上传车辆注册信息", JT809BusinessType.主链路动态信息交换消息)] | |||
上传车辆注册信息 = 0x1201, | |||
///<summary> | |||
///实时上传车辆定位信息 | |||
///UP_EXG_MSG_REAL_LOCATION | |||
///</summary> | |||
[Description("实时上传车辆定位信息")] | |||
[JT809BodiesType(typeof(JT809_0x1200_0x1202))] | |||
UP_EXG_MSG_REAL_LOCATION = 0x1202, | |||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_REAL_LOCATION", "实时上传车辆定位信息", JT809BusinessType.主链路动态信息交换消息)] | |||
实时上传车辆定位信息 = 0x1202, | |||
///<summary> | |||
///车辆定位信息自动补报 | |||
///车辆定位信息自动补报 | |||
///UP_EXG_MSG_HISTORY_LOCATION | |||
///</summary> | |||
[Description("车辆定位信息自动补报")] | |||
[JT809BodiesType(typeof(JT809_0x1200_0x1203))] | |||
UP_EXG_MSG_HISTORY_LOCATION = 0x1203, | |||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_HISTORY_LOCATION", "车辆定位信息自动补报", JT809BusinessType.主链路动态信息交换消息)] | |||
车辆定位信息自动补报 = 0x1203, | |||
///<summary> | |||
///启动车辆定位信息交换应答 | |||
///UP_EXG_MSG_RETURN_STARTUP_ACK | |||
///</summary> | |||
[Description("启动车辆定位信息交换应答")] | |||
[JT809BodiesType(typeof(JT809_0x1200_0x1205))] | |||
UP_EXG_MSG_RETURN_STARTUP_ACK = 0x1205, | |||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_RETURN_STARTUP_ACK", "启动车辆定位信息交换应答", JT809BusinessType.主链路动态信息交换消息)] | |||
启动车辆定位信息交换应答 = 0x1205, | |||
///<summary> | |||
///结束车辆定位信息交换应答 | |||
///UP_EXG_MSG_RETURN_END_ACK | |||
///</summary> | |||
[Description("结束车辆定位信息交换应答")] | |||
[JT809BodiesType(typeof(JT809_0x1200_0x1206))] | |||
UP_EXG_MSG_RETURN_END_ACK = 0x1206, | |||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_RETURN_END_ACK", "结束车辆定位信息交换应答", JT809BusinessType.主链路动态信息交换消息)] | |||
结束车辆定位信息交换应答 = 0x1206, | |||
///<summary> | |||
///申请交换指定车辆定位信息请求 | |||
///UP_EXG_MSG_APPLY_FOR_MONITOR_STARTUP | |||
///</summary> | |||
[Description("申请交换指定车辆定位信息请求")] | |||
[JT809BodiesType(typeof(JT809_0x1200_0x1207))] | |||
UP_EXG_MSG_APPLY_FOR_MONITOR_STARTUP = 0x1207, | |||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_APPLY_FOR_MONITOR_STARTUP", "申请交换指定车辆定位信息请求", JT809BusinessType.主链路动态信息交换消息)] | |||
申请交换指定车辆定位信息请求 = 0x1207, | |||
///<summary> | |||
///取消交换指定车辆定位信息请求 | |||
///取消交换指定车辆定位信息请求 | |||
///UP_EXG_MSG_APPLY_FOR_MONITOR_END | |||
///</summary> | |||
[Description("取消交换指定车辆定位信息请求")] | |||
[JT809BodiesType(typeof(JT809_0x1200_0x1208))] | |||
UP_EXG_MSG_APPLY_FOR_MONITOR_END = 0x1208, | |||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_APPLY_FOR_MONITOR_END", "取消交换指定车辆定位信息请求", JT809BusinessType.主链路动态信息交换消息)] | |||
取消交换指定车辆定位信息请求 = 0x1208, | |||
///<summary> | |||
///补发车辆定位信息请求 | |||
///补发车辆定位信息请求 | |||
///UP_EXG_MSG_APPLY_HISGNSSDATA_REQ | |||
///</summary> | |||
[Description("补发车辆定位信息请求")] | |||
[JT809BodiesType(typeof(JT809_0x1200_0x1209))] | |||
UP_EXG_MSG_APPLY_HISGNSSDATA_REQ = 0x1209, | |||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_APPLY_HISGNSSDATA_REQ", "补发车辆定位信息请求", JT809BusinessType.主链路动态信息交换消息)] | |||
补发车辆定位信息请求 = 0x1209, | |||
///<summary> | |||
///上报车辆驾驶员身份识别信息应答 | |||
///上报车辆驾驶员身份识别信息应答 | |||
///UP_EXG_MSG_REPORT_DRIVER_INFO_ACK | |||
///</summary> | |||
[Description("上报车辆驾驶员身份识别信息应答")] | |||
[JT809BodiesType(typeof(JT809_0x1200_0x120A))] | |||
UP_EXG_MSG_REPORT_DRIVER_INFO_ACK = 0x120A, | |||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_REPORT_DRIVER_INFO_ACK", "上报车辆驾驶员身份识别信息应答", JT809BusinessType.主链路动态信息交换消息)] | |||
上报车辆驾驶员身份识别信息应答 = 0x120A, | |||
///<summary> | |||
///上报车辆电子运单应答 | |||
///UP_EXG_MSG_TAKE_EWAYBILL_ACK | |||
///</summary> | |||
[Description("上报车辆电子运单应答")] | |||
[JT809BodiesType(typeof(JT809_0x1200_0x120B))] | |||
UP_EXG_MSG_TAKE_EWAYBILL_ACK = 0x120B, | |||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_TAKE_EWAYBILL_ACK", "上报车辆电子运单应答", JT809BusinessType.主链路动态信息交换消息)] | |||
上报车辆电子运单应答 = 0x120B, | |||
///<summary> | |||
///主动上报驾驶员身份信息 | |||
///UP_EXG_MSG_REPORT_DRIVER_INFO | |||
///</summary> | |||
[Description("主动上报驾驶员身份信息")] | |||
[JT809BodiesType(typeof(JT809_0x1200_0x120C))] | |||
UP_EXG_MSG_REPORT_DRIVER_INFO = 0x120C, | |||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_REPORT_DRIVER_INFO", "主动上报驾驶员身份信息", JT809BusinessType.主链路动态信息交换消息)] | |||
主动上报驾驶员身份信息 = 0x120C, | |||
///<summary> | |||
///主动上报车辆电子运单信息 | |||
///UP_EXG_MSG_REPORT_EWAYBILL_INFO | |||
///</summary> | |||
[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 | |||
///<summary> | |||
///交换车辆定位信息 | |||
///DOWN_EXG_MSG_CAR_LOCATION | |||
///</summary> | |||
[Description("交换车辆定位信息")] | |||
[JT809BodiesType(typeof(JT809_0x9200_0x9202))] | |||
DOWN_EXG_MSG_CAR_LOCATION = 0x9202, | |||
[JT809SubBusinessTypeDescription("DOWN_EXG_MSG_CAR_LOCATION", "交换车辆定位信息", JT809BusinessType.从链路动态信息交换消息)] | |||
交换车辆定位信息 = 0x9202, | |||
///<summary> | |||
///车辆定位信息交换补发 | |||
///DOWN_EXG_MSG_HISTORY_ARCOSSAREA | |||
///</summary> | |||
[Description("车辆定位信息交换补发")] | |||
[JT809BodiesType(typeof(JT809_0x9200_0x9203))] | |||
DOWN_EXG_MSG_HISTORY_ARCOSSAREA = 0x9203, | |||
[JT809SubBusinessTypeDescription("DOWN_EXG_MSG_HISTORY_ARCOSSAREA", "车辆定位信息交换补发", JT809BusinessType.从链路动态信息交换消息)] | |||
车辆定位信息交换补发 = 0x9203, | |||
///<summary> | |||
///交换车辆静态信息 | |||
///交换车辆静态信息 | |||
///DOWN_EXG_MSG_CAR_INFO | |||
///</summary> | |||
[Description("交换车辆静态信息")] | |||
[JT809BodiesType(typeof(JT809_0x9200_0x9204))] | |||
DOWN_EXG_MSG_CAR_INFO = 0x9204, | |||
[JT809SubBusinessTypeDescription("DOWN_EXG_MSG_CAR_INFO", "交换车辆静态信息", JT809BusinessType.从链路动态信息交换消息)] | |||
交换车辆静态信息 = 0x9204, | |||
///<summary> | |||
///启动车辆定位信息交换请求 | |||
///启动车辆定位信息交换请求 | |||
///DOWN_EXG_MSG_RETURN_STARTUP | |||
///</summary> | |||
[Description("启动车辆定位信息交换请求")] | |||
[JT809BodiesType(typeof(JT809_0x9200_0x9205))] | |||
DOWN_EXG_MSG_RETURN_STARTUP = 0x9205, | |||
[JT809SubBusinessTypeDescription("DOWN_EXG_MSG_RETURN_STARTUP", "启动车辆定位信息交换请求", JT809BusinessType.从链路动态信息交换消息)] | |||
启动车辆定位信息交换请求 = 0x9205, | |||
///<summary> | |||
///结束车辆定位信息交换请求 | |||
///</summary> | |||
[Description("结束车辆定位信息交换请求")] | |||
[JT809BodiesType(typeof(JT809_0x9200_0x9206))] | |||
DOWN_EXG_MSG_RETURN_END = 0x9206, | |||
[JT809SubBusinessTypeDescription("DOWN_EXG_MSG_RETURN_END", "结束车辆定位信息交换请求", JT809BusinessType.从链路动态信息交换消息)] | |||
结束车辆定位信息交换请求 = 0x9206, | |||
///<summary> | |||
///申请交换指定车辆定位信息应答 | |||
///DOWN_EXG_MSG_APPLY_FOR_MONITOR_STARTUP_ACK | |||
///</summary> | |||
[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, | |||
///<summary> | |||
///取消交换指定车辆定位信息应答 | |||
///DOWN_EXG_MSG_APPLY_FOR_MONITOR_END_ACK | |||
///</summary> | |||
[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, | |||
///<summary> | |||
///补发车辆定位信息应答 | |||
///DOWN_EXG_MSG_APPLY_HISGNSSDATA_ACK | |||
///</summary> | |||
[Description("补发车辆定位信息应答")] | |||
[JT809BodiesType(typeof(JT809_0x9200_0x9209))] | |||
DOWN_EXG_MSG_APPLY_HISGNSSDATA_ACK = 0x9209, | |||
[JT809SubBusinessTypeDescription("DOWN_EXG_MSG_APPLY_HISGNSSDATA_ACK", "补发车辆定位信息应答", JT809BusinessType.从链路动态信息交换消息)] | |||
补发车辆定位信息应答 = 0x9209, | |||
///<summary> | |||
///上报车辆驾驶员身份识别信息请求 | |||
///DOWN_EXG_MSG_REPORT_DRIVER_INFO | |||
///</summary> | |||
[Description("上报车辆驾驶员身份识别信息请求")] | |||
[JT809BodiesType(typeof(JT809_0x9200_0x920A))] | |||
DOWN_EXG_MSG_REPORT_DRIVER_INFO = 0x920A, | |||
[JT809SubBusinessTypeDescription("DOWN_EXG_MSG_REPORT_DRIVER_INFO", "上报车辆驾驶员身份识别信息请求", JT809BusinessType.从链路动态信息交换消息)] | |||
上报车辆驾驶员身份识别信息请求 = 0x920A, | |||
///<summary> | |||
///上报车辆电子运单请求 | |||
///DOWN_EXG_MSG_TAKE_EWAYBILL_REQ | |||
///</summary> | |||
[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 | |||
///<summary> | |||
///平台查岗应答 | |||
///UP_PLATFORM_MSG_POST_QUERY_ACK | |||
///</summary> | |||
[Description("平台查岗应答")] | |||
[JT809BodiesType(typeof(JT809_0x1300_0x1301))] | |||
UP_PLATFORM_MSG_POST_QUERY_ACK = 0x1301, | |||
[JT809SubBusinessTypeDescription("UP_PLATFORM_MSG_POST_QUERY_ACK", "平台查岗应答", JT809BusinessType.主链路平台间信息交互消息)] | |||
平台查岗应答 = 0x1301, | |||
///<summary> | |||
///下发平台间报文应答 | |||
///UP_PLATFORM_MSG_INFO_ACK | |||
///</summary> | |||
[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 | |||
///<summary> | |||
///平台查岗请求 | |||
///DOWN_PLATFORM_MSG_POST_QUERY_REQ | |||
///</summary> | |||
[Description("平台查岗请求")] | |||
[JT809BodiesType(typeof(JT809_0x9300_0x9301))] | |||
DOWN_PLATFORM_MSG_POST_QUERY_REQ = 0x9301, | |||
[JT809SubBusinessTypeDescription("DOWN_PLATFORM_MSG_POST_QUERY_REQ", "平台查岗请求", JT809BusinessType.从链路平台间信息交互消息)] | |||
平台查岗请求 = 0x9301, | |||
///<summary> | |||
///下发平台间报文请求 | |||
///DOWN_PLATFORM_MSG_INFO_REQ | |||
///</summary> | |||
[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 | |||
///</summary> | |||
[Description("报警督办应答")] | |||
[JT809BodiesType(typeof(JT809_0x1400_0x1401))] | |||
[JT809SubBusinessTypeDescription("DOWN_PLATFORM_MSG_INFO_REQ", "下发平台间报文请求", JT809BusinessType.主链路报警信息交互消息)] | |||
UP_WARN_MSG_URGE_TODO_ACK = 0x1401, | |||
///<summary> | |||
///上报报警信息 | |||
///UP_WARN_MSG_ADPT_INFO | |||
///</summary> | |||
[Description("上报报警信息")] | |||
[JT809BodiesType(typeof(JT809_0x1400_0x1402))] | |||
UP_WARN_MSG_ADPT_INFO = 0x1402, | |||
[JT809SubBusinessTypeDescription("UP_WARN_MSG_ADPT_INFO", "上报报警信息", JT809BusinessType.主链路报警信息交互消息)] | |||
上报报警信息 = 0x1402, | |||
///<summary> | |||
///主动上报报警处理结果信息 | |||
///UP_WARN_MSG_ADPT_TODO_INFO | |||
///</summary> | |||
[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 | |||
///<summary> | |||
///报警督办请求 | |||
///DOWN_WARN_MSG_URGE_TODO_REQ | |||
///</summary> | |||
[Description("报警督办请求")] | |||
[JT809BodiesType(typeof(JT809_0x9400_0x9401))] | |||
DOWN_WARN_MSG_URGE_TODO_REQ = 0x9401, | |||
[JT809SubBusinessTypeDescription("DOWN_WARN_MSG_URGE_TODO_REQ", "报警督办请求", JT809BusinessType.从链路报警信息交互消息)] | |||
报警督办请求 = 0x9401, | |||
///<summary> | |||
///报警预警 | |||
///DOWN_WARN_MSG_INFORM_TIPS | |||
///</summary> | |||
[Description("报警预警")] | |||
[JT809BodiesType(typeof(JT809_0x9400_0x9402))] | |||
DOWN_WARN_MSG_INFORM_TIPS = 0x9402, | |||
[JT809SubBusinessTypeDescription("DOWN_WARN_MSG_INFORM_TIPS", "报警预警", JT809BusinessType.从链路报警信息交互消息)] | |||
报警预警 = 0x9402, | |||
///<summary> | |||
///实时交换报警信息 | |||
///DOWN_WARN_MSG_EXG_INFORM | |||
///</summary> | |||
[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 | |||
///<summary> | |||
///车辆单向监听应答 | |||
///UP_CTRL_MSG_MONITOR_VEHICLE_ACK | |||
///</summary> | |||
[Description("车辆单向监听应答")] | |||
[JT809BodiesType(typeof(JT809_0x1500_0x1501))] | |||
UP_CTRL_MSG_MONITOR_VEHICLE_ACK = 0x1501, | |||
[JT809SubBusinessTypeDescription("UP_CTRL_MSG_MONITOR_VEHICLE_ACK", "车辆单向监听应答", JT809BusinessType.主链路车辆监管消息)] | |||
车辆单向监听应答 = 0x1501, | |||
///<summary> | |||
///车辆拍照应答 | |||
///UP_CTRL_MSG_TAKE_PHOTO_ACK | |||
///</summary> | |||
[Description("车辆拍照应答")] | |||
[JT809BodiesType(typeof(JT809_0x1500_0x1502))] | |||
UP_CTRL_MSG_TAKE_PHOTO_ACK = 0x1502, | |||
[JT809SubBusinessTypeDescription("UP_CTRL_MSG_TAKE_PHOTO_ACK", "车辆拍照应答", JT809BusinessType.主链路车辆监管消息)] | |||
车辆拍照应答 = 0x1502, | |||
///<summary> | |||
///下发车辆报文应答 | |||
///UP_CTRL_MSG_TEXT_INFO_ACK | |||
///</summary> | |||
[Description("下发车辆报文应答")] | |||
[JT809BodiesType(typeof(JT809_0x1500_0x1503))] | |||
UP_CTRL_MSG_TEXT_INFO_ACK = 0x1503, | |||
[JT809SubBusinessTypeDescription("UP_CTRL_MSG_TEXT_INFO_ACK", "下发车辆报文应答", JT809BusinessType.主链路车辆监管消息)] | |||
下发车辆报文应答 = 0x1503, | |||
///<summary> | |||
///上报车辆行驶记录应答 | |||
///UP_CTRL_MSG_TAKE_TRAVEL_ACK | |||
///</summary> | |||
[Description("上报车辆行驶记录应答")] | |||
[JT809BodiesType(typeof(JT809_0x1500_0x1504))] | |||
UP_CTRL_MSG_TAKE_TRAVEL_ACK = 0x1504, | |||
[JT809SubBusinessTypeDescription("UP_CTRL_MSG_TAKE_TRAVEL_ACK", "上报车辆行驶记录应答", JT809BusinessType.主链路车辆监管消息)] | |||
上报车辆行驶记录应答 = 0x1504, | |||
///<summary> | |||
///车辆应急接入监管平台应答消息 | |||
///UP_CTRL_MSG_EMERGENCY_MONITORING_ACK | |||
///</summary> | |||
[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 | |||
///<summary> | |||
///车辆单向监听请求 | |||
///DOWN_CTRL_MSG_MONITOR_VEHICLE_REQ | |||
///</summary> | |||
[Description("车辆单向监听请求")] | |||
[JT809BodiesType(typeof(JT809_0x9500_0x9501))] | |||
DOWN_CTRL_MSG_MONITOR_VEHICLE_REQ = 0x9501, | |||
[JT809SubBusinessTypeDescription("DOWN_CTRL_MSG_MONITOR_VEHICLE_REQ", "车辆单向监听请求", JT809BusinessType.从链路车辆监管消息)] | |||
车辆单向监听请求 = 0x9501, | |||
///<summary> | |||
///车辆拍照请求 | |||
///DOWN_CTRL_MSG_TAKE_PHOTO_REQ | |||
///</summary> | |||
[Description("车辆拍照请求")] | |||
[JT809BodiesType(typeof(JT809_0x9500_0x9502))] | |||
DOWN_CTRL_MSG_TAKE_PHOTO_REQ = 0x9502, | |||
[JT809SubBusinessTypeDescription("DOWN_CTRL_MSG_TAKE_PHOTO_REQ", "车辆拍照请求", JT809BusinessType.从链路车辆监管消息)] | |||
车辆拍照请求 = 0x9502, | |||
///<summary> | |||
///下发车辆报文请求 | |||
///DOWN_CTRL_MSG_TEXT_INFO | |||
///</summary> | |||
[Description("下发车辆报文请求")] | |||
[JT809BodiesType(typeof(JT809_0x9500_0x9503))] | |||
DOWN_CTRL_MSG_TEXT_INFO = 0x9503, | |||
[JT809SubBusinessTypeDescription("DOWN_CTRL_MSG_TEXT_INFO", "下发车辆报文请求", JT809BusinessType.从链路车辆监管消息)] | |||
下发车辆报文请求 = 0x9503, | |||
///<summary> | |||
///上报车辆行驶记录请求 | |||
///DOWN_CTRL_MSG_TAKE_TRAVEL_REQ | |||
///</summary> | |||
[Description("上报车辆行驶记录请求")] | |||
[JT809BodiesType(typeof(JT809_0x9500_0x9504))] | |||
DOWN_CTRL_MSG_TAKE_TRAVEL_REQ = 0x9504, | |||
[JT809SubBusinessTypeDescription("DOWN_CTRL_MSG_TAKE_TRAVEL_REQ", "上报车辆行驶记录请求", JT809BusinessType.从链路车辆监管消息)] | |||
上报车辆行驶记录请求 = 0x9504, | |||
///<summary> | |||
///车辆应急接入监管平台请求消息 | |||
///DOWN_CTRL_MSG_EMERGENCY_MONITORING_REQ | |||
///</summary> | |||
[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 | |||
///<summary> | |||
///补报车辆静态信息应答 | |||
///UP_BASE_MSG_VEHICLE_ADDED_ACK | |||
///</summary> | |||
[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 | |||
///<summary> | |||
///补报车辆静态信息请求 | |||
///补报车辆静态信息请求 | |||
///DOWN_BASE_MSG_VEHICLE_ADDED | |||
///</summary> | |||
[Description("补报车辆静态信息请求")] | |||
[JT809BodiesType(typeof(JT809_0x9600_0x9601))] | |||
DOWN_BASE_MSG_VEHICLE_ADDED = 0x9601, | |||
[JT809SubBusinessTypeDescription("DOWN_BASE_MSG_VEHICLE_ADDED", "补报车辆静态信息请求", JT809BusinessType.从链路静态信息交换消息)] | |||
补报车辆静态信息请求 = 0x9601, | |||
#endregion | |||
} | |||
} |
@@ -8,103 +8,20 @@ namespace JT809.Protocol.JT809Extensions | |||
public static class JT809PackageExtensions | |||
{ | |||
/// <summary> | |||
/// 创建JT809Package对应的数据体: | |||
/// <list type="TJT809Bodies"> | |||
/// <item> | |||
/// <description>JT809_0x1001</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x1002</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x1003</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x1004</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x1005</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x1006</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x1007</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x1008</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x1200</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x1300</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x1400</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x1500</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x1600</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x9001</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x9002</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x9003</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x9004</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x9005</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x9006</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x9007</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x9008</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x9101</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x9200</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x9300</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x9400</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x9500</description> | |||
/// </item> | |||
/// <item> | |||
/// <description>JT809_0x9600</description> | |||
/// </item> | |||
/// </list> | |||
/// 创建JT809Package对应的数据体 | |||
/// </summary> | |||
/// <typeparam name="TJT809Bodies"></typeparam> | |||
/// <param name="msgID"></param> | |||
/// <param name="jT809Bodies"></param> | |||
/// <returns></returns> | |||
public static JT809Package Create<TJT809Bodies>(this JT809BusinessType msgID, TJT809Bodies jT809Bodies) | |||
public static JT809Package Create<TJT809Bodies>(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; | |||
} | |||
/// <summary> | |||
/// 创建JT809Package对应的数据体 | |||
/// </summary> | |||
/// <param name="jt809BusinessType"></param> | |||
/// <returns></returns> | |||
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; | |||
} | |||
} | |||
} |
@@ -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); | |||
@@ -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 jT809BodiesTypeAttribute = jT809Package.Header.BusinessType.GetAttribute<JT809BodiesTypeAttribute>(); | |||
if (jT809BodiesTypeAttribute != null) | |||
{ | |||
try | |||
@@ -85,7 +85,7 @@ namespace JT809.Protocol.JT809Formatters | |||
{ | |||
// 1. 先序列化数据体,根据数据体的长度赋值给头部,在序列化头部。 | |||
int messageBodyOffset = 0; | |||
JT809BodiesTypeAttribute jT809BodiesTypeAttribute = value.Header.MsgID.GetAttribute<JT809BodiesTypeAttribute>(); | |||
JT809BodiesTypeAttribute jT809BodiesTypeAttribute = value.Header.BusinessType.GetAttribute<JT809BodiesTypeAttribute>(); | |||
if (jT809BodiesTypeAttribute != null) | |||
{ | |||
if (value.Bodies != null) | |||
@@ -29,7 +29,7 @@ namespace JT809.Protocol | |||
/// <summary> | |||
/// 业务数据类型 | |||
/// </summary> | |||
public JT809BusinessType MsgID { get; set; } | |||
public JT809BusinessType BusinessType { get; set; } | |||
/// <summary> | |||
/// 下级平台接入码,上级平台给下级平台分配唯一标识码。 | |||
/// </summary> | |||