python - 使用 pySerial 控制发酵 jar

标签 python python-2.7 pyserial

我有一个发酵 jar (NBS BioFlo 3000) 通过 RS232 电缆连接到 PC (Windows XP)。我已经下载了一个免费软件 ( http://www.foxylogic.com ) 来监控发酵 jar 。

它有效,所以我确实知道硬件、电缆等都很好。

免费软件不是开源的,而且很老。我想使用 pySerial 来监控发酵 jar 。我知道端口是COM1,8位数据,偶校验,baudrate=9600。我看到的一篇论文(http://dx.doi.org/10.1371/journal.pone.0092108,补充 S1,第 2 页)说我应该使用“AFS 通信协议(protocol)”并且请求信息的字符串如下所示: (MD#)RA(CR) 其中 (MD#) 是 react 器的编号(在我的例子中是 0),(CR) 是回车。 因此,基于此,我在 iPython 终端中做了:

import serial
ser = serial.Serial(0)
ser.parity = serial.PARITY_EVEN
ser.timeout = 1
print ser

我得到:Serial<id=0x1976cb0, open=True>(port='COM1', baudrate=9600, bytesize=8, parity='E', stopbits=1, timeout=1, xonxoff=False, rtscts=False, dsrdtr=False)

ser.write('0RA\r')
print ser.read(9999)

...,我什么也得不到——只有一个空字符串。我尝试更改超时(最多 15 秒,而且我知道它不会花费更长的时间),我还尝试了 readline() 和 read(1),但我没有更改任何其他参数。我还尝试更改字符串:

b'0RA\r'
'0RA\r'.encode()
'00RA\r'
'0RA\r\n'
'0RA\n'
'MD0RA\r'
'(0)RA\r'
'0ra\r'

还有很多,我不记得了。什么都不管用,我总是得到一个空字符串。没有错误。串口设备完全没有声音。

我唯一一次得到空字符串以外的东西是,当我 ser.read(1)在一个循环中,没有写作,我物理地关闭或打开发酵 jar 。我得到一个空间。

我用谷歌搜索了很多,但看来我正在处理一个非常独特的问题,所以我不希望在这里找到一个简单的答案。我无法测试字符串的所有组合和所有设置,所以我的问题是:

我从哪里开始进行故障排除?

(我的python是2.7)

谢谢!

最佳答案

开始通过检查是否有任何实际通信来进行故障排除。在 Windows 中,能够执行此操作的实用程序包括 PortMon from the Sysinternals suiteSerialMon .

关于python - 使用 pySerial 控制发酵 jar ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31548941/

相关文章:

python - Ubuntu 上的属性错误 : 'module' object has no attribute 'PROTOCOL_TLSv1_2' with Python 2. 7.6

python - Tkinter回调异常: matplotlib animation

python - collections.Counter - 我可以向计数器添加/增加单个元素吗?

python - 如何在python中的外部列表的最后一个嵌套列表中添加一个项目?

python - 文档的单独部分

python - 从模块名称获取路径

python - python 中的轨迹相交

python-2.7 - Python2.7 contextlib.ExitStack等效项

python - 使用 pySerial 包的完整示例

python - 在 python 中通过 RS232 到 USB 电缆读取秤数据