2008-08-06 15 views
14

我有一個Prolite LED標誌,我喜歡設置它來顯示apache日誌和其他有趣統計數據的滾動搜索查詢。問題是,我的G5沒有串口,所以我必須使用USB串口加密狗。它顯示爲/dev/cu.usbserial和/dev/tty.usbserial。以編程方式與OS X或Linux中的串行端口通話

當我做這一切似乎是沒說的:當我使用serial port tool去跟它

stty -f /dev/cu.usbserial 
speed 9600 baud; 
lflags: -icanon -isig -iexten -echo 
iflags: -icrnl -ixon -ixany -imaxbel -brkint 
oflags: -opost -onlcr -oxtabs 
cflags: cs8 -parenb 

一切也適用。

如果我在運行上面提到的串口工具時運行這段代碼,everthing也起作用。但是,一旦我斷開連接工具,連接就會丟失。

#!/usr/bin/python 

import serial 

ser = serial.Serial('/dev/cu.usbserial', 9600, timeout=10) 
ser.write("<ID01><PA> \r\n") 
read_chars = ser.read(20) 
print read_chars 

ser.close() 

所以問題是,什麼magicks我需要執行開始對串口沒有串口工具說話?這是一個權限問題?另外,/dev/cu.usbserial和/dev/tty.usbserial有什麼區別?


不,沒有序號。問題是,即使使用sudo運行python腳本,問題仍然存在,並且只有在我提到的gui工具中打開連接時纔會出現問題。

+0

就在上週,我寫了一個小型的Python實用程序,通過讀取USB串口加密狗的調試信息來幫助我調試嵌入式C應用程序,所以我想我認爲我很瞭解PySerial。一些附加信息可能有助於診斷問題:*您使用的是什麼USB串行驅動程序? *您是否確定在嘗試從Python打開串行連接之前已經正確配置了所有串行選項(波特率,流量控制,奇偶校驗,停止位等)? *您使用的是什麼版本的PySerial? – Matt 2008-08-07 22:08:26

+0

你不會在他們後面看到任何序列號嗎?如:/dev/cu.usbserial-xxxxxxxxA /dev/tty.usbserial-xxxxxxxxA /dev/cu.usbserial-xxxxxxxxB /dev/tty.usbserial-xxxxxxxxB我的其他通過也許是有一個權限問題的Python與說話串行端口。你知道你的python實例在哪個用戶下運行嗎?也許它有什麼作用? – 2008-08-06 21:46:17

回答

0

您是否嘗試過觀看GUI和串口之間的流量,以查看是否有某種特殊命令被髮送?也只是好奇,Python發送ASCII而不是UTF-8或別的東西正確嗎?我問的原因是因爲我注意到你對字符串和某些語言的引用更改,這實際上是ASCII和UTF-8之間的區別。

4

/dev/cu.xxxxx是「標註」設備,它是您建立到串行設備的連接並開始與之通話時所使用的設備。 /dev/tty.xxxxx是「撥號」設備,用於監視例如來話呼叫的端口。傳真收聽者。

相關問題