自定义传输协议

     

         项目若中用到http等协议是不需要自己解码,直接WCF就完成了解包和封包的工作。但是有时候项目中的程序需要与设备通讯,对实时性要求高的时候 已有的这些协议已经不适用了。这个时候就需要自己来定义一套使用。sokect模型获取的数据后就按照自己定义的协议来解析。包含了包头、包尾、命令域、数据长度、数据、校验区等部分。下面通过例子说明具体的情况。

案列协议一

包头包尾:表示数据的开始和结束的标记。解析时先解析头尾。

命令域:设备或其他客户端发的消息都会有不同命令码,其实就是请求和应答模式中所有一个请求就要有一个命令码,以区分是哪个请求。比如客户端发出了上厕所和吃饭两个请求,此时就按照命令码来区分了。要不然得到请求后你怎么知道是带去洗手间还是餐厅。另外请求和应答的命令码可一样也可不一样。写成不一样时区可一眼看出是从哪一端发出的消息。

数据长度域和数据域:保存了数据的内容和长度,解析时候需要校验数据的实际长度是否等于存的长度值.

校验域:校验中存了整个消息包的每个字节的和,溢出的部分不计。

  案列协议二

 

  这里的数据协议相对于协议一多了一个设备序列号,这个地方主要是为了区分从哪个设备发出。有的地方也将此设备序列号放入 数据域来使用。

案列协议三

这里的数据协议相对于协议一多了一个命令号,主要是想通过命令号来知道同样的两条消息的先后顺序。

 

转载于:https://www.cnblogs.com/musexiaoluo/p/5922876.html

ROS(机器人操作系统)是一款成熟的机器人操作系统,具有完备的生态体系,未来的发展意义可以成为机器人届中的”Linux、Android“。机器人的开发学习要综合软硬件的协同开发,硬件开发有些部分倾向于底层的设计和使用。软件开发可以依托C++、PYTHON等高级语言进行ROS接口应用开发,或者兼容ROS系统。本系列的ROS开发课程包含下位机开发、上位机开发、基于MBD(基于模型设计的开发)等。下位机作为机器人设计的基础部分是学习机器人操作系统必经之路,下位机我们通常会选择Arduino(适合学习不适合工程,代码执行效率差)、STM32系列产品(工程应用广泛,适合学习和工程开发,代码针对性强),当然还有NXP系列、51系列、TI DSP等,后期可以根据产品的性能和成本要求去考虑;上位机部分,主要是基于工控机、树莓派Raspberry、英伟达Jetson等可以运行操作系统的嵌入式设备再基于ROS操作系统进行实训学习。网络上对于ROS类的教学比较多,但是系统化从底层向高阶层层递升的教学方法偏少,知识碎片化严重,对机器人开发工程师深远的发展有负面影响,基于此本人通过多年自身的学习和工程实践,将机器人开发课程系统化、具象化、模块化地引导式学习,每节课程都有相应的课件和代码引导。对致力于机器人事业的学生有推动作用,且增强信心,系统化自己的机器人知识。为自己的职业规划和事业发展奠定坚实基础。最后,你们的支持,就是老师不断创作的动力!老师会不断更新机器人类相关知识,希望”与子同裳“。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值