2008-08-06 4 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 

すべてが動作します。

上記のシリアルポートツールの実行中にこのコードを実行すると、すべてが動作します。しかし、私はツールを切断するとすぐに接続が失われます。

#!/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() 

シリアルポートツールを使わずにシリアルポートに通話を開始するにはどのような魔法が必要ですか?それは権限の問題ですか?また、/dev/cu.usbserialと/dev/tty.usbserialの違いは何ですか?


いいえ、シリアル番号はありません。問題は、pythonスクリプトをsudoで実行しても問題は解決されず、私が言及したguiツールで接続を開くと問題が解決されます。

+0

ちょうど先週、私は、USBシリアルドングルからデバッグ情報を読み込んで、埋め込みCアプリケーションをデバッグするのに役立つ小さなPythonユーティリティを書いたので、PySerialについてよく理解していると思っています。いくつかの追加情報が問題の診断に役立つかもしれません:*どのUSB-Serialドライバを使用していますか? *シリアル接続をPythonから開こうとする前に、すべてのシリアルオプション(ボーレート、フロー制御、パリティ、ストップビットなど)を正しく設定していることは確かですか? *どのバージョンのPySerialを使用していますか? – Matt

+0

あなたの後にシリアル番号が表示されることはありませんか?そのような:/dev/cu.usbserial-xxxxxxxxA /dev/tty.usbserial-xxxxxxxxA /dev/cu.usbserial-xxxxxxxxB /dev/tty.usbserial-xxxxxxxxB私の他のスルー多分そこには、Pythonの許可の問題が話しているシリアルポート。 Pythonインスタンスが実行されているユーザーを知っていますか?そして、それがどんな役割を果たしているのか? –

答えて

0

GUIとシリアルポートの間のトラフィックを監視して、何らかの種類の特殊コマンドが送信されているかどうか確認してみましたか?また好奇心が強いのは、PythonがASCIIを送信していて、UTF-8やその他のものを送信していないことです。私が尋ねる理由は、文字列の見積もりの​​変更に気付き、一部の言語では実際にASCIIとUTF-8の違いがあるからです。

4

/dev/cu.xxxxxは「吹き出し」デバイスであり、それはあなたがシリアルデバイスへの接続を確立し、それに話し始めるときに使用するものです。 /dev/tty.xxxxxは、「ダイヤルイン」デバイスであり、着信コール用のポートを監視するために使用されます。ファックスリスナー。

+2

これはちょうど慣例ですか、それとも具体的な違いがありますか? –

関連する問題