# JT808-sharp **Repository Path**: manongdoudou/JT808 ## Basic Information - **Project Name**: JT808-sharp - **Description**: 北斗导航部标808通信协议,支持2013、2019版本的报文解析 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 9 - **Created**: 2024-04-07 - **Last Updated**: 2024-04-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JT808解析库 #### 介绍 北斗导航部标808通信协议解析库,支持2013、2019版本 #### 项目结构说明 ### Applications - JT808Gateway - JT808协议网关服务,监听->接收->解析->响应的载体 - JT808Tool - JT808工具桌面端程序,目前只包含文本解析功能(其他功能待新增) - UniTests - 单元测试项目 - WebviewAppShared - Blazor共享页面,供桌面端和Web端使用 ### JT808Protocol(协议解析) - JT808Protocol.Abstract - 抽象类和接口 - JT808Protocol.Common - 协议公共类 - JT808Protocol.Handlers - 终端请求指令的响应类,一般根据请求返回特定MsgId的数据包 - JT808Protocol.Methods - 抽象类和接口的实现,以及其他方法 - JT808Protocol.Models - JT808消息头,消息体的定义类以及具体解析方法 #### 使用说明 **组包** ```csharp //构造消息体 var bodyRegister = new DpDevRegisterResponse_0x8100 { SerialNum = reqPkg.Header.SerialNumber, Result = EnumDevRegisterType.成功, //默认返回设备注册成功 AuthenticationCode = "" }; //参数依次为:消息类型、终端sim卡号、终端请求流水号、消息体 JT808Package package = new JT808Package((ushort)EnumMsgType.终端注册应答,reqPkg.Header.SimNumber,reqPkg.Header.SerialNumber, bodyRegister); ``` **解包** ```csharp //808-2013或2019协议数据原始文本 var str = "7E,07,02,00,44,04,00,46,25,09,40,01,C2,00,33,37,30,33,30,35,31,39,37,34,30,33,30,39,33,37,31,58,00,00,33,37,30,33,30,35,31,39,37,34,30,33,30,39,33,37,31,58,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,06,CA,AF,BC,D2,D7,AF,D9,7E"; //初始化解析类 JT808Parser jtSerializer = new JT808Parser(); //解析为JT808Package实例 var package = jtSerializer.Parse(str); ``` **序列化** *16进制字符串* ```csharp string strHex = package.ToHexString(); // output: 7E800137343033303933373158007E ```