私は現在、Pythonのイディオムとライブラリを調べて、制御タスクのステートマシンの設計を支援しています。
私はこの他のSOの質問で良い提案を見つけました:Pythonステートマシンの設計。回答の中で、StateChartXMLファイルの解釈を可能にするPySCXMLが提案されました。
PySCXMLのreadmeからの次の文に関心があります。
StateMachineインスタンスのsendメソッドを使用して、ステートマシンにイベントを送信できます[...]もちろん、別のスレッドから送信する必要があります
これは、ステートマシンの処理を同期的に実行できないことを意味しますか?
制御タスクでのPySCXMLの使用を想像しているので:
- 入力を読み込む
- 入力をステートマシンドメインの抽象入力変数に変換します
- 変数をPySCXMLステートマシンインスタンスに送信します
- PySCXMLステートマシンインスタンスは新しい状態を計算し、抽象出力変数を設定します
- 抽象出力変数を出力に変換します
- 出力を書き出す
- 次まで寝る
(これがPySCXMLで可能であれば、シーケンスロジック全体をSCXMLファイルに完全に分離できます。)すべてのステップを順番に処理する必要があります。特に4.非同期で実行することはできません。