MacOS 10.7.3、Python 2.5Python pyserialと暴走のCPU使用
私は外部サーバへの接続を開くためにpyserialを使用しています。接続が開かれたよう:
HOST = '10.0.0.1'
PORT = '16010'
theURL = 'socket://' + HOST + ':' + PORT
conn = serial.serial_for_url(theURL, baudrate=115200)
conn.timeout = 2
、その後の読み取りは次のようになります。
try:
while len(rawData) == 0 and self.shutdown == False:
rawData = conn.readline()
except:
some error handling code...
問題は、私は10.0.0.1:16010でサーバーを殺す場合は、コードが実行続け、ですが、 cpuの使用率は100%になります。エラーはスローされないので、exceptは決して入力されません。
これはpyserialの問題のように見えますが、ここで誰かがこれまでにこれまで実行していて、状況を正常に処理できるように接続の喪失を検出する方法を知っています。
ありがとうございました。
Readlineのは、このアプリケーションのために望ましいです。エラーをキャッチする唯一の方法は、一度に文字を読み込んでそのように文字列を作成することです、それは動作すると思うが...それは不必要な作業のように思えます。ただし、例外はスローされないため、エラートラップは機能しません。 – user1200376