目前正在操作某模块
该某块用串口方式操作
命令格式如下
1.同步头 三个字节 固定
2.命令 一个字节
3.执行部件号码 一个字节
4.命令参数 不同的命令,参数个数不同,最多八个字节
5.校验码 是命令字节数,执行部件号码和命令参数字节数的和的异或值,一个字节
我想把这个通讯协议和发送命令的代码封装到一个C程序头文件和源文件里,该用怎么样的方式写才能达到
1.方便修改具体命令对应的值
2.方便主程序发送命令和数据
的目的?
(
本来我想采用结构体来统一表述之前提到的命令格式,代码如下:
typedef struct
{
Uchar SynHeader;
Uchar Cmd;
Uchar Num;
Uchar Data[8];
Uchar CheckCode;
} MoudleCmd;
#define SYN "x01X01 1"
//定义同步头
但是,针对不同的长度的参数表,成员DATA如何处理?针对不同的命令,CheckCode如何处理?
有没有办法在声明命令变量之前,就把同步头放在命令里?
)
此外,描述通讯协议,或者说描述数据结构并可以发送接收的一般方法是?
如果描述起来不方便,希望各位可以给出一些参考资料。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
1.設定結尾字元
2.宣告資料長度
另外純粹用結構來接收發送必須內容長度不變才可以
像是TCPIP每包都固定長
一周热门 更多>