发送结构体数据转序

来源:互联网 发布:域名绑定ip 编辑:程序博客网 时间:2024/06/05 09:07

上一篇程序后来调试接收数据发现,收到的数据存在问题,Byte单字节的数据类型没有问题,但是如果是WORD类型双字节以上的类型,接收端从串口收到的数据高低位是反的,这里就存在一个主机序和网络序的问题。

具体的转序规则对于不同的系统规则是不同的,后面文章继续补充出来。

希望有用python操作串口的同学留言讨论,也希望上一篇文章不要让看到的同学徘徊不前,在上一篇文章中,最后通过mem操作来“封装的数据”,通过后来的实践发现,这种方式虽然可行,但是需要转序操作要先转好再“封装”,无论从繁琐性和程序的移植性来看都是不推荐的,所以后来采用了struct.pack的方法,贴一段代码示例:

buffer_restore = struct.pack('>HHHBBHHBBBBLBBBBB',
ScreenControl_stru_restore.wPakageHeader,
ScreenControl_stru_restore.wLength,
ScreenControl_stru_restore.struAddress.wHostAddress,
ScreenControl_stru_restore.struAddress.byRes[0],
ScreenControl_stru_restore.struAddress.byRes[1],
ScreenControl_stru_restore.struAddress.wBeginAddress,
ScreenControl_stru_restore.struAddress.wEndAddress,
ScreenControl_stru_restore.struAddress.byRes2[0],
ScreenControl_stru_restore.struAddress.byRes2[1],
ScreenControl_stru_restore.struAddress.byRes2[2],
ScreenControl_stru_restore.struAddress.byRes2[3],
ScreenControl_stru_restore.dwCommand,
ScreenControl_stru_restore.byVersion,
ScreenControl_stru_restore.byRes[0],
ScreenControl_stru_restore.byRes[1],
ScreenControl_stru_restore.byRes[2],
checknum_restore
)

0 0
原创粉丝点击