[問題]python可以作到跟終端機軟體一樣的事嗎?

看板Python作者 (pl132)時間8年前 (2017/11/20 22:27), 編輯推噓2(2011)
留言13則, 3人參與, 8年前最新討論串1/1
各位版上的前輩好 小弟是最近開始在學習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://www.ptt.cc/bbs/Python/M.1511188047.A.AD5.html

11/20 23:35, 8年前 , 1F
你的 CR 與 LF 字元沒送, 沒 enter 的話命令沒執行
11/20 23:35, 1F

11/20 23:41, 8年前 , 2F
想問一下有人用python去作跟終端機軟體一樣的事嗎?
11/20 23:41, 2F

11/20 23:44, 8年前 , 3F
請問是後面要加\r\n嗎?
11/20 23:44, 3F

11/20 23:45, 8年前 , 4F
print(dwa100.query("sd\r\n"))
11/20 23:45, 4F

11/20 23:45, 8年前 , 5F
是這樣子嗎?
11/20 23:45, 5F

11/20 23:52, 8年前 , 6F
上面回文是說 pyserial 內 write() 呼叫使用部分
11/20 23:52, 6F

11/21 08:00, 8年前 , 7F
那如果是用pyvisa呢?請問一樣要加嗎?
11/21 08:00, 7F

11/21 11:31, 8年前 , 8F
請問CR與LR字元是指/r和/n嗎?還是^M?
11/21 11:31, 8F

11/21 14:40, 8年前 , 9F
CR ==> \r , LF ==> \n
11/21 14:40, 9F

11/21 14:40, 8年前 , 10F
剩餘就先自己測試一下就可以知道情況
11/21 14:40, 10F

11/25 10:24, 8年前 , 11F
pyvisa可以啊 先前才用來跟示波器溝通還有截圖
11/25 10:24, 11F

11/25 10:28, 8年前 , 12F
你要先確認你有成功開啟resource 而且你是com5的話 reso
11/25 10:28, 12F

11/25 10:28, 8年前 , 13F
urce name應該會是ASRL5 建議先看一下pyvisa的document
11/25 10:28, 13F
文章代碼(AID): #1Q4kPFhL (Python)