[问题]python可以作到跟终端机软件一样的事吗?

楼主: pl132 (pl132)   2017-11-20 22:27:24
各位版上的前辈好
小弟是最近开始在学习python的新手
由于工作上的需要想要试着用python去对RS232接口的终端机装置输出入资料
但是不管我使用pyserial也好或是pyvisa在读出资料
都不会跟我在teraterm之类终端机回传的讯息一样
以下是我用终端机软件所下command所读到的讯息

可以看出我打一个sd会报错
但是我用pyserial去打同样的字却会报出以下讯息
>>> ser = serial.Serial('COM5', 115200, timeout=1)
>>> ser.write(str.encode("sd"))
2
>>> data = ser.readline()
>>> print(data)
b'sd'
=================================
如果我用pyvisa的话则是跳错
import visa
rm = visa.ResourceManager()
dwa100=rm.open_resource('com5')
print(dwa100.query("sd"))
pyvisa.errors.VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before
operation completed.
===================================
想请教一下各位大大?我是不是哪边搞错了?还是python不适合用在这种开发环境?
是不是还是要用teraterm或是putty之类的软件比较方便?
作者: kenduest (小州)   2017-11-20 23:52:00
上面回文是说 pyserial 内 write() 呼叫使用部分
楼主: pl132 (pl132)   2017-11-20 23:41:00
想问一下有人用python去作跟终端机软件一样的事吗?请问是后面要加\r\n吗?print(dwa100.query("sd\r\n"))是这样子吗?
作者: kenduest (小州)   2017-11-20 23:35:00
你的 CR 与 LF 字符没送, 没 enter 的话命令没执行
楼主: pl132 (pl132)   2017-11-21 08:00:00
那如果是用pyvisa呢?请问一样要加吗?请问CR与LR字符是指/r和/n吗?还是^M?
作者: kenduest (小州)   2017-11-21 14:40:00
CR ==> \r , LF ==> \n剩余就先自己测试一下就可以知道情况
作者: asglay (收收收尾)   2017-11-25 10:24:00
pyvisa可以啊 先前才用来跟示波器沟通还有截图你要先确认你有成功开启resource 而且你是com5的话 resource name应该会是ASRL5 建议先看一下pyvisa的document

Links booklink

Contact Us: admin [ a t ] ucptt.com