@@ -29,11 +29,11 @@ | |||||
|数据长度|报文序列号|业务数据类型|下级平台接入码|协议版本号标识|报文加密标识位|数据加密的密匙| | |数据长度|报文序列号|业务数据类型|下级平台接入码|协议版本号标识|报文加密标识位|数据加密的密匙| | ||||
|:------:|:------:|:------:|:------:|:------:|:------:|:------:| | |:------:|:------:|:------:|:------:|:------:|:------:|:------:| | ||||
| MsgLength | MsgSN | MsgID | MsgGNSSCENTERID | Version |EncryptFlag | EncryptKey | | |||||
| MsgLength | MsgSN | BusinessType | MsgGNSSCENTERID | Version |EncryptFlag | EncryptKey | | |||||
### 数据体[JT809Bodies] | ### 数据体[JT809Bodies] | ||||
> 根据对应业务数据类型:MsgID | |||||
> 根据对应业务数据类型:BusinessType | |||||
|车牌号|车辆颜色|子业务类型标识|后续数据长度|子业务数据体 | |车牌号|车辆颜色|子业务类型标识|后续数据长度|子业务数据体 | ||||
|:------:|:------:|:------:|:------:|:------:| | |:------:|:------:|:------:|:------:|:------:| | ||||
@@ -58,7 +58,7 @@ | |||||
#### 1.组包: | #### 1.组包: | ||||
> 业务数据类型 MsgID:从链路报警信息交互消息 | |||||
> 业务数据类型 BusinessType:从链路报警信息交互消息 | |||||
> | > | ||||
> 子业务类型标识 SubBusinessType:报警督办请求消息 | > 子业务类型标识 SubBusinessType:报警督办请求消息 | ||||
@@ -71,7 +71,7 @@ jT809Package.Header = new JT809Header | |||||
EncryptKey = 9999, | EncryptKey = 9999, | ||||
EncryptFlag= JT809Header_Encrypt.None, | EncryptFlag= JT809Header_Encrypt.None, | ||||
Version = new JT809Header_Version(1, 0, 0), | Version = new JT809Header_Version(1, 0, 0), | ||||
MsgID = JT809Enums.JT809BusinessType.DOWN_WARN_MSG, | |||||
BusinessType = JT809Enums.JT809BusinessType.从链路报警信息交互消息, | |||||
MsgGNSSCENTERID = 20180920, | MsgGNSSCENTERID = 20180920, | ||||
}; | }; | ||||
@@ -79,7 +79,7 @@ jT809Package.Bodies = new JT809_0x9400 | |||||
{ | { | ||||
VehicleNo="粤A12345", | VehicleNo="粤A12345", | ||||
VehicleColor= JT809Enums.JT809VehicleColorType.黄色, | 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 | 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((uint)9999, jT809Package.Header.EncryptKey); | ||||
Assert.Equal(JT809Header_Encrypt.None, jT809Package.Header.EncryptFlag); | Assert.Equal(JT809Header_Encrypt.None, jT809Package.Header.EncryptFlag); | ||||
Assert.Equal((uint)20180920, jT809Package.Header.MsgGNSSCENTERID); | 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()); | Assert.Equal(new JT809Header_Version(1, 0, 0).ToString(), jT809Package.Header.Version.ToString()); | ||||
//4.数据包体 | //4.数据包体 | ||||
JT809_0x9400 jT809_0X400 = (JT809_0x9400)jT809Package.Bodies; | JT809_0x9400 jT809_0X400 = (JT809_0x9400)jT809Package.Bodies; | ||||
Assert.Equal("粤A12345", jT809_0X400.VehicleNo); | Assert.Equal("粤A12345", jT809_0X400.VehicleNo); | ||||
Assert.Equal(JT809Enums.JT809VehicleColorType.黄色, jT809_0X400.VehicleColor); | 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); | Assert.Equal((uint)92, jT809_0X400.DataLength); | ||||
//5.子数据包体 | //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", | VehicleNo = "粤A12345", | ||||
VehicleColor = JT809Enums.JT809VehicleColorType.黄色, | VehicleColor = JT809Enums.JT809VehicleColorType.黄色, | ||||
SubBusinessType = JT809Enums.JT809SubBusinessType.DOWN_WARN_MSG_URGE_TODO_REQ, | |||||
SubBusinessType = JT809Enums.JT809SubBusinessType.报警督办请求消息, | |||||
JT809SubBodies = new JT809_0x9400_0x9401 | JT809SubBodies = new JT809_0x9400_0x9401 | ||||
{ | { | ||||
WarnSrc = JT809WarnSrc.车载终端, | WarnSrc = JT809WarnSrc.车载终端, | ||||
@@ -51,7 +51,7 @@ namespace JT809.Protocol.Benchmark | |||||
EncryptKey = 9999, | EncryptKey = 9999, | ||||
EncryptFlag = JT809Header_Encrypt.None, | EncryptFlag = JT809Header_Encrypt.None, | ||||
Version = new JT809Header_Version(1, 0, 0), | Version = new JT809Header_Version(1, 0, 0), | ||||
MsgID = JT809Enums.JT809BusinessType.DOWN_WARN_MSG, | |||||
BusinessType = JT809Enums.JT809BusinessType.从链路报警信息交互消息, | |||||
MsgGNSSCENTERID = 20180920, | MsgGNSSCENTERID = 20180920, | ||||
}; | }; | ||||
@@ -59,7 +59,7 @@ namespace JT809.Protocol.Benchmark | |||||
{ | { | ||||
VehicleNo = "粤A12345", | VehicleNo = "粤A12345", | ||||
VehicleColor = JT809Enums.JT809VehicleColorType.黄色, | 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 | JT809_0x9400_0x9401 jT809_0x9400_0x9401 = new JT809_0x9400_0x9401 | ||||
@@ -17,7 +17,7 @@ namespace JT809.Protocol.Test | |||||
JT809Header jT809Header = new JT809Header(); | JT809Header jT809Header = new JT809Header(); | ||||
jT809Header.MsgLength = 24; | jT809Header.MsgLength = 24; | ||||
jT809Header.MsgSN = 1024; | jT809Header.MsgSN = 1024; | ||||
jT809Header.MsgID = JT809Enums.JT809BusinessType.DOWN_BASE_MSG; | |||||
jT809Header.BusinessType = JT809Enums.JT809BusinessType.从链路静态信息交换消息; | |||||
jT809Header.MsgGNSSCENTERID = 1200; | jT809Header.MsgGNSSCENTERID = 1200; | ||||
jT809Header.Version = new JT809Header_Version(); | jT809Header.Version = new JT809Header_Version(); | ||||
jT809Header.EncryptFlag = JT809Header_Encrypt.None; | jT809Header.EncryptFlag = JT809Header_Encrypt.None; | ||||
@@ -33,7 +33,7 @@ namespace JT809.Protocol.Test | |||||
JT809Header jT809Header= JT809Serializer.Deserialize<JT809Header>(bytes); | JT809Header jT809Header= JT809Serializer.Deserialize<JT809Header>(bytes); | ||||
Assert.Equal((uint)24, jT809Header.MsgLength); | Assert.Equal((uint)24, jT809Header.MsgLength); | ||||
Assert.Equal((uint)1024, jT809Header.MsgSN); | 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((uint)1200, jT809Header.MsgGNSSCENTERID); | ||||
Assert.Equal(new JT809Header_Version().ToString(), jT809Header.Version.ToString()); | Assert.Equal(new JT809Header_Version().ToString(), jT809Header.Version.ToString()); | ||||
Assert.Equal(JT809Header_Encrypt.None, jT809Header.EncryptFlag); | 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 jT809_0X1200 = new JT809_0x1200(); | ||||
jT809_0X1200.VehicleNo= "粤A12345"; | jT809_0X1200.VehicleNo= "粤A12345"; | ||||
jT809_0X1200.VehicleColor = JT809Enums.JT809VehicleColorType.蓝色; | 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.DataLength = 61; | ||||
JT809_0x1200_0x1201 jT809_0X1200_0X1201 = new JT809_0x1200_0x1201 | 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); | JT809_0x1200 jT809_0X9001 = JT809Serializer.Deserialize<JT809_0x1200>(bytes); | ||||
Assert.Equal("粤A12345", jT809_0X9001.VehicleNo); | Assert.Equal("粤A12345", jT809_0X9001.VehicleNo); | ||||
Assert.Equal(JT809Enums.JT809VehicleColorType.蓝色, jT809_0X9001.VehicleColor); | 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); | Assert.Equal((ushort)61, jT809_0X9001.DataLength); | ||||
JT809_0x1200_0x1201 jT809_0X1200_0X1201 = jT809_0X9001.JT809SubBodies as JT809_0x1200_0x1201; | JT809_0x1200_0x1201 jT809_0X1200_0X1201 = jT809_0X9001.JT809SubBodies as JT809_0x1200_0x1201; | ||||
Assert.Equal("1111111111", jT809_0X1200_0X1201.PlateformId); | Assert.Equal("1111111111", jT809_0X1200_0X1201.PlateformId); | ||||
@@ -16,7 +16,7 @@ namespace JT809.Protocol.Test.JT809MessageBody | |||||
public void Test1() | public void Test1() | ||||
{ | { | ||||
JT809_0x1300 jT809Bodies = new JT809_0x1300(); | 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 | jT809Bodies.JT809SubBodies = new JT809_0x1300_0x1301 | ||||
{ | { | ||||
ObjectID="111", | 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(); | 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); | 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; | JT809_0x1300_0x1301 jT809SubBodies = (JT809_0x1300_0x1301)jT809Bodies.JT809SubBodies; | ||||
Assert.Equal("111", jT809SubBodies.ObjectID); | Assert.Equal("111", jT809SubBodies.ObjectID); | ||||
Assert.Equal("22ha22", jT809SubBodies.InfoContent); | Assert.Equal("22ha22", jT809SubBodies.InfoContent); | ||||
@@ -18,7 +18,7 @@ namespace JT809.Protocol.Test.JT809MessageBody | |||||
JT809_0x1600 jT809Bodies = new JT809_0x1600(); | JT809_0x1600 jT809Bodies = new JT809_0x1600(); | ||||
jT809Bodies.VehicleNo = "粤A12345"; | jT809Bodies.VehicleNo = "粤A12345"; | ||||
jT809Bodies.VehicleColor = JT809Enums.JT809VehicleColorType.蓝色; | jT809Bodies.VehicleColor = JT809Enums.JT809VehicleColorType.蓝色; | ||||
jT809Bodies.SubBusinessType = JT809Enums.JT809SubBusinessType.UP_BASE_MSG_VEHICLE_ADDED_ACK; | |||||
jT809Bodies.SubBusinessType = JT809Enums.JT809SubBusinessType.补报车辆静态信息应答; | |||||
jT809Bodies.JT809SubBodies = new JT809_0x1600_0x1601 | jT809Bodies.JT809SubBodies = new JT809_0x1600_0x1601 | ||||
{ | { | ||||
CarInfo = "什么鬼" | CarInfo = "什么鬼" | ||||
@@ -34,7 +34,7 @@ namespace JT809.Protocol.Test.JT809MessageBody | |||||
JT809_0x1600 jT809Bodies = JT809Serializer.Deserialize<JT809_0x1600>(bytes); | JT809_0x1600 jT809Bodies = JT809Serializer.Deserialize<JT809_0x1600>(bytes); | ||||
Assert.Equal("粤A12345", jT809Bodies.VehicleNo); | Assert.Equal("粤A12345", jT809Bodies.VehicleNo); | ||||
Assert.Equal(JT809Enums.JT809VehicleColorType.蓝色, jT809Bodies.VehicleColor); | 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); | Assert.Equal("什么鬼", ((JT809_0x1600_0x1601)jT809Bodies.JT809SubBodies).CarInfo); | ||||
} | } | ||||
} | } | ||||
@@ -31,7 +31,7 @@ namespace JT809.Protocol.Test.JT809Packages | |||||
EncryptFlag= JT809Header_Encrypt.Common, | EncryptFlag= JT809Header_Encrypt.Common, | ||||
MsgSN= 133, | MsgSN= 133, | ||||
EncryptKey=5819, | EncryptKey=5819, | ||||
MsgID= JT809Enums.JT809BusinessType.UP_CONNECT_REQ, | |||||
BusinessType= JT809Enums.JT809BusinessType.主链路登录请求消息, | |||||
MsgGNSSCENTERID= 20180920, | MsgGNSSCENTERID= 20180920, | ||||
}; | }; | ||||
JT809_0x1001 jT809_0X1001 = new JT809_0x1001(); | 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)133, jT809Package.Header.MsgSN); | ||||
Assert.Equal((uint)5819, jT809Package.Header.EncryptKey); | Assert.Equal((uint)5819, jT809Package.Header.EncryptKey); | ||||
Assert.Equal((uint)20180920, jT809Package.Header.MsgGNSSCENTERID); | 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()); | Assert.Equal(new JT809Header_Version().ToString(), jT809Package.Header.Version.ToString()); | ||||
JT809_0x1001 jT809_0X1001 = (JT809_0x1001)jT809Package.Bodies; | JT809_0x1001 jT809_0X1001 = (JT809_0x1001)jT809Package.Bodies; | ||||
Assert.Equal((uint)20180920, jT809_0X1001.UserId); | Assert.Equal((uint)20180920, jT809_0X1001.UserId); | ||||
@@ -18,7 +18,7 @@ namespace JT809.Protocol.Test.JT809Packages | |||||
{ | { | ||||
MsgSN= 133, | MsgSN= 133, | ||||
EncryptKey=9999, | EncryptKey=9999, | ||||
MsgID= JT809Enums.JT809BusinessType.UP_CONNECT_REQ, | |||||
BusinessType= JT809Enums.JT809BusinessType.主链路登录请求消息, | |||||
MsgGNSSCENTERID= 20180920, | MsgGNSSCENTERID= 20180920, | ||||
}; | }; | ||||
JT809_0x1001 jT809_0X1001 = new JT809_0x1001(); | 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)133, jT809Package.Header.MsgSN); | ||||
Assert.Equal((uint)9999, jT809Package.Header.EncryptKey); | Assert.Equal((uint)9999, jT809Package.Header.EncryptKey); | ||||
Assert.Equal((uint)20180920, jT809Package.Header.MsgGNSSCENTERID); | 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()); | Assert.Equal(new JT809Header_Version().ToString(), jT809Package.Header.Version.ToString()); | ||||
JT809_0x1001 jT809_0X1001 = (JT809_0x1001)jT809Package.Bodies; | JT809_0x1001 jT809_0X1001 = (JT809_0x1001)jT809Package.Bodies; | ||||
Assert.Equal((uint)20180920, jT809_0X1001.UserId); | Assert.Equal((uint)20180920, jT809_0X1001.UserId); | ||||
@@ -23,7 +23,7 @@ namespace JT809.Protocol.Test.JT809Packages | |||||
EncryptKey = 9999, | EncryptKey = 9999, | ||||
EncryptFlag= JT809Header_Encrypt.None, | EncryptFlag= JT809Header_Encrypt.None, | ||||
Version = new JT809Header_Version(1, 0, 0), | Version = new JT809Header_Version(1, 0, 0), | ||||
MsgID = JT809Enums.JT809BusinessType.DOWN_WARN_MSG, | |||||
BusinessType = JT809Enums.JT809BusinessType.从链路报警信息交互消息, | |||||
MsgGNSSCENTERID = 20180920, | MsgGNSSCENTERID = 20180920, | ||||
}; | }; | ||||
@@ -31,7 +31,7 @@ namespace JT809.Protocol.Test.JT809Packages | |||||
{ | { | ||||
VehicleNo="粤A12345", | VehicleNo="粤A12345", | ||||
VehicleColor= JT809Enums.JT809VehicleColorType.黄色, | 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 | 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((uint)9999, jT809Package.Header.EncryptKey); | ||||
Assert.Equal(JT809Header_Encrypt.None, jT809Package.Header.EncryptFlag); | Assert.Equal(JT809Header_Encrypt.None, jT809Package.Header.EncryptFlag); | ||||
Assert.Equal((uint)20180920, jT809Package.Header.MsgGNSSCENTERID); | 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()); | Assert.Equal(new JT809Header_Version().ToString(), jT809Package.Header.Version.ToString()); | ||||
JT809_0x9400 jT809_0X400 = (JT809_0x9400)jT809Package.Bodies; | JT809_0x9400 jT809_0X400 = (JT809_0x9400)jT809Package.Bodies; | ||||
Assert.Equal("粤A12345", jT809_0X400.VehicleNo); | Assert.Equal("粤A12345", jT809_0X400.VehicleNo); | ||||
Assert.Equal(JT809Enums.JT809VehicleColorType.黄色, jT809_0X400.VehicleColor); | 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); | Assert.Equal((uint)92, jT809_0X400.DataLength); | ||||
JT809_0x9400_0x9401 jT809_0x9400_0x9401 = (JT809_0x9400_0x9401)jT809_0X400.JT809SubBodies; | JT809_0x9400_0x9401 jT809_0x9400_0x9401 = (JT809_0x9400_0x9401)jT809_0X400.JT809SubBodies; | ||||
@@ -92,11 +92,11 @@ namespace JT809.Protocol.Test.JT809Packages | |||||
EncryptKey= 9999, | EncryptKey= 9999, | ||||
MsgGNSSCENTERID= 20180920 | MsgGNSSCENTERID= 20180920 | ||||
}); | }); | ||||
JT809Package jT809Package = JT809BusinessType.DOWN_WARN_MSG.Create(new JT809_0x9400 | |||||
JT809Package jT809Package = JT809BusinessType.从链路报警信息交互消息.Create(new JT809_0x9400 | |||||
{ | { | ||||
VehicleNo = "粤A12345", | VehicleNo = "粤A12345", | ||||
VehicleColor = JT809Enums.JT809VehicleColorType.黄色, | VehicleColor = JT809Enums.JT809VehicleColorType.黄色, | ||||
SubBusinessType = JT809Enums.JT809SubBusinessType.DOWN_WARN_MSG_URGE_TODO_REQ, | |||||
SubBusinessType = JT809Enums.JT809SubBusinessType.报警督办请求, | |||||
JT809SubBodies = new JT809_0x9400_0x9401 | JT809SubBodies = new JT809_0x9400_0x9401 | ||||
{ | { | ||||
WarnSrc = JT809WarnSrc.车载终端, | 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 链路管理类 | #region 链路管理类 | ||||
///<summary> | ///<summary> | ||||
///主链路登录请求消息 | |||||
///主链路登录请求消息 | |||||
///UP_CONNECT_REQ | |||||
///</summary> | ///</summary> | ||||
[Description("主链路登录请求消息")] | [Description("主链路登录请求消息")] | ||||
[JT809BodiesType(typeof(JT809_0x1001))] | [JT809BodiesType(typeof(JT809_0x1001))] | ||||
UP_CONNECT_REQ = 0x1001, | |||||
[JT809BusinessTypeDescription("UP_CONNECT_REQ", "主链路登录请求消息")] | |||||
主链路登录请求消息 = 0x1001, | |||||
///<summary> | ///<summary> | ||||
///主链路登录应答消息 | ///主链路登录应答消息 | ||||
///UP_CONNECT_RSP | |||||
///</summary> | ///</summary> | ||||
[Description("主链路登录应答消息")] | [Description("主链路登录应答消息")] | ||||
[JT809BusinessTypeDescription("UP_CONNECT_RSP", "主链路登录应答消息")] | |||||
[JT809BodiesType(typeof(JT809_0x1002))] | [JT809BodiesType(typeof(JT809_0x1002))] | ||||
UP_CONNECT_RSP = 0x1002, | |||||
主链路登录应答消息 = 0x1002, | |||||
///<summary> | ///<summary> | ||||
///主链路注销请求消息 | |||||
///主链路注销请求消息 | |||||
///UP_DISCONNECT_REQ | |||||
///</summary> | ///</summary> | ||||
[Description("主链路注销请求消息")] | [Description("主链路注销请求消息")] | ||||
[JT809BusinessTypeDescription("UP_DISCONNECT_REQ", "主链路注销请求消息")] | |||||
[JT809BodiesType(typeof(JT809_0x1003))] | [JT809BodiesType(typeof(JT809_0x1003))] | ||||
UP_DISCONNECT_REQ = 0x1003, | |||||
主链路注销请求消息 = 0x1003, | |||||
///<summary> | ///<summary> | ||||
///主链路注销应答消息 | |||||
///主链路注销应答消息 | |||||
///UP_DISCONNECT_RSP | |||||
///</summary> | ///</summary> | ||||
[Description("主链路注销应答消息")] | [Description("主链路注销应答消息")] | ||||
[JT809BodiesType(typeof(JT809_0x1004))] | [JT809BodiesType(typeof(JT809_0x1004))] | ||||
UP_DISCONNECT_RSP = 0x1004, | |||||
[JT809BusinessTypeDescription("UP_DISCONNECT_RSP", "主链路注销应答消息")] | |||||
主链路注销应答消息 = 0x1004, | |||||
///<summary> | ///<summary> | ||||
///主链路连接保持请求消息 | ///主链路连接保持请求消息 | ||||
///UP_LINKTEST_REQ | |||||
///</summary> | ///</summary> | ||||
[Description("主链路连接保持请求消息")] | [Description("主链路连接保持请求消息")] | ||||
[JT809BodiesType(typeof(JT809_0x1005))] | [JT809BodiesType(typeof(JT809_0x1005))] | ||||
UP_LINKTEST_REQ = 0x1005, | |||||
[JT809BusinessTypeDescription("UP_LINKTEST_REQ", "主链路连接保持请求消息")] | |||||
主链路连接保持请求消息 = 0x1005, | |||||
///<summary> | ///<summary> | ||||
///主链路连接保持应答消息 | ///主链路连接保持应答消息 | ||||
///UP_LINKTEST_RSP | |||||
///</summary> | ///</summary> | ||||
[Description("主链路连接保持应答消息")] | [Description("主链路连接保持应答消息")] | ||||
[JT809BodiesType(typeof(JT809_0x1006))] | [JT809BodiesType(typeof(JT809_0x1006))] | ||||
UP_LINKTEST_RSP = 0x1006, | |||||
[JT809BusinessTypeDescription("UP_LINKTEST_RSP", "主链路连接保持应答消息")] | |||||
主链路连接保持应答消息 = 0x1006, | |||||
///<summary> | ///<summary> | ||||
///主链路断开通知消息 | |||||
///主链路断开通知消息 | |||||
///UP_DISCONNECT_INFORM | |||||
///</summary> | ///</summary> | ||||
[Description("主链路断开通知消息")] | [Description("主链路断开通知消息")] | ||||
[JT809BodiesType(typeof(JT809_0x1007))] | [JT809BodiesType(typeof(JT809_0x1007))] | ||||
UP_DISCONNECT_INFORM = 0x1007, | |||||
[JT809BusinessTypeDescription("UP_DISCONNECT_INFORM", "主链路断开通知消息")] | |||||
主链路断开通知消息 = 0x1007, | |||||
///<summary> | ///<summary> | ||||
///下级平台主动关闭链路通知消息 | ///下级平台主动关闭链路通知消息 | ||||
///UP_CLOSELINK_INFORM | |||||
///</summary> | ///</summary> | ||||
[Description("下级平台主动关闭链路通知消息")] | [Description("下级平台主动关闭链路通知消息")] | ||||
[JT809BodiesType(typeof(JT809_0x1008))] | [JT809BodiesType(typeof(JT809_0x1008))] | ||||
UP_CLOSELINK_INFORM = 0x1008, | |||||
[JT809BusinessTypeDescription("UP_CLOSELINK_INFORM", "下级平台主动关闭链路通知消息")] | |||||
下级平台主动关闭链路通知消息 = 0x1008, | |||||
///<summary> | ///<summary> | ||||
///从链路连接请求消息 | ///从链路连接请求消息 | ||||
///DOWN_CONNECT_REQ | |||||
///</summary> | ///</summary> | ||||
[Description("从链路连接请求消息")] | [Description("从链路连接请求消息")] | ||||
[JT809BodiesType(typeof(JT809_0x9001))] | [JT809BodiesType(typeof(JT809_0x9001))] | ||||
DOWN_CONNECT_REQ = 0x9001, | |||||
[JT809BusinessTypeDescription("DOWN_CONNECT_REQ", "从链路连接请求消息")] | |||||
从链路连接请求消息 = 0x9001, | |||||
///<summary> | ///<summary> | ||||
///从链路连接应答消息 | |||||
///从链路连接应答消息 | |||||
///DOWN_CONNECT_RSP | |||||
///</summary> | ///</summary> | ||||
[Description("从链路连接应答消息")] | [Description("从链路连接应答消息")] | ||||
[JT809BodiesType(typeof(JT809_0x9002))] | [JT809BodiesType(typeof(JT809_0x9002))] | ||||
DOWN_CONNECT_RSP = 0x9002, | |||||
[JT809BusinessTypeDescription("DOWN_CONNECT_RSP", "从链路连接应答消息")] | |||||
从链路连接应答消息 = 0x9002, | |||||
///<summary> | ///<summary> | ||||
///从链路注销请求消息 | ///从链路注销请求消息 | ||||
///DOWN_DISCONNECT_REQ | |||||
///</summary> | ///</summary> | ||||
[Description("从链路注销请求消息")] | [Description("从链路注销请求消息")] | ||||
[JT809BodiesType(typeof(JT809_0x9003))] | [JT809BodiesType(typeof(JT809_0x9003))] | ||||
DOWN_DISCONNECT_REQ = 0x9003, | |||||
[JT809BusinessTypeDescription("DOWN_DISCONNECT_REQ", "从链路注销请求消息")] | |||||
从链路注销请求消息 = 0x9003, | |||||
///<summary> | ///<summary> | ||||
///从链路注销应答消息 | ///从链路注销应答消息 | ||||
///DOWN_DISCONNECT_RSP | |||||
///</summary> | ///</summary> | ||||
[Description("从链路注销应答消息")] | [Description("从链路注销应答消息")] | ||||
[JT809BodiesType(typeof(JT809_0x9004))] | [JT809BodiesType(typeof(JT809_0x9004))] | ||||
DOWN_DISCONNECT_RSP = 0x9004, | |||||
[JT809BusinessTypeDescription("DOWN_DISCONNECT_RSP", "从链路注销应答消息")] | |||||
从链路注销应答消息 = 0x9004, | |||||
///<summary> | ///<summary> | ||||
///从链路连接保持请求消息 | ///从链路连接保持请求消息 | ||||
///DOWN_LINKTEST_REQ | |||||
///</summary> | ///</summary> | ||||
[Description("从链路连接保持请求消息")] | [Description("从链路连接保持请求消息")] | ||||
[JT809BodiesType(typeof(JT809_0x9005))] | [JT809BodiesType(typeof(JT809_0x9005))] | ||||
DOWN_LINKTEST_REQ = 0x9005, | |||||
[JT809BusinessTypeDescription("DOWN_LINKTEST_REQ", "从链路连接保持请求消息")] | |||||
从链路连接保持请求消息 = 0x9005, | |||||
///<summary> | ///<summary> | ||||
///从链路连接保持应答消息 | |||||
///从链路连接保持应答消息 | |||||
///DOWN_LINKTEST_RSP | |||||
///</summary> | ///</summary> | ||||
[Description("从链路连接保持应答消息")] | [Description("从链路连接保持应答消息")] | ||||
[JT809BodiesType(typeof(JT809_0x9006))] | [JT809BodiesType(typeof(JT809_0x9006))] | ||||
DOWN_LINKTEST_RSP = 0x9006, | |||||
[JT809BusinessTypeDescription("DOWN_LINKTEST_RSP", "从链路连接保持应答消息")] | |||||
从链路连接保持应答消息 = 0x9006, | |||||
///<summary> | ///<summary> | ||||
///从链路断开通知消息 | ///从链路断开通知消息 | ||||
///DOWN_DISCONNECT_INFORM | |||||
///</summary> | ///</summary> | ||||
[Description("从链路断开通知消息")] | [Description("从链路断开通知消息")] | ||||
[JT809BodiesType(typeof(JT809_0x9007))] | [JT809BodiesType(typeof(JT809_0x9007))] | ||||
DOWN_DISCONNECT_INFORM = 0x9007, | |||||
[JT809BusinessTypeDescription("DOWN_DISCONNECT_INFORM", "从链路断开通知消息")] | |||||
从链路断开通知消息 = 0x9007, | |||||
///<summary> | ///<summary> | ||||
///上级平台主动关闭链路通知消息 | |||||
///上级平台主动关闭链路通知消息 | |||||
///DOWN_CLOSELINK_INFORM | |||||
///</summary> | ///</summary> | ||||
[Description("上级平台主动关闭链路通知消息")] | [Description("上级平台主动关闭链路通知消息")] | ||||
[JT809BodiesType(typeof(JT809_0x9008))] | [JT809BodiesType(typeof(JT809_0x9008))] | ||||
DOWN_CLOSELINK_INFORM = 0x9008, | |||||
[JT809BusinessTypeDescription("DOWN_CLOSELINK_INFORM", "上级平台主动关闭链路通知消息")] | |||||
上级平台主动关闭链路通知消息 = 0x9008, | |||||
#endregion | #endregion | ||||
#region 信息统计类 | #region 信息统计类 | ||||
///<summary> | ///<summary> | ||||
///接收定位信息数量通知消息 | |||||
///接收定位信息数量通知消息 | |||||
///DOWN_TOTAL_RECV_BACK_MSG | |||||
///</summary> | ///</summary> | ||||
[Description("接收定位信息数量通知消息")] | [Description("接收定位信息数量通知消息")] | ||||
[JT809BodiesType(typeof(JT809_0x9101))] | [JT809BodiesType(typeof(JT809_0x9101))] | ||||
DOWN_TOTAL_RECV_BACK_MSG = 0x9101, | |||||
[JT809BusinessTypeDescription("DOWN_TOTAL_RECV_BACK_MSG", "接收定位信息数量通知消息")] | |||||
接收定位信息数量通知消息 = 0x9101, | |||||
#endregion | #endregion | ||||
#region 车辆动态信息交换 | #region 车辆动态信息交换 | ||||
///<summary> | ///<summary> | ||||
///主链路动态信息交换消息 | |||||
///主链路动态信息交换消息 | |||||
///UP_EXG_MSG | |||||
///</summary> | ///</summary> | ||||
[Description("主链路动态信息交换消息")] | [Description("主链路动态信息交换消息")] | ||||
[JT809BodiesType(typeof(JT809_0x1200))] | [JT809BodiesType(typeof(JT809_0x1200))] | ||||
UP_EXG_MSG = 0x1200, | |||||
[JT809BusinessTypeDescription("UP_EXG_MSG", "主链路动态信息交换消息")] | |||||
主链路动态信息交换消息 = 0x1200, | |||||
///<summary> | ///<summary> | ||||
///从链路动态信息交换消息 | ///从链路动态信息交换消息 | ||||
///DOWN_EXG_MSG | |||||
///</summary> | ///</summary> | ||||
[Description("从链路动态信息交换消息")] | [Description("从链路动态信息交换消息")] | ||||
[JT809BodiesType(typeof(JT809_0x9200))] | [JT809BodiesType(typeof(JT809_0x9200))] | ||||
DOWN_EXG_MSG = 0x9200, | |||||
[JT809BusinessTypeDescription("DOWN_EXG_MSG", "从链路动态信息交换消息")] | |||||
从链路动态信息交换消息 = 0x9200, | |||||
#endregion | #endregion | ||||
#region 平台间信息交互类 | #region 平台间信息交互类 | ||||
///<summary> | ///<summary> | ||||
///主链路平台间信息交互消息 | ///主链路平台间信息交互消息 | ||||
///UP_PLATFORM_MSG | |||||
///</summary> | ///</summary> | ||||
[Description("主链路平台间信息交互消息")] | [Description("主链路平台间信息交互消息")] | ||||
[JT809BodiesType(typeof(JT809_0x1300))] | [JT809BodiesType(typeof(JT809_0x1300))] | ||||
UP_PLATFORM_MSG = 0x1300, | |||||
[JT809BusinessTypeDescription("UP_PLATFORM_MSG", "主链路平台间信息交互消息")] | |||||
主链路平台间信息交互消息 = 0x1300, | |||||
///<summary> | ///<summary> | ||||
///从链路平台间信息交互消息 | ///从链路平台间信息交互消息 | ||||
///DOWN_PLATFORM_MSG | |||||
///</summary> | ///</summary> | ||||
[Description("从链路平台间信息交互消息")] | [Description("从链路平台间信息交互消息")] | ||||
[JT809BodiesType(typeof(JT809_0x9300))] | [JT809BodiesType(typeof(JT809_0x9300))] | ||||
DOWN_PLATFORM_MSG = 0x9300, | |||||
[JT809BusinessTypeDescription("DOWN_PLATFORM_MSG", "从链路平台间信息交互消息")] | |||||
从链路平台间信息交互消息 = 0x9300, | |||||
#endregion | #endregion | ||||
#region 车辆报警信息交互类 | #region 车辆报警信息交互类 | ||||
///<summary> | ///<summary> | ||||
///主链路报警信息交互消息 | ///主链路报警信息交互消息 | ||||
///UP_WARN_MSG | |||||
///</summary> | ///</summary> | ||||
[Description("主链路报警信息交互消息")] | [Description("主链路报警信息交互消息")] | ||||
[JT809BodiesType(typeof(JT809_0x1400))] | [JT809BodiesType(typeof(JT809_0x1400))] | ||||
UP_WARN_MSG = 0x1400, | |||||
[JT809BusinessTypeDescription("UP_WARN_MSG", "主链路报警信息交互消息")] | |||||
主链路报警信息交互消息 = 0x1400, | |||||
///<summary> | ///<summary> | ||||
///从链路报警信息交互消息 | |||||
///从链路报警信息交互消息 | |||||
///DOWN_WARN_MSG | |||||
///</summary> | ///</summary> | ||||
[Description("从链路报警信息交互消息")] | [Description("从链路报警信息交互消息")] | ||||
[JT809BodiesType(typeof(JT809_0x9400))] | [JT809BodiesType(typeof(JT809_0x9400))] | ||||
DOWN_WARN_MSG = 0x9400, | |||||
[JT809BusinessTypeDescription("DOWN_WARN_MSG", "从链路报警信息交互消息")] | |||||
从链路报警信息交互消息 = 0x9400, | |||||
#endregion | #endregion | ||||
#region 车辆监管类 | #region 车辆监管类 | ||||
///<summary> | ///<summary> | ||||
///主链路车辆监管消息 | |||||
///主链路车辆监管消息 | |||||
///UP_CTRL_MSG | |||||
///</summary> | ///</summary> | ||||
[Description("主链路车辆监管消息")] | [Description("主链路车辆监管消息")] | ||||
[JT809BodiesType(typeof(JT809_0x1500))] | [JT809BodiesType(typeof(JT809_0x1500))] | ||||
UP_CTRL_MSG = 0x1500, | |||||
[JT809BusinessTypeDescription("UP_CTRL_MSG", "主链路车辆监管消息")] | |||||
主链路车辆监管消息 = 0x1500, | |||||
///<summary> | ///<summary> | ||||
///从链路车辆监管消息 | |||||
///从链路车辆监管消息 | |||||
///DOWN_CTRL_MSG | |||||
///</summary> | ///</summary> | ||||
[Description("从链路车辆监管消息")] | [Description("从链路车辆监管消息")] | ||||
[JT809BodiesType(typeof(JT809_0x9500))] | [JT809BodiesType(typeof(JT809_0x9500))] | ||||
DOWN_CTRL_MSG = 0x9500, | |||||
[JT809BusinessTypeDescription("DOWN_CTRL_MSG", "从链路车辆监管消息")] | |||||
从链路车辆监管消息 = 0x9500, | |||||
#endregion | #endregion | ||||
#region 车辆静态信息交换类 | #region 车辆静态信息交换类 | ||||
///<summary> | ///<summary> | ||||
///主链路静态信息交换消息 | |||||
///主链路静态信息交换消息 | |||||
///UP_BASE_MSG | |||||
///</summary> | ///</summary> | ||||
[Description("主链路静态信息交换消息")] | [Description("主链路静态信息交换消息")] | ||||
[JT809BodiesType(typeof(JT809_0x1600))] | [JT809BodiesType(typeof(JT809_0x1600))] | ||||
UP_BASE_MSG = 0x1600, | |||||
[JT809BusinessTypeDescription("UP_BASE_MSG", "主链路静态信息交换消息")] | |||||
主链路静态信息交换消息 = 0x1600, | |||||
///<summary> | ///<summary> | ||||
///从链路静态信息交换消息 | |||||
///从链路静态信息交换消息 | |||||
///DOWN_BASE_MSG | |||||
///</summary> | ///</summary> | ||||
[Description("从链路静态信息交换消息")] | [Description("从链路静态信息交换消息")] | ||||
[JT809BodiesType(typeof(JT809_0x9600))] | [JT809BodiesType(typeof(JT809_0x9600))] | ||||
DOWN_BASE_MSG = 0x9600, | |||||
[JT809BusinessTypeDescription("DOWN_BASE_MSG", "从链路静态信息交换消息")] | |||||
从链路静态信息交换消息 = 0x9600, | |||||
#endregion | #endregion | ||||
} | } | ||||
} | } |
@@ -13,169 +13,220 @@ namespace JT809.Protocol.JT809Enums | |||||
#region 主链路动态信息交换消息 UP_EXG_MSG | #region 主链路动态信息交换消息 UP_EXG_MSG | ||||
/// <summary> | /// <summary> | ||||
/// 上传车辆注册信息 | /// 上传车辆注册信息 | ||||
/// UP_EXG_MSG_REGISTER | |||||
/// </summary> | /// </summary> | ||||
[Description("上传车辆注册信息")] | [Description("上传车辆注册信息")] | ||||
[JT809BodiesType(typeof(JT809_0x1200_0x1201))] | [JT809BodiesType(typeof(JT809_0x1200_0x1201))] | ||||
UP_EXG_MSG_REGISTER = 0x1201, | |||||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_REGISTER", "上传车辆注册信息", JT809BusinessType.主链路动态信息交换消息)] | |||||
上传车辆注册信息 = 0x1201, | |||||
///<summary> | ///<summary> | ||||
///实时上传车辆定位信息 | ///实时上传车辆定位信息 | ||||
///UP_EXG_MSG_REAL_LOCATION | |||||
///</summary> | ///</summary> | ||||
[Description("实时上传车辆定位信息")] | [Description("实时上传车辆定位信息")] | ||||
[JT809BodiesType(typeof(JT809_0x1200_0x1202))] | [JT809BodiesType(typeof(JT809_0x1200_0x1202))] | ||||
UP_EXG_MSG_REAL_LOCATION = 0x1202, | |||||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_REAL_LOCATION", "实时上传车辆定位信息", JT809BusinessType.主链路动态信息交换消息)] | |||||
实时上传车辆定位信息 = 0x1202, | |||||
///<summary> | ///<summary> | ||||
///车辆定位信息自动补报 | |||||
///车辆定位信息自动补报 | |||||
///UP_EXG_MSG_HISTORY_LOCATION | |||||
///</summary> | ///</summary> | ||||
[Description("车辆定位信息自动补报")] | [Description("车辆定位信息自动补报")] | ||||
[JT809BodiesType(typeof(JT809_0x1200_0x1203))] | [JT809BodiesType(typeof(JT809_0x1200_0x1203))] | ||||
UP_EXG_MSG_HISTORY_LOCATION = 0x1203, | |||||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_HISTORY_LOCATION", "车辆定位信息自动补报", JT809BusinessType.主链路动态信息交换消息)] | |||||
车辆定位信息自动补报 = 0x1203, | |||||
///<summary> | ///<summary> | ||||
///启动车辆定位信息交换应答 | ///启动车辆定位信息交换应答 | ||||
///UP_EXG_MSG_RETURN_STARTUP_ACK | |||||
///</summary> | ///</summary> | ||||
[Description("启动车辆定位信息交换应答")] | [Description("启动车辆定位信息交换应答")] | ||||
[JT809BodiesType(typeof(JT809_0x1200_0x1205))] | [JT809BodiesType(typeof(JT809_0x1200_0x1205))] | ||||
UP_EXG_MSG_RETURN_STARTUP_ACK = 0x1205, | |||||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_RETURN_STARTUP_ACK", "启动车辆定位信息交换应答", JT809BusinessType.主链路动态信息交换消息)] | |||||
启动车辆定位信息交换应答 = 0x1205, | |||||
///<summary> | ///<summary> | ||||
///结束车辆定位信息交换应答 | ///结束车辆定位信息交换应答 | ||||
///UP_EXG_MSG_RETURN_END_ACK | |||||
///</summary> | ///</summary> | ||||
[Description("结束车辆定位信息交换应答")] | [Description("结束车辆定位信息交换应答")] | ||||
[JT809BodiesType(typeof(JT809_0x1200_0x1206))] | [JT809BodiesType(typeof(JT809_0x1200_0x1206))] | ||||
UP_EXG_MSG_RETURN_END_ACK = 0x1206, | |||||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_RETURN_END_ACK", "结束车辆定位信息交换应答", JT809BusinessType.主链路动态信息交换消息)] | |||||
结束车辆定位信息交换应答 = 0x1206, | |||||
///<summary> | ///<summary> | ||||
///申请交换指定车辆定位信息请求 | ///申请交换指定车辆定位信息请求 | ||||
///UP_EXG_MSG_APPLY_FOR_MONITOR_STARTUP | |||||
///</summary> | ///</summary> | ||||
[Description("申请交换指定车辆定位信息请求")] | [Description("申请交换指定车辆定位信息请求")] | ||||
[JT809BodiesType(typeof(JT809_0x1200_0x1207))] | [JT809BodiesType(typeof(JT809_0x1200_0x1207))] | ||||
UP_EXG_MSG_APPLY_FOR_MONITOR_STARTUP = 0x1207, | |||||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_APPLY_FOR_MONITOR_STARTUP", "申请交换指定车辆定位信息请求", JT809BusinessType.主链路动态信息交换消息)] | |||||
申请交换指定车辆定位信息请求 = 0x1207, | |||||
///<summary> | ///<summary> | ||||
///取消交换指定车辆定位信息请求 | |||||
///取消交换指定车辆定位信息请求 | |||||
///UP_EXG_MSG_APPLY_FOR_MONITOR_END | |||||
///</summary> | ///</summary> | ||||
[Description("取消交换指定车辆定位信息请求")] | [Description("取消交换指定车辆定位信息请求")] | ||||
[JT809BodiesType(typeof(JT809_0x1200_0x1208))] | [JT809BodiesType(typeof(JT809_0x1200_0x1208))] | ||||
UP_EXG_MSG_APPLY_FOR_MONITOR_END = 0x1208, | |||||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_APPLY_FOR_MONITOR_END", "取消交换指定车辆定位信息请求", JT809BusinessType.主链路动态信息交换消息)] | |||||
取消交换指定车辆定位信息请求 = 0x1208, | |||||
///<summary> | ///<summary> | ||||
///补发车辆定位信息请求 | |||||
///补发车辆定位信息请求 | |||||
///UP_EXG_MSG_APPLY_HISGNSSDATA_REQ | |||||
///</summary> | ///</summary> | ||||
[Description("补发车辆定位信息请求")] | [Description("补发车辆定位信息请求")] | ||||
[JT809BodiesType(typeof(JT809_0x1200_0x1209))] | [JT809BodiesType(typeof(JT809_0x1200_0x1209))] | ||||
UP_EXG_MSG_APPLY_HISGNSSDATA_REQ = 0x1209, | |||||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_APPLY_HISGNSSDATA_REQ", "补发车辆定位信息请求", JT809BusinessType.主链路动态信息交换消息)] | |||||
补发车辆定位信息请求 = 0x1209, | |||||
///<summary> | ///<summary> | ||||
///上报车辆驾驶员身份识别信息应答 | |||||
///上报车辆驾驶员身份识别信息应答 | |||||
///UP_EXG_MSG_REPORT_DRIVER_INFO_ACK | |||||
///</summary> | ///</summary> | ||||
[Description("上报车辆驾驶员身份识别信息应答")] | [Description("上报车辆驾驶员身份识别信息应答")] | ||||
[JT809BodiesType(typeof(JT809_0x1200_0x120A))] | [JT809BodiesType(typeof(JT809_0x1200_0x120A))] | ||||
UP_EXG_MSG_REPORT_DRIVER_INFO_ACK = 0x120A, | |||||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_REPORT_DRIVER_INFO_ACK", "上报车辆驾驶员身份识别信息应答", JT809BusinessType.主链路动态信息交换消息)] | |||||
上报车辆驾驶员身份识别信息应答 = 0x120A, | |||||
///<summary> | ///<summary> | ||||
///上报车辆电子运单应答 | ///上报车辆电子运单应答 | ||||
///UP_EXG_MSG_TAKE_EWAYBILL_ACK | |||||
///</summary> | ///</summary> | ||||
[Description("上报车辆电子运单应答")] | [Description("上报车辆电子运单应答")] | ||||
[JT809BodiesType(typeof(JT809_0x1200_0x120B))] | [JT809BodiesType(typeof(JT809_0x1200_0x120B))] | ||||
UP_EXG_MSG_TAKE_EWAYBILL_ACK = 0x120B, | |||||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_TAKE_EWAYBILL_ACK", "上报车辆电子运单应答", JT809BusinessType.主链路动态信息交换消息)] | |||||
上报车辆电子运单应答 = 0x120B, | |||||
///<summary> | ///<summary> | ||||
///主动上报驾驶员身份信息 | ///主动上报驾驶员身份信息 | ||||
///UP_EXG_MSG_REPORT_DRIVER_INFO | |||||
///</summary> | ///</summary> | ||||
[Description("主动上报驾驶员身份信息")] | [Description("主动上报驾驶员身份信息")] | ||||
[JT809BodiesType(typeof(JT809_0x1200_0x120C))] | [JT809BodiesType(typeof(JT809_0x1200_0x120C))] | ||||
UP_EXG_MSG_REPORT_DRIVER_INFO = 0x120C, | |||||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_REPORT_DRIVER_INFO", "主动上报驾驶员身份信息", JT809BusinessType.主链路动态信息交换消息)] | |||||
主动上报驾驶员身份信息 = 0x120C, | |||||
///<summary> | ///<summary> | ||||
///主动上报车辆电子运单信息 | ///主动上报车辆电子运单信息 | ||||
///UP_EXG_MSG_REPORT_EWAYBILL_INFO | |||||
///</summary> | ///</summary> | ||||
[Description("主动上报车辆电子运单信息")] | [Description("主动上报车辆电子运单信息")] | ||||
[JT809BodiesType(typeof(JT809_0x1200_0x120D))] | [JT809BodiesType(typeof(JT809_0x1200_0x120D))] | ||||
UP_EXG_MSG_REPORT_EWAYBILL_INFO = 0x120D, | |||||
[JT809SubBusinessTypeDescription("UP_EXG_MSG_REPORT_EWAYBILL_INFO", "主动上报车辆电子运单信息", JT809BusinessType.主链路动态信息交换消息)] | |||||
主动上报车辆电子运单信息 = 0x120D, | |||||
#endregion | #endregion | ||||
#region 从链路动态信息交换消息 DOWN_EXG_MSG | #region 从链路动态信息交换消息 DOWN_EXG_MSG | ||||
///<summary> | ///<summary> | ||||
///交换车辆定位信息 | ///交换车辆定位信息 | ||||
///DOWN_EXG_MSG_CAR_LOCATION | |||||
///</summary> | ///</summary> | ||||
[Description("交换车辆定位信息")] | [Description("交换车辆定位信息")] | ||||
[JT809BodiesType(typeof(JT809_0x9200_0x9202))] | [JT809BodiesType(typeof(JT809_0x9200_0x9202))] | ||||
DOWN_EXG_MSG_CAR_LOCATION = 0x9202, | |||||
[JT809SubBusinessTypeDescription("DOWN_EXG_MSG_CAR_LOCATION", "交换车辆定位信息", JT809BusinessType.从链路动态信息交换消息)] | |||||
交换车辆定位信息 = 0x9202, | |||||
///<summary> | ///<summary> | ||||
///车辆定位信息交换补发 | ///车辆定位信息交换补发 | ||||
///DOWN_EXG_MSG_HISTORY_ARCOSSAREA | |||||
///</summary> | ///</summary> | ||||
[Description("车辆定位信息交换补发")] | [Description("车辆定位信息交换补发")] | ||||
[JT809BodiesType(typeof(JT809_0x9200_0x9203))] | [JT809BodiesType(typeof(JT809_0x9200_0x9203))] | ||||
DOWN_EXG_MSG_HISTORY_ARCOSSAREA = 0x9203, | |||||
[JT809SubBusinessTypeDescription("DOWN_EXG_MSG_HISTORY_ARCOSSAREA", "车辆定位信息交换补发", JT809BusinessType.从链路动态信息交换消息)] | |||||
车辆定位信息交换补发 = 0x9203, | |||||
///<summary> | ///<summary> | ||||
///交换车辆静态信息 | |||||
///交换车辆静态信息 | |||||
///DOWN_EXG_MSG_CAR_INFO | |||||
///</summary> | ///</summary> | ||||
[Description("交换车辆静态信息")] | [Description("交换车辆静态信息")] | ||||
[JT809BodiesType(typeof(JT809_0x9200_0x9204))] | [JT809BodiesType(typeof(JT809_0x9200_0x9204))] | ||||
DOWN_EXG_MSG_CAR_INFO = 0x9204, | |||||
[JT809SubBusinessTypeDescription("DOWN_EXG_MSG_CAR_INFO", "交换车辆静态信息", JT809BusinessType.从链路动态信息交换消息)] | |||||
交换车辆静态信息 = 0x9204, | |||||
///<summary> | ///<summary> | ||||
///启动车辆定位信息交换请求 | |||||
///启动车辆定位信息交换请求 | |||||
///DOWN_EXG_MSG_RETURN_STARTUP | |||||
///</summary> | ///</summary> | ||||
[Description("启动车辆定位信息交换请求")] | [Description("启动车辆定位信息交换请求")] | ||||
[JT809BodiesType(typeof(JT809_0x9200_0x9205))] | [JT809BodiesType(typeof(JT809_0x9200_0x9205))] | ||||
DOWN_EXG_MSG_RETURN_STARTUP = 0x9205, | |||||
[JT809SubBusinessTypeDescription("DOWN_EXG_MSG_RETURN_STARTUP", "启动车辆定位信息交换请求", JT809BusinessType.从链路动态信息交换消息)] | |||||
启动车辆定位信息交换请求 = 0x9205, | |||||
///<summary> | ///<summary> | ||||
///结束车辆定位信息交换请求 | ///结束车辆定位信息交换请求 | ||||
///</summary> | ///</summary> | ||||
[Description("结束车辆定位信息交换请求")] | [Description("结束车辆定位信息交换请求")] | ||||
[JT809BodiesType(typeof(JT809_0x9200_0x9206))] | [JT809BodiesType(typeof(JT809_0x9200_0x9206))] | ||||
DOWN_EXG_MSG_RETURN_END = 0x9206, | |||||
[JT809SubBusinessTypeDescription("DOWN_EXG_MSG_RETURN_END", "结束车辆定位信息交换请求", JT809BusinessType.从链路动态信息交换消息)] | |||||
结束车辆定位信息交换请求 = 0x9206, | |||||
///<summary> | ///<summary> | ||||
///申请交换指定车辆定位信息应答 | ///申请交换指定车辆定位信息应答 | ||||
///DOWN_EXG_MSG_APPLY_FOR_MONITOR_STARTUP_ACK | |||||
///</summary> | ///</summary> | ||||
[Description("申请交换指定车辆定位信息应答")] | [Description("申请交换指定车辆定位信息应答")] | ||||
[JT809BodiesType(typeof(JT809_0x9200_0x9207))] | [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> | ///<summary> | ||||
///取消交换指定车辆定位信息应答 | ///取消交换指定车辆定位信息应答 | ||||
///DOWN_EXG_MSG_APPLY_FOR_MONITOR_END_ACK | |||||
///</summary> | ///</summary> | ||||
[Description("取消交换指定车辆定位信息应答")] | [Description("取消交换指定车辆定位信息应答")] | ||||
[JT809BodiesType(typeof(JT809_0x9200_0x9208))] | [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> | ///<summary> | ||||
///补发车辆定位信息应答 | ///补发车辆定位信息应答 | ||||
///DOWN_EXG_MSG_APPLY_HISGNSSDATA_ACK | |||||
///</summary> | ///</summary> | ||||
[Description("补发车辆定位信息应答")] | [Description("补发车辆定位信息应答")] | ||||
[JT809BodiesType(typeof(JT809_0x9200_0x9209))] | [JT809BodiesType(typeof(JT809_0x9200_0x9209))] | ||||
DOWN_EXG_MSG_APPLY_HISGNSSDATA_ACK = 0x9209, | |||||
[JT809SubBusinessTypeDescription("DOWN_EXG_MSG_APPLY_HISGNSSDATA_ACK", "补发车辆定位信息应答", JT809BusinessType.从链路动态信息交换消息)] | |||||
补发车辆定位信息应答 = 0x9209, | |||||
///<summary> | ///<summary> | ||||
///上报车辆驾驶员身份识别信息请求 | ///上报车辆驾驶员身份识别信息请求 | ||||
///DOWN_EXG_MSG_REPORT_DRIVER_INFO | |||||
///</summary> | ///</summary> | ||||
[Description("上报车辆驾驶员身份识别信息请求")] | [Description("上报车辆驾驶员身份识别信息请求")] | ||||
[JT809BodiesType(typeof(JT809_0x9200_0x920A))] | [JT809BodiesType(typeof(JT809_0x9200_0x920A))] | ||||
DOWN_EXG_MSG_REPORT_DRIVER_INFO = 0x920A, | |||||
[JT809SubBusinessTypeDescription("DOWN_EXG_MSG_REPORT_DRIVER_INFO", "上报车辆驾驶员身份识别信息请求", JT809BusinessType.从链路动态信息交换消息)] | |||||
上报车辆驾驶员身份识别信息请求 = 0x920A, | |||||
///<summary> | ///<summary> | ||||
///上报车辆电子运单请求 | ///上报车辆电子运单请求 | ||||
///DOWN_EXG_MSG_TAKE_EWAYBILL_REQ | |||||
///</summary> | ///</summary> | ||||
[Description("上报车辆电子运单请求")] | [Description("上报车辆电子运单请求")] | ||||
[JT809BodiesType(typeof(JT809_0x9200_0x920B))] | [JT809BodiesType(typeof(JT809_0x9200_0x920B))] | ||||
DOWN_EXG_MSG_TAKE_EWAYBILL_REQ = 0x920B, | |||||
[JT809SubBusinessTypeDescription("DOWN_EXG_MSG_TAKE_EWAYBILL_REQ", "上报车辆电子运单请求", JT809BusinessType.从链路动态信息交换消息)] | |||||
上报车辆电子运单请求 = 0x920B, | |||||
#endregion | #endregion | ||||
#region 主链路平台信息交互消息 UP_PLATFORM_MSG | #region 主链路平台信息交互消息 UP_PLATFORM_MSG | ||||
///<summary> | ///<summary> | ||||
///平台查岗应答 | ///平台查岗应答 | ||||
///UP_PLATFORM_MSG_POST_QUERY_ACK | |||||
///</summary> | ///</summary> | ||||
[Description("平台查岗应答")] | [Description("平台查岗应答")] | ||||
[JT809BodiesType(typeof(JT809_0x1300_0x1301))] | [JT809BodiesType(typeof(JT809_0x1300_0x1301))] | ||||
UP_PLATFORM_MSG_POST_QUERY_ACK = 0x1301, | |||||
[JT809SubBusinessTypeDescription("UP_PLATFORM_MSG_POST_QUERY_ACK", "平台查岗应答", JT809BusinessType.主链路平台间信息交互消息)] | |||||
平台查岗应答 = 0x1301, | |||||
///<summary> | ///<summary> | ||||
///下发平台间报文应答 | ///下发平台间报文应答 | ||||
///UP_PLATFORM_MSG_INFO_ACK | |||||
///</summary> | ///</summary> | ||||
[Description("下发平台间报文应答")] | [Description("下发平台间报文应答")] | ||||
[JT809BodiesType(typeof(JT809_0x1300_0x1302))] | [JT809BodiesType(typeof(JT809_0x1300_0x1302))] | ||||
UP_PLATFORM_MSG_INFO_ACK = 0x1302, | |||||
[JT809SubBusinessTypeDescription("UP_PLATFORM_MSG_INFO_ACK", "下发平台间报文应答", JT809BusinessType.主链路平台间信息交互消息)] | |||||
下发平台间报文应答 = 0x1302, | |||||
#endregion | #endregion | ||||
#region 从链路平台信息交互消息 DOWN_PLATFORM_MSG | #region 从链路平台信息交互消息 DOWN_PLATFORM_MSG | ||||
///<summary> | ///<summary> | ||||
///平台查岗请求 | ///平台查岗请求 | ||||
///DOWN_PLATFORM_MSG_POST_QUERY_REQ | |||||
///</summary> | ///</summary> | ||||
[Description("平台查岗请求")] | [Description("平台查岗请求")] | ||||
[JT809BodiesType(typeof(JT809_0x9300_0x9301))] | [JT809BodiesType(typeof(JT809_0x9300_0x9301))] | ||||
DOWN_PLATFORM_MSG_POST_QUERY_REQ = 0x9301, | |||||
[JT809SubBusinessTypeDescription("DOWN_PLATFORM_MSG_POST_QUERY_REQ", "平台查岗请求", JT809BusinessType.从链路平台间信息交互消息)] | |||||
平台查岗请求 = 0x9301, | |||||
///<summary> | ///<summary> | ||||
///下发平台间报文请求 | ///下发平台间报文请求 | ||||
///DOWN_PLATFORM_MSG_INFO_REQ | |||||
///</summary> | ///</summary> | ||||
[Description("下发平台间报文请求")] | [Description("下发平台间报文请求")] | ||||
[JT809BodiesType(typeof(JT809_0x9300_0x9302))] | [JT809BodiesType(typeof(JT809_0x9300_0x9302))] | ||||
DOWN_PLATFORM_MSG_INFO_REQ = 0x9302, | |||||
[JT809SubBusinessTypeDescription("DOWN_PLATFORM_MSG_INFO_REQ", "下发平台间报文请求", JT809BusinessType.从链路平台间信息交互消息)] | |||||
下发平台间报文请求 = 0x9302, | |||||
#endregion | #endregion | ||||
#region 主链路报警信息交互消息 UP_WARN_MSG | #region 主链路报警信息交互消息 UP_WARN_MSG | ||||
@@ -184,124 +235,159 @@ namespace JT809.Protocol.JT809Enums | |||||
///</summary> | ///</summary> | ||||
[Description("报警督办应答")] | [Description("报警督办应答")] | ||||
[JT809BodiesType(typeof(JT809_0x1400_0x1401))] | [JT809BodiesType(typeof(JT809_0x1400_0x1401))] | ||||
[JT809SubBusinessTypeDescription("DOWN_PLATFORM_MSG_INFO_REQ", "下发平台间报文请求", JT809BusinessType.主链路报警信息交互消息)] | |||||
UP_WARN_MSG_URGE_TODO_ACK = 0x1401, | UP_WARN_MSG_URGE_TODO_ACK = 0x1401, | ||||
///<summary> | ///<summary> | ||||
///上报报警信息 | ///上报报警信息 | ||||
///UP_WARN_MSG_ADPT_INFO | |||||
///</summary> | ///</summary> | ||||
[Description("上报报警信息")] | [Description("上报报警信息")] | ||||
[JT809BodiesType(typeof(JT809_0x1400_0x1402))] | [JT809BodiesType(typeof(JT809_0x1400_0x1402))] | ||||
UP_WARN_MSG_ADPT_INFO = 0x1402, | |||||
[JT809SubBusinessTypeDescription("UP_WARN_MSG_ADPT_INFO", "上报报警信息", JT809BusinessType.主链路报警信息交互消息)] | |||||
上报报警信息 = 0x1402, | |||||
///<summary> | ///<summary> | ||||
///主动上报报警处理结果信息 | ///主动上报报警处理结果信息 | ||||
///UP_WARN_MSG_ADPT_TODO_INFO | |||||
///</summary> | ///</summary> | ||||
[Description("主动上报报警处理结果信息")] | [Description("主动上报报警处理结果信息")] | ||||
[JT809BodiesType(typeof(JT809_0x1400_0x1403))] | [JT809BodiesType(typeof(JT809_0x1400_0x1403))] | ||||
UP_WARN_MSG_ADPT_TODO_INFO = 0x1403, | |||||
[JT809SubBusinessTypeDescription("UP_WARN_MSG_ADPT_TODO_INFO", "主动上报报警处理结果信息", JT809BusinessType.主链路报警信息交互消息)] | |||||
主动上报报警处理结果信息 = 0x1403, | |||||
#endregion | #endregion | ||||
#region 从链路报警信息交互消息 DOWN_WARN_MSG | #region 从链路报警信息交互消息 DOWN_WARN_MSG | ||||
///<summary> | ///<summary> | ||||
///报警督办请求 | ///报警督办请求 | ||||
///DOWN_WARN_MSG_URGE_TODO_REQ | |||||
///</summary> | ///</summary> | ||||
[Description("报警督办请求")] | [Description("报警督办请求")] | ||||
[JT809BodiesType(typeof(JT809_0x9400_0x9401))] | [JT809BodiesType(typeof(JT809_0x9400_0x9401))] | ||||
DOWN_WARN_MSG_URGE_TODO_REQ = 0x9401, | |||||
[JT809SubBusinessTypeDescription("DOWN_WARN_MSG_URGE_TODO_REQ", "报警督办请求", JT809BusinessType.从链路报警信息交互消息)] | |||||
报警督办请求 = 0x9401, | |||||
///<summary> | ///<summary> | ||||
///报警预警 | ///报警预警 | ||||
///DOWN_WARN_MSG_INFORM_TIPS | |||||
///</summary> | ///</summary> | ||||
[Description("报警预警")] | [Description("报警预警")] | ||||
[JT809BodiesType(typeof(JT809_0x9400_0x9402))] | [JT809BodiesType(typeof(JT809_0x9400_0x9402))] | ||||
DOWN_WARN_MSG_INFORM_TIPS = 0x9402, | |||||
[JT809SubBusinessTypeDescription("DOWN_WARN_MSG_INFORM_TIPS", "报警预警", JT809BusinessType.从链路报警信息交互消息)] | |||||
报警预警 = 0x9402, | |||||
///<summary> | ///<summary> | ||||
///实时交换报警信息 | ///实时交换报警信息 | ||||
///DOWN_WARN_MSG_EXG_INFORM | |||||
///</summary> | ///</summary> | ||||
[Description("实时交换报警信息")] | [Description("实时交换报警信息")] | ||||
[JT809BodiesType(typeof(JT809_0x9400_0x9403))] | [JT809BodiesType(typeof(JT809_0x9400_0x9403))] | ||||
DOWN_WARN_MSG_EXG_INFORM = 0x9403, | |||||
[JT809SubBusinessTypeDescription("DOWN_WARN_MSG_EXG_INFORM", "实时交换报警信息", JT809BusinessType.从链路报警信息交互消息)] | |||||
实时交换报警信息 = 0x9403, | |||||
#endregion | #endregion | ||||
#region 主链路车辆监管消息 UP_CTRL_MSG | #region 主链路车辆监管消息 UP_CTRL_MSG | ||||
///<summary> | ///<summary> | ||||
///车辆单向监听应答 | ///车辆单向监听应答 | ||||
///UP_CTRL_MSG_MONITOR_VEHICLE_ACK | |||||
///</summary> | ///</summary> | ||||
[Description("车辆单向监听应答")] | [Description("车辆单向监听应答")] | ||||
[JT809BodiesType(typeof(JT809_0x1500_0x1501))] | [JT809BodiesType(typeof(JT809_0x1500_0x1501))] | ||||
UP_CTRL_MSG_MONITOR_VEHICLE_ACK = 0x1501, | |||||
[JT809SubBusinessTypeDescription("UP_CTRL_MSG_MONITOR_VEHICLE_ACK", "车辆单向监听应答", JT809BusinessType.主链路车辆监管消息)] | |||||
车辆单向监听应答 = 0x1501, | |||||
///<summary> | ///<summary> | ||||
///车辆拍照应答 | ///车辆拍照应答 | ||||
///UP_CTRL_MSG_TAKE_PHOTO_ACK | |||||
///</summary> | ///</summary> | ||||
[Description("车辆拍照应答")] | [Description("车辆拍照应答")] | ||||
[JT809BodiesType(typeof(JT809_0x1500_0x1502))] | [JT809BodiesType(typeof(JT809_0x1500_0x1502))] | ||||
UP_CTRL_MSG_TAKE_PHOTO_ACK = 0x1502, | |||||
[JT809SubBusinessTypeDescription("UP_CTRL_MSG_TAKE_PHOTO_ACK", "车辆拍照应答", JT809BusinessType.主链路车辆监管消息)] | |||||
车辆拍照应答 = 0x1502, | |||||
///<summary> | ///<summary> | ||||
///下发车辆报文应答 | ///下发车辆报文应答 | ||||
///UP_CTRL_MSG_TEXT_INFO_ACK | |||||
///</summary> | ///</summary> | ||||
[Description("下发车辆报文应答")] | [Description("下发车辆报文应答")] | ||||
[JT809BodiesType(typeof(JT809_0x1500_0x1503))] | [JT809BodiesType(typeof(JT809_0x1500_0x1503))] | ||||
UP_CTRL_MSG_TEXT_INFO_ACK = 0x1503, | |||||
[JT809SubBusinessTypeDescription("UP_CTRL_MSG_TEXT_INFO_ACK", "下发车辆报文应答", JT809BusinessType.主链路车辆监管消息)] | |||||
下发车辆报文应答 = 0x1503, | |||||
///<summary> | ///<summary> | ||||
///上报车辆行驶记录应答 | ///上报车辆行驶记录应答 | ||||
///UP_CTRL_MSG_TAKE_TRAVEL_ACK | |||||
///</summary> | ///</summary> | ||||
[Description("上报车辆行驶记录应答")] | [Description("上报车辆行驶记录应答")] | ||||
[JT809BodiesType(typeof(JT809_0x1500_0x1504))] | [JT809BodiesType(typeof(JT809_0x1500_0x1504))] | ||||
UP_CTRL_MSG_TAKE_TRAVEL_ACK = 0x1504, | |||||
[JT809SubBusinessTypeDescription("UP_CTRL_MSG_TAKE_TRAVEL_ACK", "上报车辆行驶记录应答", JT809BusinessType.主链路车辆监管消息)] | |||||
上报车辆行驶记录应答 = 0x1504, | |||||
///<summary> | ///<summary> | ||||
///车辆应急接入监管平台应答消息 | ///车辆应急接入监管平台应答消息 | ||||
///UP_CTRL_MSG_EMERGENCY_MONITORING_ACK | |||||
///</summary> | ///</summary> | ||||
[Description("车辆应急接入监管平台应答消息")] | [Description("车辆应急接入监管平台应答消息")] | ||||
[JT809BodiesType(typeof(JT809_0x1500_0x1505))] | [JT809BodiesType(typeof(JT809_0x1500_0x1505))] | ||||
UP_CTRL_MSG_EMERGENCY_MONITORING_ACK = 0x1505, | |||||
[JT809SubBusinessTypeDescription("UP_CTRL_MSG_EMERGENCY_MONITORING_ACK", "车辆应急接入监管平台应答消息", JT809BusinessType.主链路车辆监管消息)] | |||||
车辆应急接入监管平台应答消息 = 0x1505, | |||||
#endregion | #endregion | ||||
#region 从链路车辆监管消息 DOWN_CTRL_MSG | #region 从链路车辆监管消息 DOWN_CTRL_MSG | ||||
///<summary> | ///<summary> | ||||
///车辆单向监听请求 | ///车辆单向监听请求 | ||||
///DOWN_CTRL_MSG_MONITOR_VEHICLE_REQ | |||||
///</summary> | ///</summary> | ||||
[Description("车辆单向监听请求")] | [Description("车辆单向监听请求")] | ||||
[JT809BodiesType(typeof(JT809_0x9500_0x9501))] | [JT809BodiesType(typeof(JT809_0x9500_0x9501))] | ||||
DOWN_CTRL_MSG_MONITOR_VEHICLE_REQ = 0x9501, | |||||
[JT809SubBusinessTypeDescription("DOWN_CTRL_MSG_MONITOR_VEHICLE_REQ", "车辆单向监听请求", JT809BusinessType.从链路车辆监管消息)] | |||||
车辆单向监听请求 = 0x9501, | |||||
///<summary> | ///<summary> | ||||
///车辆拍照请求 | ///车辆拍照请求 | ||||
///DOWN_CTRL_MSG_TAKE_PHOTO_REQ | |||||
///</summary> | ///</summary> | ||||
[Description("车辆拍照请求")] | [Description("车辆拍照请求")] | ||||
[JT809BodiesType(typeof(JT809_0x9500_0x9502))] | [JT809BodiesType(typeof(JT809_0x9500_0x9502))] | ||||
DOWN_CTRL_MSG_TAKE_PHOTO_REQ = 0x9502, | |||||
[JT809SubBusinessTypeDescription("DOWN_CTRL_MSG_TAKE_PHOTO_REQ", "车辆拍照请求", JT809BusinessType.从链路车辆监管消息)] | |||||
车辆拍照请求 = 0x9502, | |||||
///<summary> | ///<summary> | ||||
///下发车辆报文请求 | ///下发车辆报文请求 | ||||
///DOWN_CTRL_MSG_TEXT_INFO | |||||
///</summary> | ///</summary> | ||||
[Description("下发车辆报文请求")] | [Description("下发车辆报文请求")] | ||||
[JT809BodiesType(typeof(JT809_0x9500_0x9503))] | [JT809BodiesType(typeof(JT809_0x9500_0x9503))] | ||||
DOWN_CTRL_MSG_TEXT_INFO = 0x9503, | |||||
[JT809SubBusinessTypeDescription("DOWN_CTRL_MSG_TEXT_INFO", "下发车辆报文请求", JT809BusinessType.从链路车辆监管消息)] | |||||
下发车辆报文请求 = 0x9503, | |||||
///<summary> | ///<summary> | ||||
///上报车辆行驶记录请求 | ///上报车辆行驶记录请求 | ||||
///DOWN_CTRL_MSG_TAKE_TRAVEL_REQ | |||||
///</summary> | ///</summary> | ||||
[Description("上报车辆行驶记录请求")] | [Description("上报车辆行驶记录请求")] | ||||
[JT809BodiesType(typeof(JT809_0x9500_0x9504))] | [JT809BodiesType(typeof(JT809_0x9500_0x9504))] | ||||
DOWN_CTRL_MSG_TAKE_TRAVEL_REQ = 0x9504, | |||||
[JT809SubBusinessTypeDescription("DOWN_CTRL_MSG_TAKE_TRAVEL_REQ", "上报车辆行驶记录请求", JT809BusinessType.从链路车辆监管消息)] | |||||
上报车辆行驶记录请求 = 0x9504, | |||||
///<summary> | ///<summary> | ||||
///车辆应急接入监管平台请求消息 | ///车辆应急接入监管平台请求消息 | ||||
///DOWN_CTRL_MSG_EMERGENCY_MONITORING_REQ | |||||
///</summary> | ///</summary> | ||||
[Description("车辆应急接入监管平台请求消息")] | [Description("车辆应急接入监管平台请求消息")] | ||||
[JT809BodiesType(typeof(JT809_0x9500_0x9505))] | [JT809BodiesType(typeof(JT809_0x9500_0x9505))] | ||||
DOWN_CTRL_MSG_EMERGENCY_MONITORING_REQ = 0x9505, | |||||
[JT809SubBusinessTypeDescription("DOWN_CTRL_MSG_EMERGENCY_MONITORING_REQ", "车辆应急接入监管平台请求消息", JT809BusinessType.从链路车辆监管消息)] | |||||
车辆应急接入监管平台请求消息 = 0x9505, | |||||
#endregion | #endregion | ||||
#region 主链路静态信息交换消息 UP_BASE_MSG | #region 主链路静态信息交换消息 UP_BASE_MSG | ||||
///<summary> | ///<summary> | ||||
///补报车辆静态信息应答 | ///补报车辆静态信息应答 | ||||
///UP_BASE_MSG_VEHICLE_ADDED_ACK | |||||
///</summary> | ///</summary> | ||||
[Description("补报车辆静态信息应答")] | [Description("补报车辆静态信息应答")] | ||||
[JT809BodiesType(typeof(JT809_0x1600_0x1601))] | [JT809BodiesType(typeof(JT809_0x1600_0x1601))] | ||||
UP_BASE_MSG_VEHICLE_ADDED_ACK = 0x1601, | |||||
[JT809SubBusinessTypeDescription("UP_BASE_MSG_VEHICLE_ADDED_ACK", "补报车辆静态信息应答", JT809BusinessType.主链路静态信息交换消息)] | |||||
补报车辆静态信息应答 = 0x1601, | |||||
#endregion | #endregion | ||||
#region 从链路静态信息交换消息 DOWN_BASE_MSG | #region 从链路静态信息交换消息 DOWN_BASE_MSG | ||||
///<summary> | ///<summary> | ||||
///补报车辆静态信息请求 | |||||
///补报车辆静态信息请求 | |||||
///DOWN_BASE_MSG_VEHICLE_ADDED | |||||
///</summary> | ///</summary> | ||||
[Description("补报车辆静态信息请求")] | [Description("补报车辆静态信息请求")] | ||||
[JT809BodiesType(typeof(JT809_0x9600_0x9601))] | [JT809BodiesType(typeof(JT809_0x9600_0x9601))] | ||||
DOWN_BASE_MSG_VEHICLE_ADDED = 0x9601, | |||||
[JT809SubBusinessTypeDescription("DOWN_BASE_MSG_VEHICLE_ADDED", "补报车辆静态信息请求", JT809BusinessType.从链路静态信息交换消息)] | |||||
补报车辆静态信息请求 = 0x9601, | |||||
#endregion | #endregion | ||||
} | } | ||||
} | } |
@@ -8,103 +8,20 @@ namespace JT809.Protocol.JT809Extensions | |||||
public static class JT809PackageExtensions | public static class JT809PackageExtensions | ||||
{ | { | ||||
/// <summary> | /// <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> | /// </summary> | ||||
/// <typeparam name="TJT809Bodies"></typeparam> | /// <typeparam name="TJT809Bodies"></typeparam> | ||||
/// <param name="msgID"></param> | /// <param name="msgID"></param> | ||||
/// <param name="jT809Bodies"></param> | /// <param name="jT809Bodies"></param> | ||||
/// <returns></returns> | /// <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 | where TJT809Bodies: JT809Bodies | ||||
{ | { | ||||
JT809Package jT809Package = new JT809Package(); | JT809Package jT809Package = new JT809Package(); | ||||
jT809Package.Bodies = jT809Bodies; | jT809Package.Bodies = jT809Bodies; | ||||
jT809Package.Header = new JT809Header() | jT809Package.Header = new JT809Header() | ||||
{ | { | ||||
MsgID = msgID, | |||||
BusinessType = jT809BusinessType, | |||||
MsgSN = JT809GlobalConfig.Instance.MsgSNDistributed.Increment(), | MsgSN = JT809GlobalConfig.Instance.MsgSNDistributed.Increment(), | ||||
EncryptFlag = JT809GlobalConfig.Instance.HeaderOptions.EncryptFlag, | EncryptFlag = JT809GlobalConfig.Instance.HeaderOptions.EncryptFlag, | ||||
EncryptKey = JT809GlobalConfig.Instance.HeaderOptions.EncryptKey, | EncryptKey = JT809GlobalConfig.Instance.HeaderOptions.EncryptKey, | ||||
@@ -113,5 +30,24 @@ namespace JT809.Protocol.JT809Extensions | |||||
}; | }; | ||||
return jT809Package; | 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 jT809Header = new JT809Header(); | ||||
jT809Header.MsgLength = JT809BinaryExtensions.ReadUInt32Little(bytes, ref offset); | jT809Header.MsgLength = JT809BinaryExtensions.ReadUInt32Little(bytes, ref offset); | ||||
jT809Header.MsgSN= 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.MsgGNSSCENTERID = JT809BinaryExtensions.ReadUInt32Little(bytes, ref offset); | ||||
jT809Header.Version = new JT809Header_Version(JT809BinaryExtensions.ReadBytesLittle(bytes, ref offset, JT809Header_Version.FixedByteLength)); | jT809Header.Version = new JT809Header_Version(JT809BinaryExtensions.ReadBytesLittle(bytes, ref offset, JT809Header_Version.FixedByteLength)); | ||||
jT809Header.EncryptFlag= (JT809Header_Encrypt)JT809BinaryExtensions.ReadByteLittle(bytes, ref offset); | 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.MsgLength); | ||||
offset += JT809BinaryExtensions.WriteUInt32Little(memoryOwner, offset, value.MsgSN); | 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.WriteUInt32Little(memoryOwner, offset, value.MsgGNSSCENTERID); | ||||
offset += JT809BinaryExtensions.WriteBytesLittle(memoryOwner, offset, value.Version.Buffer); | offset += JT809BinaryExtensions.WriteBytesLittle(memoryOwner, offset, value.Version.Buffer); | ||||
offset += JT809BinaryExtensions.WriteByteLittle(memoryOwner, offset, (byte)value.EncryptFlag); | offset += JT809BinaryExtensions.WriteByteLittle(memoryOwner, offset, (byte)value.EncryptFlag); | ||||
@@ -52,7 +52,7 @@ namespace JT809.Protocol.JT809Formatters | |||||
if ((jT809Package.Header.MsgLength - JT809Package.FixedByteLength) > 0) | if ((jT809Package.Header.MsgLength - JT809Package.FixedByteLength) > 0) | ||||
{ | { | ||||
//JT809.Protocol.JT809Enums.JT809BusinessType 映射对应消息特性 | //JT809.Protocol.JT809Enums.JT809BusinessType 映射对应消息特性 | ||||
JT809BodiesTypeAttribute jT809BodiesTypeAttribute = jT809Package.Header.MsgID.GetAttribute<JT809BodiesTypeAttribute>(); | |||||
JT809BodiesTypeAttribute jT809BodiesTypeAttribute = jT809Package.Header.BusinessType.GetAttribute<JT809BodiesTypeAttribute>(); | |||||
if (jT809BodiesTypeAttribute != null) | if (jT809BodiesTypeAttribute != null) | ||||
{ | { | ||||
try | try | ||||
@@ -85,7 +85,7 @@ namespace JT809.Protocol.JT809Formatters | |||||
{ | { | ||||
// 1. 先序列化数据体,根据数据体的长度赋值给头部,在序列化头部。 | // 1. 先序列化数据体,根据数据体的长度赋值给头部,在序列化头部。 | ||||
int messageBodyOffset = 0; | int messageBodyOffset = 0; | ||||
JT809BodiesTypeAttribute jT809BodiesTypeAttribute = value.Header.MsgID.GetAttribute<JT809BodiesTypeAttribute>(); | |||||
JT809BodiesTypeAttribute jT809BodiesTypeAttribute = value.Header.BusinessType.GetAttribute<JT809BodiesTypeAttribute>(); | |||||
if (jT809BodiesTypeAttribute != null) | if (jT809BodiesTypeAttribute != null) | ||||
{ | { | ||||
if (value.Bodies != null) | if (value.Bodies != null) | ||||
@@ -29,7 +29,7 @@ namespace JT809.Protocol | |||||
/// <summary> | /// <summary> | ||||
/// 业务数据类型 | /// 业务数据类型 | ||||
/// </summary> | /// </summary> | ||||
public JT809BusinessType MsgID { get; set; } | |||||
public JT809BusinessType BusinessType { get; set; } | |||||
/// <summary> | /// <summary> | ||||
/// 下级平台接入码,上级平台给下级平台分配唯一标识码。 | /// 下级平台接入码,上级平台给下级平台分配唯一标识码。 | ||||
/// </summary> | /// </summary> | ||||