From b83ec466b65b10bc1292cff4502b557e2d1d6d01 Mon Sep 17 00:00:00 2001
From: SmallChi <564952747@qq.com>
Date: Sun, 18 Mar 2018 22:26:55 +0800
Subject: [PATCH] =?UTF-8?q?809=E4=B8=9A=E5=8A=A1=E7=B1=BB=E5=9E=8B?=
=?UTF-8?q?=E6=9E=9A=E4=B8=BE=E5=8F=8A=E5=B8=B8=E9=87=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/JT809.Protocol.sln | 25 ++
src/JT809.Protocol/Constants.cs | 48 ++++
src/JT809.Protocol/Enums/BusinessType.cs | 163 ++++++++++++
src/JT809.Protocol/Enums/SubBusinessType.cs | 260 ++++++++++++++++++++
src/JT809.Protocol/JT809.Protocol.csproj | 7 +
5 files changed, 503 insertions(+)
create mode 100644 src/JT809.Protocol.sln
create mode 100644 src/JT809.Protocol/Constants.cs
create mode 100644 src/JT809.Protocol/Enums/BusinessType.cs
create mode 100644 src/JT809.Protocol/Enums/SubBusinessType.cs
create mode 100644 src/JT809.Protocol/JT809.Protocol.csproj
diff --git a/src/JT809.Protocol.sln b/src/JT809.Protocol.sln
new file mode 100644
index 0000000..01c0e59
--- /dev/null
+++ b/src/JT809.Protocol.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.27428.2005
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JT809.Protocol", "JT809.Protocol\JT809.Protocol.csproj", "{4D33A5C9-F583-4230-9791-AB0394EFAD57}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {4D33A5C9-F583-4230-9791-AB0394EFAD57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4D33A5C9-F583-4230-9791-AB0394EFAD57}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4D33A5C9-F583-4230-9791-AB0394EFAD57}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4D33A5C9-F583-4230-9791-AB0394EFAD57}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {6159526D-F9A2-4984-A941-B65CA7B0E2EE}
+ EndGlobalSection
+EndGlobal
diff --git a/src/JT809.Protocol/Constants.cs b/src/JT809.Protocol/Constants.cs
new file mode 100644
index 0000000..6711629
--- /dev/null
+++ b/src/JT809.Protocol/Constants.cs
@@ -0,0 +1,48 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace JT809.Protocol
+{
+ ///
+ /// 常量
+ ///
+ public static class Constants
+ {
+ ///
+ /// 报警类型
+ ///
+ public readonly static Dictionary AlramType = new Dictionary()
+ {
+ {0x0001,"超速报警"},
+ {0x0002,"疲劳驾驶报警"},
+ {0x0003,"紧急报警"},
+ {0x0004,"进入指定区域报警"},
+ {0x0005,"离开指定区域报警"},
+ {0x0006,"路段赌赛报警"},
+ {0x0007,"危险路段报警"},
+ {0x0008,"越界报警"},
+ {0x0009,"盗警"},
+ {0x000A,"劫警"},
+ {0x000B,"偏离路线报警"},
+ {0x000C,"车辆移动报警"},
+ {0x000D,"超时驾驶报警"},
+ {0x000E,"其他报警"}
+ };
+
+ ///
+ /// 车牌颜色
+ ///
+ public readonly static Dictionary CarColor = new Dictionary()
+ {
+ {1,"蓝色"},
+ {2,"黄色"},
+ {3,"黄色"},
+ {4,"白色"},
+ {5,"绿"},
+ {6,"黄绿"},
+ {8,"农黄"},
+ {9,"其他"}
+ };
+ }
+}
diff --git a/src/JT809.Protocol/Enums/BusinessType.cs b/src/JT809.Protocol/Enums/BusinessType.cs
new file mode 100644
index 0000000..4e735d2
--- /dev/null
+++ b/src/JT809.Protocol/Enums/BusinessType.cs
@@ -0,0 +1,163 @@
+using System.ComponentModel;
+
+namespace JT809.Protocol.Enums
+{
+ ///
+ /// 业务数据类型标识
+ /// 数据交换一协议规定的业务数据类型名称和标识常量定义见表 73。业务数据类型标识的命名规则如下:
+ /// a) 上级平台向下级平台发送的请求消息,一般以“DOWN_”开头,以后缀_REQ 结尾;而下级平台向上级平台发送的请求消息一般以“UP_”开头,以后缀_REQ 结尾;
+ /// b) 当上下级平台之间有应答消息情况下,应答消息可继续沿用对应的请求消息开头标识符,而通过后缀 RSP 来标识结尾。
+ ///
+ public enum BusinessType : ushort
+ {
+ #region 链路管理类
+ ///
+ ///主链路登录请求消息
+ ///
+ [Description("主链路登录请求消息")]
+ UP_CONNECT_REQ = 0x1001,
+ ///
+ ///主链路登录应答消息
+ ///
+ [Description("主链路登录应答消息")]
+ UP_CONNECT_RSP = 0x1002,
+ ///
+ ///主链路注销请求消息
+ ///
+ [Description("主链路注销请求消息")]
+ UP_DISCONNECT_REQ = 0x1003,
+ ///
+ ///主链路注销应答消息
+ ///
+ [Description("主链路注销应答消息")]
+ UP_DISCONNECT_RSP = 0x1004,
+ ///
+ ///主链路连接保持请求消息
+ ///
+ [Description("主链路连接保持请求消息")]
+ UP_LINKTEST_REQ = 0x1005,
+ ///
+ ///主链路连接保持应答消息
+ ///
+ [Description("主链路连接保持应答消息")]
+ UP_LINKTEST_RSP = 0x1006,
+ ///
+ ///主链路断开通知消息
+ ///
+ [Description("主链路断开通知消息")]
+ UP_DISCONNECT_INFORM = 0x1007,
+ ///
+ ///下级平台主动关闭链路通知消息
+ ///
+ [Description("下级平台主动关闭链路通知消息")]
+ UP_CLOSELINK_INFORM = 0x1008,
+ ///
+ ///从链路连接请求消息
+ ///
+ [Description("从链路连接请求消息")]
+ DOWN_CONNECT_REQ = 0x9001,
+ ///
+ ///从链路连接应答消息
+ ///
+ [Description("从链路连接应答消息")]
+ DOWN_CONNECT_RSP = 0x9002,
+ ///
+ ///从链路注销请求消息
+ ///
+ [Description("从链路注销请求消息")]
+ DOWN_DISCONNECT_REQ = 0x9003,
+ ///
+ ///从链路注销应答消息
+ ///
+ [Description("从链路注销应答消息")]
+ DOWN_DISCONNECT_RSP = 0x9004,
+ ///
+ ///从链路连接保持请求消息
+ ///
+ [Description("从链路连接保持请求消息")]
+ DOWN_LINKTEST_REQ = 0x9005,
+ ///
+ ///从链路连接保持应答消息
+ ///
+ [Description("从链路连接保持应答消息")]
+ DOWN_LINKTEST_RSP = 0x9006,
+ ///
+ ///从链路断开通知消息
+ ///
+ [Description("从链路断开通知消息")]
+ DOWN_DISCONNECT_INFORM = 0x9007,
+ ///
+ ///上级平台主动关闭链路通知消息
+ ///
+ [Description("上级平台主动关闭链路通知消息")]
+ DOWN_CLOSELINK_INFORM = 0x9008,
+ #endregion
+ #region 信息统计类
+ ///
+ ///接收定位信息数量通知消息
+ ///
+ [Description("接收定位信息数量通知消息")]
+ DOWN_TOTAL_RECV_BACK_MSG = 0x9101,
+ #endregion
+ #region 车辆动态信息交换
+ ///
+ ///主链路动态信息交换消息
+ ///
+ [Description("主链路动态信息交换消息")]
+ UP_EXG_MSG = 0x1200,
+ ///
+ ///从链路动态信息交换消息
+ ///
+ [Description("从链路动态信息交换消息")]
+ DOWN_EXG_MSG = 0x9200,
+ #endregion
+ #region 平台间信息交互类
+ ///
+ ///主链路平台间信息交互消息
+ ///
+ [Description("主链路平台间信息交互消息")]
+ UP_PLATFORM_MSG = 0x1300,
+ ///
+ ///从链路平台间信息交互消息
+ ///
+ [Description("从链路平台间信息交互消息")]
+ DOWN_PLATFORM_MSG = 0x9300,
+ #endregion
+ #region 车辆报警信息交互类
+ ///
+ ///主链路报警信息交互消息
+ ///
+ [Description("主链路报警信息交互消息")]
+ UP_WARN_MSG = 0x1400,
+ ///
+ ///从链路报警信息交互消息
+ ///
+ [Description("从链路报警信息交互消息")]
+ DOWN_WARN_MSG = 0x9400,
+ #endregion
+ #region 车辆监管类
+ ///
+ ///主链路车辆监管消息
+ ///
+ [Description("主链路车辆监管消息")]
+ UP_CTRL_MSG = 0x1500,
+ ///
+ ///从链路车辆监管消息
+ ///
+ [Description("从链路车辆监管消息")]
+ DOWN_CTRL_MSG = 0x9500,
+ #endregion
+ #region 车辆静态信息交换类
+ ///
+ ///主链路静态信息交换消息
+ ///
+ [Description("主链路静态信息交换消息")]
+ UP_BASE_MSG = 0x1600,
+ ///
+ ///从链路静态信息交换消息
+ ///
+ [Description("从链路静态信息交换消息")]
+ DOWN_BASE_MSG = 0x9600,
+ #endregion
+ }
+}
diff --git a/src/JT809.Protocol/Enums/SubBusinessType.cs b/src/JT809.Protocol/Enums/SubBusinessType.cs
new file mode 100644
index 0000000..18ca14a
--- /dev/null
+++ b/src/JT809.Protocol/Enums/SubBusinessType.cs
@@ -0,0 +1,260 @@
+using System.ComponentModel;
+
+namespace JT809.Protocol.Enums
+{
+ ///
+ ///子业务类型标识
+ ///
+ public enum SubBusinessType : ushort
+ {
+ #region 主链路动态信息交换消息 UP_EXG_MSG
+ ///
+ /// 上传车辆注册信息
+ ///
+ [Description("上传车辆注册信息")]
+ UP_EXG_MSG_REGISTER = 0x1201,
+ ///
+ ///实时上传车辆定位信息
+ ///
+ [Description("实时上传车辆定位信息")]
+ UP_EXG_MSG_REAL_LOCATION = 0x1202,
+ ///
+ ///车辆定位信息自动补报
+ ///
+ [Description("车辆定位信息自动补报")]
+ UP_EXG_MSG_HISTORY_LOCATION = 0x1203,
+ ///
+ ///启动车辆定位信息交换应答
+ ///
+ [Description("启动车辆定位信息交换应答")]
+ UP_EXG_MSG_RETURN_STARTUP_ACK = 0x1205,
+ ///
+ ///结束车辆定位信息交换应答
+ ///
+ [Description("结束车辆定位信息交换应答")]
+ UP_EXG_MSG_RETURN_END_ACK = 0x1206,
+ ///
+ ///申请交换指定车辆定位信息请求
+ ///
+ [Description("申请交换指定车辆定位信息请求")]
+ UP_EXG_MSG_APPLY_FOR_MONITOR_STARTUP = 0x1207,
+ ///
+ ///取消交换指定车辆定位信息请求
+ ///
+ [Description("取消交换指定车辆定位信息请求")]
+ UP_EXG_MSG_APPLY_FOR_MONITOR_END = 0x1208,
+ ///
+ ///补发车辆定位信息请求
+ ///
+ [Description("补发车辆定位信息请求")]
+ UP_EXG_MSG_APPLY_HISGNSSDATA_REQ = 0x1209,
+ ///
+ ///上报车辆驾驶员身份识别信息应答
+ ///
+ [Description("上报车辆驾驶员身份识别信息应答")]
+ UP_EXG_MSG_REPORT_DRIVER_INFO_ACK = 0x120A,
+ ///
+ ///上报车辆电子运单应答
+ ///
+ [Description("上报车辆电子运单应答")]
+ UP_EXG_MSG_TAKE_EWAYBILL_ACK = 0x120B,
+ ///
+ ///主动上报驾驶员身份信息
+ ///
+ [Description("主动上报驾驶员身份信息")]
+ UP_EXG_MSG_REPORT_DRIVER_INFO = 0x120C,
+ ///
+ ///主动上报车辆电子运单信息
+ ///
+ [Description("主动上报车辆电子运单信息")]
+ UP_EXG_MSG_REPORT_EWAYBILL_INFO = 0x120D,
+ #endregion
+
+ #region 从链路动态信息交换消息 DOWN_EXG_MSG
+ ///
+ ///交换车辆定位信息
+ ///
+ [Description("交换车辆定位信息")]
+ DOWN_EXG_MSG_CAR_LOCATION = 0x9202,
+ ///
+ ///车辆定位信息交换补发
+ ///
+ [Description("车辆定位信息交换补发")]
+ DOWN_EXG_MSG_HISTORY_ARCOSSAREA = 0x9203,
+ ///
+ ///交换车辆静态信息
+ ///
+ [Description("交换车辆静态信息")]
+ DOWN_EXG_MSG_CAR_INFO = 0x9204,
+ ///
+ ///启动车辆定位信息交换请求
+ ///
+ [Description("启动车辆定位信息交换请求")]
+ DOWN_EXG_MSG_RETURN_STARTUP = 0x9205,
+ ///
+ ///结束车辆定位信息交换请求
+ ///
+ [Description("结束车辆定位信息交换请求")]
+ DOWN_EXG_MSG_RETURN_END = 0x9206,
+ ///
+ ///申请交换指定车辆定位信息应答
+ ///
+ [Description("申请交换指定车辆定位信息应答")]
+ DOWN_EXG_MSG_APPLY_FOR_MONITOR_STARTUP_ACK = 0x9207,
+ ///
+ ///取消交换指定车辆定位信息应答
+ ///
+ [Description("取消交换指定车辆定位信息应答")]
+ DOWN_EXG_MSG_APPLY_FOR_MONITOR_END_ACK = 0x9208,
+ ///
+ ///补发车辆定位信息应答
+ ///
+ [Description("补发车辆定位信息应答")]
+ DOWN_EXG_MSG_APPLY_HISGNSSDATA_ACK = 0x9209,
+ ///
+ ///上报车辆驾驶员身份识别信息请求
+ ///
+ [Description("上报车辆驾驶员身份识别信息请求")]
+ DOWN_EXG_MSG_REPORT_DRIVER_INFO = 0x920A,
+ ///
+ ///上报车辆电子运单请求
+ ///
+ [Description("上报车辆电子运单请求")]
+ DOWN_EXG_MSG_TAKE_EWAYBILL_REQ = 0x920B,
+ #endregion
+
+ #region 主链路平台信息交互消息 UP_PLATFORM_MSG
+ ///
+ ///平台查岗应答
+ ///
+ [Description("平台查岗应答")]
+ UP_PLATFORM_MSG_POST_QUERY_ACK = 0x1301,
+ ///
+ ///下发平台间报文应答
+ ///
+ [Description("下发平台间报文应答")]
+ UP_PLATFORM_MSG_INFO_ACK = 0x1302,
+ #endregion
+
+ #region 从链路平台信息交互消息 DOWN_PLATFORM_MSG
+ ///
+ ///平台查岗请求
+ ///
+ [Description("平台查岗请求")]
+ DOWN_PLATFORM_MSG_POST_QUERY_REQ = 0x9301,
+ ///
+ ///下发平台间报文请求
+ ///
+ [Description("下发平台间报文请求")]
+ DOWN_PLATFORM_MSG_INFO_REQ = 0x9302,
+ #endregion
+
+ #region 主链路报警信息交互消息 UP_WARN_MSG
+ ///
+ ///报警督办应答
+ ///
+ [Description("报警督办应答")]
+ UP_WARN_MSG_URGE_TODO_ACK = 0x1401,
+ ///
+ ///上报报警信息
+ ///
+ [Description("上报报警信息")]
+ UP_WARN_MSG_ADPT_INFO = 0x1402,
+ ///
+ ///主动上报报警处理结果信息
+ ///
+ [Description("主动上报报警处理结果信息")]
+ UP_WARN_MSG_ADPT_TODO_INFO = 0x1403,
+ #endregion
+
+ #region 从链路报警信息交互消息 DOWN_WARN_MSG
+ ///
+ ///报警督办请求
+ ///
+ [Description("报警督办请求")]
+ DOWN_WARN_MSG_URGE_TODO_REQ = 0x9401,
+ ///
+ ///报警预警
+ ///
+ [Description("报警预警")]
+ DOWN_WARN_MSG_INFORM_TIPS = 0x9402,
+ ///
+ ///实时交换报警信息
+ ///
+ [Description("实时交换报警信息")]
+ DOWN_WARN_MSG_EXG_INFORM = 0x9403,
+ #endregion
+
+ #region 主链路车辆监管消息 UP_CTRL_MSG
+ ///
+ ///车辆单向监听应答
+ ///
+ [Description("车辆单向监听应答")]
+ UP_CTRL_MSG_MONITOR_VEHICLE_ACK = 0x1501,
+ ///
+ ///车辆拍照应答
+ ///
+ [Description("车辆拍照应答")]
+ UP_CTRL_MSG_TAKE_PHOTO_ACK = 0x1502,
+ ///
+ ///下发车辆报文应答
+ ///
+ [Description("下发车辆报文应答")]
+ UP_CTRL_MSG_TEXT_INFO_ACK = 0x1503,
+ ///
+ ///上报车辆行驶记录应答
+ ///
+ [Description("上报车辆行驶记录应答")]
+ UP_CTRL_MSG_TAKE_TRAVEL_ACK = 0x1504,
+ ///
+ ///车辆应急接入监管平台应答消息
+ ///
+ [Description("车辆应急接入监管平台应答消息")]
+ UP_CTRL_MSG_EMERGENCY_MONITORING_ACK = 0x1505,
+ #endregion
+
+ #region 从链路车辆监管消息 DOWN_CTRL_MSG
+ ///
+ ///车辆单向监听请求
+ ///
+ [Description("车辆单向监听请求")]
+ DOWN_CTRL_MSG_MONITOR_VEHICLE_REQ = 0x9501,
+ ///
+ ///车辆拍照请求
+ ///
+ [Description("车辆拍照请求")]
+ DOWN_CTRL_MSG_TAKE_PHOTO_REQ = 0x9502,
+ ///
+ ///下发车辆报文请求
+ ///
+ [Description("下发车辆报文请求")]
+ DOWN_CTRL_MSG_TEXT_INFO = 0x9503,
+ ///
+ ///上报车辆行驶记录请求
+ ///
+ [Description("上报车辆行驶记录请求")]
+ DOWN_CTRL_MSG_TAKE_TRAVEL_REQ = 0x9504,
+ ///
+ ///车辆应急接入监管平台请求消息
+ ///
+ [Description("车辆应急接入监管平台请求消息")]
+ DOWN_CTRL_MSG_EMERGENCY_MONITORING_REQ = 0x9505,
+ #endregion
+
+ #region 主链路静态信息交换消息 UP_BASE_MSG
+ ///
+ ///补报车辆静态信息应答
+ ///
+ [Description("补报车辆静态信息应答")]
+ UP_BASE_MSG_VEHICLE_ADDED_ACK = 0x1601,
+ #endregion
+
+ #region 从链路静态信息交换消息 DOWN_BASE_MSG
+ ///
+ ///补报车辆静态信息请求
+ ///
+ [Description("补报车辆静态信息请求")]
+ DOWN_BASE_MSG_VEHICLE_ADDED = 0x9601,
+ #endregion
+ }
+}
diff --git a/src/JT809.Protocol/JT809.Protocol.csproj b/src/JT809.Protocol/JT809.Protocol.csproj
new file mode 100644
index 0000000..72764a6
--- /dev/null
+++ b/src/JT809.Protocol/JT809.Protocol.csproj
@@ -0,0 +1,7 @@
+
+
+
+ netstandard2.0
+
+
+