私はラズベリーパイに接続し、Python Serial moduleを使ってプログラミングしているデバイス(GT511C3 fingerprint scanner)を持っています。 GT511デバイスのデフォルトボーレートは9600で、変更可能です。 GT511ボーレートを変更すると、次回の再起動時までこの設定が保持されます。pySerial:現在のボーレートを確認する方法
問題は、接続されたデバイスの現在のボーレートをチェックする方法があるかどうかです(デバイスが既にプログラムされていて、別のホストによって接続されている場合)。
$> stty < /dev/ttyAMA0
speed 57600 bud; line = 0
...
Pythonのシリアルまたは他のモジュールを使用して、それを行う方法があるか、私はそれを見つけるために、反復チェック手順を記述する必要がありません。私はstty
を使用して、それを行うことが可能である知っていますか?
UPDATE 1:私は受け入れられてボーレートを見つけるために使用 現在のソリューション:
ser = serial.Serial('/dev/ttyAMA0')
ser.timeout = 0.5
for baudrate in ser.BAUDRATES:
if 9600 <= baudrate <= 115200:
ser.baudrate = baudrate
ser.write(packet)
resp = ser.read()
if resp != '':
break
if ser.baudrate > 115200:
raise RuntimeError("Couldn't find appropriate baud rate!")
UPDATE 2: してください、serial.baudrate
を示唆して停止する - これは私が求めています何ませです。
...あなたがしようとしていない答えを探していますpySerialメソッドを使用しますか? – theQuestionMan
'serial.baudrate'は、私がすでに知っているものを私に与えるので、私が探しているものではありません。私はどのデバイスがリモートに応答するかを調べようとしています。 – RafazZ