0

PySerial (シリアル通信用の Python API) を使用して、ブルートゥース経由で AT コマンドを Nokia 電話に送信しています。

import serial
com = serial.Serial()
com.port = 19
com.timeout = 0 #also tried a timeout value greater than 0.
try:
    com.open()
    # at this point I turn off the phone.
    com.write("AT\r\n")
    print com.readlines()
except SerialException, e:
    print e

com を open() した直後に、電話の電源を切ります。次に、("AT\r\n") と書きます。この時点で、関数がブロックされ、ランタイムがハングします。

解決策はありますか?

4

2 に答える 2

0

タイムアウトを に設定し0、タイムアウト パラメータを無効にするread()/readlines()と、 はブロッキング コールになります。デバイスが応答するまで、発信者はブロックされます。シリアル接続にゼロ以外のタイムアウト値を設定してみてくださいcom = serial.Serial(timeout=0.5)

それでもハングする場合は、Bluetooth スタックに問題があるはずです。

于 2011-06-01T07:48:13.610 に答える
-1

実際、探しているのは、タイムアウト引数ではなく、writeTimeout です。遅い答え、私は知っていますが、私はまだそれを必要としており、私だけではないと思います.

于 2013-09-11T10:46:28.177 に答える