前言
什么是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就能看到,但大部分人都忽视了,所以我把说明文档也列出来
JTT808协议解析数据相关问题 python
关于传输的到底是什么玩意儿
这个问题是困扰了我最久的问题。看了协议之后我脑子里真的是一片空白,只知道终端传过来的玩意儿是一串的字节,相当于是二进制流那种东西。事实证明也确实是如此,我用上述的开源系统接收了对方公司发过来的数据,print出来的就是一串看不懂的乱码,就是二进制流。
我就觉得对方公司发过来的应该就是二进制流,然后我就完全不知道该怎么办了。
其实我走到了一个误区,虽然人家发过来的是二进制流,但是人家终端机器不可能直接写一堆0101什么的玩意儿就给平台发,人家的终端肯定也是有程序的,肯定不可能会直接写二进制流。
这个问题真的是困扰了我蛮久,我试图在网上找到终端机器
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/98738.html