串行协议将代码从C移植到Python

2024-06-16 08:36:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我对C语言和复杂的串行通信都是初学者。我会尽我所能提供关于这个问题的所有信息;如果我需要提供任何其他有用的信息,请告诉我。在

我正在将串行设备(微操作器)的通信协议从C移植到Python,以便在我实验室开发的Python应用程序中使用。该公司为我们提供了一个用于与设备接口的小型命令行实用程序的源代码。使用这个逻辑,我们的Python模块能够生成正确/相同的数据块,包括CRC。但是,当Python代码发送一个数据块(与C代码生成的数据块相同)时,它没有收到来自设备的响应。使用串行端口监视程序(Free serial port Monitor),我注意到Python和设备之间的通信在某些情况下与公司提供的实用程序不同。在

下面是提供的实用程序的日志截图,它可以正常工作。它显示了一个数据块的发送及其响应,以及第二个数据块的发送和响应的开始。在

Log Example from utility

下面是Python代码的屏幕截图;如您所见,它发送数据块时没有响应。在

Log example from python

至于其他有用的信息,我使用的是标准的Python串行库。数据块的结构是14个ASCII字符,以STX开头,以ETX结束。前8个数据字符对应于函数、地址、值等,最后4个字符是CRC。在

正如我所说,我在这方面有点无能,我真的不知道从哪里开始。任何建议或帮助,或资源,可能帮助我解决这一点将不胜感激,并让我知道如果有任何更具体的信息,我应该提供!在

http://reentry.mit.edu/extserialport.c

http://reentry.mit.edu/extserialport.h


Tags: 数据代码实用程序信息httpmit公司字符
1条回答
网友
1楼 · 发布于 2024-06-16 08:36:25

我找到win32了序列号.py,与pyserial一起提供,提供直接(绑定?)到windowsapi的串行设置,这似乎已经起作用了,我从C代码中逐行复制了设置,包括流控制和RTS。非常感谢@Serge为您提供的时间和帮助!在

相关问题 更多 >