一般来讲,如果上位机需要与下位机通信,最底层物理层比较常见的就是串口通信,还有一种比较方便的物理通路就是以太网。
为了通信,制定一个通信协议是很重要的,现有的需求是通过tcp上位机配置下位机的上网方式串口波特率等详细信息,简单制定了一下协议如下:
总长度已经标记出来了,是46byte,为了数据处理方便,定义一个结构体来存储数据,最初定义的结构体如下
为了测试方便,将每个结构体设置为连续的初值,再结构体赋值结束这个,调用方法:
char buffer[sizeof(frame)];
memcpy(buffer, &frame, sizeof(frame));
因为结构体在内存中是连续存放的,所以将结构体单元赋值到一直大数组里,数组的大小即为该结构体在内存