JTT808协议解析数据相关问题 python

前言

由于公司业务需要对接某公司gps终端设备的定位信息,所以我走入了jtt808协议的大坑。而由于对这方面东西的不了解,导致我两眼一抹黑,完全不知道怎么办了。
也许你和我一样是一只新手,看了看jtt808协议之后还是觉得一个头有两个大,一无所获。那么,这篇文章也许可以帮到你。

什么是jtt808协议?

协议原文应该很好找到,我这里就不赘述了,我就简单说一下我遇到的问题。

关于通信方式

协议说:

“本协议采用的通信方式应符合JT/T 808 中的相关规定。通信协议采用TCP或UDP,平台作为服务器端,终端作为客户端。当数据通信链路异常时,终端可以采用SMS消息方式进行通信。”

我一看,这就是什么都没说嘛,通过这段话我只知道TCP或者UDP都能传,还有一种SMS消息的通信方式。具体到底是用的什么传的呢?抱歉,这个问题我跑去问我的合作公司,他们并没有告诉我,只是简单粗暴地让我提供一个ip地址和一个端口给他。于是我还是一头雾水。实际上一般的传输方法是TCP长连接,就是socket传输
对于python来说,可以使用asyncore这个库来实现。具体可以参照git上的这个项目:https://github.com/land-pack/jtt808
这个项目还有一个说明文档,点击how it work就能看到,但大部分人都忽视了,所以我把说明文档也列出来
https://blog.csdn.net/u011767611/article/details/50497709

关于传输的到底是什么玩意儿

这个问题是困扰了我最久的问题。看了协议之后我脑子里真的是一片空白,只知道终端传过来的玩意儿是一串的字节,相当于是二进制流那种东西。事实证明也确实是如此,我用上述的开源系统接收了对方公司发过来的数据,print出来的就是一串看不懂的乱码,就是二进制流。
我就觉得对方公司发过来的应该就是二进制流,然后我就完全不知道该怎么办了。
其实我走到了一个误区,虽然人家发过来的是二进制流,但是人家终端机器不可能直接写一堆0101什么的玩意儿就给平台发,人家的终端肯定也是有程序的,肯定不可能会直接写二进制流。
这个问题真的是困扰了我蛮久,我试图在网上找到终端机器

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值