呵呵,这个东西困扰了几天,今天又发现一个BUG,查询资料的过程中遇到的都是项目推广的东西,没几篇帖子认真的仔细的说说怎么来解析,好不容易弄出来了,发出来大家参考一下!!!
只是简单的模拟一下解析的过程,如果你还需要更为详细的GPS框架实现,可能你还要多查查资料了。。。
假定模块发送的数据是:

byte tmpBytes = new byte[]
{
0x7E, 0x02, 0x00, 0x00, 0x3C, 0x01, 0x56, 0x09, 0x52, 0x25, 0x04, 0x3C, 0x78, 0x00, 0x00, 0x00, 0x00,
0x00, 0x0C, 0x00, 0xC3, 0x02, 0x49, 0x8B, 0x68, 0x06, 0x52, 0xBC, 0xF0, 0x04, 0x65, 0x00, 0x00, 0x00,
0xAA, 0x16, 0x08, 0x20, 0x16, 0x27, 0x18, 0x01, 0x04, 0x00, 0x03, 0x07, 0xBC, 0x02, 0x02, 0x01, 0x32,
0x03, 0x02, 0x00, 0x00, 0x25, 0x04, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x04, 0x00, 0x00, 0x00, 0x00, 0x30,
0x01, 0x18, 0x31, 0x01, 0x08, 0x57, 0x7E
};
然后服务端收到的数据转为字符后结果如下(此过程转换方法见方法1):
7E0200003C0156095225043C7800000000000C00C302498B680652BCF00465000000AA1608201627180104000307BC02020132030200002504000000002B0400000000300118310108577E

然后在解析过程中需要参考JT808协议,这个网上有相应的pdf文件,http://www.jt808.com/?p=893 可以参考这个,通过这个说说附加属性的解析过程:

也就是上方数据的这一部分:
0104000307BC02020132030200002504000000002B0400000000300118310108577E

类似于 经纬度、速度等参考协议文档就可以看明白了,难点在附加参数这里,有一些误区:
相对里程:
ID 01 附加长度04 即相对应的值长度为4 值:00 03 07 BC(解析的值是这一部分 前面的都是定格式的参数) 注意这是DWORD ToInt32

油耗:
ID 02 附加长度 02 相对于的值长度为2 值:01 32 注意这是WORD 转的时候转为Toint16 结果为306

转的时候注意是通过Byte数组转 直接通过“0132”的字符串肯定是错误的

附:方法1
public static string 方法1(byte[] bytes)
{
string result = "";
if (bytes != null)
{
for (int i = 0; i < bytes.Length; i++)
{
result += bytes[i].ToString("X2");
}
}
return result;
}

上图的资源来源于http://www.jt808.com/?p=893 这里,感谢,大家也可以参考这里的相关资料

转载于:https://blog.51cto.com/xiaohanlaila/2049385

基于JT/T808 协议的GPS解析分享 C#相关推荐

  1. 808协议 java_基于JT/T808协议的车辆监控平台架构方案

    技术支持QQ:78772895 1.车载终端协议网关采用mina/netty+spring架构,独立于其他应用,主要负责维护接入终端的tcp链接.上行以及下行消息的解码.编码.流量控制,黑白名单等安全 ...

  2. 基于JT/T808协议的车联网平台架构方案

    平台基于(<JT/T808-2011道路运输车辆卫星定位系统终端通讯协议及数据格式>.<JT/T808-2013道路运输车辆卫星定位系统北斗兼容车载终端通讯协议技术规范>.JT ...

  3. 部标JT808 JT/T808协议网关

    项目介绍 基于Netty,实现JT808 JT/T808部标协议的消息处理,与编码解码: 使用SpringBoot + MyBatis提供数据入库.Web接口服务: 协议部分不依赖Spring,可移除 ...

  4. JT/T808协议之:0x0001终端通用应答和0x8001平台通用应答

    终端是指obd设备,既车载obd设备. 平台是指上文中说到的通过短信设置的上报IP指向的机器所提供的网关服务. 这两种消息一是终端设备发出的,一是平台发出的,都是通用应答的格式,所谓通用既是可以用于应 ...

  5. c语言jt808协议库,平台如何应答——关于JT/T808协议

    前两篇也说明了一些应答的相关内容,对于刚接触的开发者来说恐怕还是不太容易理解,这里专门列举一个篇幅来讲解如何针对终端设备上报的信息进行应答. 严格来讲,如果不应答,终端设备会判别为服务平台断开连接,就 ...

  6. JT/T808消息体转义

    JT/T808消息体转义 前言 C#实现 C#转义实现 C#反转义实现 Java实现 JAVA 转义实现 JAVA 反转义实现 前言 在网络传输过程中会存在粘包.半包等问题,在各个厂家做物联网产品的时 ...

  7. 基于TCP协议的GPS定位器设备迁移到阿里云IoT物联网平台实践——实践类

    背景 GPS定位器是内置了GPS模块和移动通信模块的终端,用来将GPS模块获得的定位数据通过移动通信模块传至Internet上的一台服务器上,从而可以实现在电脑或手机上查询终端位置. GPS定位器可用 ...

  8. 组件分享之后端组件——基于Golang实现的基于LDAP V3协议的操作包ldap

    组件分享之后端组件--基于Golang实现的基于LDAP V3协议的操作包ldap 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续 ...

  9. python模拟gps定位_python解析nmea0183协议获取GPS定位信息

    python解析nmea0183协议获取GPS定位信息 nmea0183协议里面定位数据主要在GPRMC报文里面,下面是报文的大体形式: b'$GPRMC,111025.00,A,2517.03374 ...

最新文章

  1. 2017年中国自动驾驶最全产业研究报告 99页
  2. NetworkOnMainThreadException异常
  3. slf4j 和 log4基础入门(Maven配置)
  4. 003_隐藏和显示效果
  5. ActiveMQ中Topic生产者
  6. 03Prism WPF 入门实战 - Region
  7. 机器学习分类与性能度量
  8. Python案例:GUI用户注册信息管理系统
  9. 1w用户的并发量多大_QQ邮件订阅中心下线:卢松松博客曾经有1W多订阅用户
  10. flutter popup
  11. IO模型《二》阻塞IO
  12. lwip协议栈实现服务器端主动发送,API函数及编程实例《LwIP协议栈源码详解—TCP/IP协议的实现》...
  13. 【PS平面设计教程】6种最常用抠图技巧,十万人都抢着收藏
  14. 安装完永中office2009不能正常启动
  15. 异常信息:Unable to update index for aliyun|http://maven.aliyun.com/nexus/content/groups/public/ 解决方法
  16. Linux Capability探索实验
  17. linux 修改hosts立即生效设置
  18. Docker之使用maven插件【配置方式】构建并推送镜像到私有仓库
  19. 微信小程序怎么推广运营-微信小程序引流方法
  20. 微信公众平台开发(六) 翻译功能开发

热门文章

  1. java中如何使用jdk_java – 如何在JDK7中使用目录globbing
  2. deque stack java_一文弄懂java中的Queue家族
  3. 电商扣减库存_电商系统秒杀架构设计
  4. san分布式共享文件系统_【最强科普】一文读懂分布式存储
  5. 避免将 props 的值复制给 state!
  6. 介绍全新的 JSX 转换
  7. git 编辑提交的技巧
  8. python合并文件夹下的文件_Python实现合并同一个文件夹下所有PDF文件的方法示例...
  9. mysql 数据库连接不够_一个Web报表项目的性能分析和优化实践(二):MySQL数据库连接不够用(TooManyConnections)问题的一次分析和解决案例...
  10. mysqlinnodb教程_MySQL创建数据表时设定引擎MyISAM/InnoDB操作