私はJava中間開発者、Python初心者およびWebサービス初心者初心者です。 学習経験として、PythonでRESTful Webサービスを実現しようとしています。これは、RS232-over-USBリレーボードを介して簡単なオン/オフライトをリモートコントロールします。 私はすでにweb.py & pyserialライブラリの基礎を理解しました。 私が使用しているボードは、asciiバイトを入力として使用してリレーをオン/オフし、送信されたすべての入力に対するフィードバックとしてasciiバイトを提供します。 単一のリクエストには正しい答えが返されますが、web.py委任クラスによって複数のリクエストが発行されると、フィードバックが混同されることがあります。私はこれがスレッド同期の問題だと思います。 適切なweb.py生まれのスレッドにフィードバックを正しく送るために、シリアルポートへの書き込み/読み取りアクセスをpyserialと同期させる最も良い方法はありますか?次のような解決策は正しいと考えられるでしょうか?Python Webアプリケーション同期シリアルアクセス
from threading import RLock
import serial # pyserial library
lock = RLock()
ser = serial.Serial("/dev/ttyACM0", 9600, 1)
def serialOut(self, string):
lock.acquire()
data = ''
try:
ser.open()
ser.write(string)
data = ser.readall()
ser.flushOutput()
finally:
lock.release()
return data
素早くお返事いただきありがとうございます。はい、同じpyhonインスタンスの下で実行されています。 – Jacoscaz