作者pl132 (pl132)
看板Python
标题[问题]python可以作到跟终端机软体一样的事吗?
时间Mon Nov 20 22:27:24 2017
各位版上的前辈好
小弟是最近开始在学习python的新手
由於工作上的需要想要试着用python去对RS232介面的终端机装置输出入资料
但是不管我使用pyserial也好或是pyvisa在读出资料
都不会跟我在teraterm之类终端机回传的讯息一样
以下是我用终端机软体所下command所读到的讯息
https://imgur.com/w3R2nsg
可以看出我打一个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之类的软体比较方便?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.195.3.48
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1511188047.A.AD5.html
1F:推 kenduest: 你的 CR 与 LF 字元没送, 没 enter 的话命令没执行 11/20 23:35
2F:→ pl132: 想问一下有人用python去作跟终端机软体一样的事吗? 11/20 23:41
3F:→ pl132: 请问是後面要加\r\n吗? 11/20 23:44
4F:→ pl132: print(dwa100.query("sd\r\n")) 11/20 23:45
5F:→ pl132: 是这样子吗? 11/20 23:45
6F:→ kenduest: 上面回文是说 pyserial 内 write() 呼叫使用部分 11/20 23:52
7F:→ pl132: 那如果是用pyvisa呢?请问一样要加吗? 11/21 08:00
8F:→ pl132: 请问CR与LR字元是指/r和/n吗?还是^M? 11/21 11:31
9F:→ kenduest: CR ==> \r , LF ==> \n 11/21 14:40
10F:→ kenduest: 剩余就先自己测试一下就可以知道情况 11/21 14:40
11F:推 asglay: pyvisa可以啊 先前才用来跟示波器沟通还有截图 11/25 10:24
12F:→ asglay: 你要先确认你有成功开启resource 而且你是com5的话 reso 11/25 10:28
13F:→ asglay: urce name应该会是ASRL5 建议先看一下pyvisa的document 11/25 10:28