写通信协议遇到的问题
来源:互联网 发布:sd卡检测软件 编辑:程序博客网 时间:2024/04/30 02:27
一、在通信协议中需要有结束符
1、原因根据结束符判断帧的结束。
2、如果帧的数据丢失,结束符可以保证帧不会错误
二、在通信中使用结束符后必然有一个字符不能使用
解决办法:转义。
比如将b作为结束符,b转义成a1
再将a转成a2
转义之后在帧中就不会出现b,而出现的a全部转成a2
三、当收到帧处理的方式不同需要调用不同的函数。
解决办法:回调函数注册(传递的参数是变化的,可以传结构体指针)。
四、当发送帧后有些需要应答,有些不要应答。
解决办法:
1、写两种发送函数,一种是需要应答的,一种是不需要应答的,根据需要调用。
需要应答的就死等应答成功。超时重新发送。(不可能有执行不成功的情况)
2、将发送分成两种,一种是需要应答的;一种是放到发送缓冲中,等串口空闲是调用发送。
需要应答的也是死等发送,超时没收到应答重新发送。
五、通信协议中有部分资源是共享的,使用这些资源是需要互斥。
共享的资源:发送串口,发送缓冲。
- 写通信协议遇到的问题
- 写论文遇到的问题
- 写小程序遇到的问题
- 写内存池时遇到的问题
- DocBook写blog遇到的问题
- 写程序都会遇到的问题, DPI
- 客户端写博客遇到的问题
- 写魔兽改键时遇到的问题
- 疑问:自己写代码遇到的问题
- 写js遇到的一些问题
- ini文件写入时遇到的问题
- android写udp遇到的一些问题
- D3DLOCK写纹理遇到的问题
- 写Spider中遇到的问题
- 今天写程序遇到的一些问题
- 这几天写java遇到的问题
- 写android service遇到的问题
- 写第一个VC++遇到的问题
- 常识
- Java根据word模板生成word文档之设计详细思路---word标签定义
- 编程基础增加篇 对象的四大引用 SoftReference
- 如何用javascript动态修改css文件
- 浅谈Android ListView 异步图片获取
- 写通信协议遇到的问题
- Coins(P1742)数量背包
- Oracle日志查看
- window.location.href和window.location.replace的区别
- MT3DMS软件的发展及其应用
- 关于atoi字符串转换成int整数的一些问题
- 关于测试中常用到的一些方法、策略总结
- 《Microsoft SQL Server 2008 Analysis Services Step by Step》学习笔记一:入门[blog.sina.com.cn--川北小哥]
- 菜鸟学堂 -【Oracle 时间 一】