| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1383 人关注过本帖
标题:这样的通讯协议应该怎样写?描述通讯协议的一般方法是?
取消只看楼主 加入收藏
yyf8421bcd
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2017-1-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:0 
这样的通讯协议应该怎样写?描述通讯协议的一般方法是?
目前正在操作某模块
该某块用串口方式操作
命令格式如下
1.同步头 三个字节 固定
2.命令 一个字节
3.执行部件号码 一个字节
4.命令参数 不同的命令,参数个数不同,最多八个字节
5.校验码 是命令字节数,执行部件号码和命令参数字节数的和的异或值,一个字节

我想把这个通讯协议和发送命令的代码封装到一个C程序头文件和源文件里,该用怎么样的方式写才能达到
1.方便修改具体命令对应的值
2.方便主程序发送命令和数据
的目的?


本来我想采用结构体来统一表述之前提到的命令格式,代码如下:
typedef struct
{
Uchar SynHeader;
Uchar Cmd;
Uchar Num;
Uchar Data[8];
Uchar CheckCode;
} MoudleCmd;
#define SYN "\x01\X01\01"
//定义同步头

但是,针对不同的长度的参数表,成员DATA如何处理?针对不同的命令,CheckCode如何处理?
有没有办法在声明命令变量之前,就把同步头放在命令里?


此外,描述通讯协议,或者说描述数据结构并可以发送接收的一般方法是?

如果描述起来不方便,希望各位可以给出一些参考资料。
搜索更多相关主题的帖子: 结构体 源文件 主程序 
2017-01-22 20:09
快速回复:这样的通讯协议应该怎样写?描述通讯协议的一般方法是?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.073999 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved