SmallChi / JT808Gateway

JT/T808 Gateway,JT808 Gateway, GB808 Gateway(support 2011, 2013, 2019 version) JT/T808网关、JT808网关、GB808网关(支持2011、2013、2019版本)
MIT License
183 stars 117 forks source link

如何在编解码中添加自定义的编解码 #2

Closed AchaInChina closed 5 years ago

AchaInChina commented 5 years ago

大神,基于JT808DotNetty做主动安全的协议,里面的附件上传是码流方式,和信令是一个通道。原本想做一个拓展库,发现 AddJT808TcpNettyHost 这个方法里面用到类很多是internal。我想做的是在解码中再插入一个分隔符“0x30 0x31 0x63 0x64”,现在看来只有修改源码了吗?

SmallChi commented 5 years ago

你这个相当于是自定义的808消息吗?

AchaInChina commented 5 years ago

1564628944(1) 这是协议描述,这个协议要和808走同一个通道:附件服务器也有808指令。

SmallChi commented 5 years ago

这个不走808的吧,这个应该是另外一个附件服务器的网关吧 流程应该是从平台下发808指令,然后设备应答成功后,设备主动往附件服务器发数据

AchaInChina commented 5 years ago

image 开始我也是这么想的,但是这个协议制定者不知道怎么想的,附件服务器要跑808指令。

AchaInChina commented 5 years ago

1078就比较规范,流媒体网关直走码流数据,主动安全是苏标的。

SmallChi commented 5 years ago

这个也好弄呀 可以参考1078的808指令部分 然后网关已经有自定义消息接口或者实现自定义消息handler注册这个消息 很方便的 都已经想到了

AchaInChina commented 5 years ago

指令部分我拓展完了呀,参考的1078,这个码流让我蛋疼了,我不想改源码,想通过拓展的方式来做。

AchaInChina commented 5 years ago

image

SmallChi commented 5 years ago

那也不需要在解码的时候插入呀

SmallChi commented 5 years ago

形如:7E1211...data...30316364...data...7E 因为是基于808的 相当于解码器里面就存个byte[]就好了呀

AchaInChina commented 5 years ago

在哪里加比较合适呀, image

SmallChi commented 5 years ago

有没有原始数据包,抓下来看看就知道了 😄

AchaInChina commented 5 years ago

能不能在箭头里面插入一个“30 31 63 64”分割符串来实现,还是自己手动解码。现在还木有,数据格式应该是这样的,7e data 7e | 30 31 63 64 data | 7e data 7e ,码流数据不是808的协议组包,和1078的rtp类似。

SmallChi commented 5 years ago

不行吧 你最好先拿原始数据看分析下 应该不是你想的这样吧 😁 有协议文档吗? 我看一下

AchaInChina commented 5 years ago

有协议文档,怎么打给你啊,大神!

SmallChi commented 5 years ago

你放到github或者百度分享也可以呀 😂

AchaInChina commented 5 years ago

https://github.com/AchaInChina/Doc 这里是协议,大神你看看是不是我的思路出问题还是它协议是这么整的。

SmallChi commented 5 years ago

你理解错了 😭

AchaInChina commented 5 years ago

啊!它说的是怎么弄得!

SmallChi commented 5 years ago

流程是这样 1.首先设备收到0x0200定位包,在附加信息里面看报警标识位-表 4-16 报警标识号格式 里面有(该报警对应的附件数量) 2.判断有无附件数量这个状态位,有就要下发对应的0x9208报警附件上传指令(该指令就有对应的附件服务器地址) 3.附件服务器就负责处理存储文件

AchaInChina commented 5 years ago

这几个消息:1.报警附件信息消息,2.文件信息上传,3.文件上传完成消息,4.文件上传完成消息应答,都是在指令服务器做的? 举例比方文件上传完成消息 image 这里面明确写着要发给附件服务器,难道它这里写错了?

SmallChi commented 5 years ago

不是呀,文档有说明了报文类型:信令数据报文 在文档开头 4.1 协议基本约定 协议中信令数据报文的通信连接方式按照 JT/T 808-2011 中第 5 章的要求。 那也就意味着是跟808网关打交道

AchaInChina commented 5 years ago

--!大神,我再看看!

SmallChi commented 5 years ago

真的 其实跟1078是一样的流程 在仔细看看

AchaInChina commented 5 years ago

第一时间也是觉得应该和1078一样,这个文档有歧义,如果是这样那就简单,附件服务器存粹多了。感谢大神解答!