問題タブ [cnc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 並行して実行されている複数の Python プログラム間の通信
ここに私のセットアップの要約があります:
- 3 軸 CNC、raspberry pi で実行される Python スクリプトを介して制御可能
- Windows PC は pi に接続でき、スクリプトを実行できます
最終的な目標は、C# で作成された UI が、CNC を実行するための自動テスト サイクルを開始することです。Python プログラムにはCnc
、デバイスの現在の位置を格納し、それを特定の場所に配置するメソッドを含むオブジェクトがあります。
問題は、CNC を移動するたびに新しいスクリプトを実行すると、Cnc
インスタンスを再初期化する必要があり、インスタンスの位置が忘れられることです。したがって、唯一のインスタンスを含む 1 つのマスター プログラムを実行できるかどうか疑問に思っていCnc
ます。リモート マシンが CNC に移動するように指示したい場合は、新しい位置の argz を使用して別のスクリプトを実行できますpython action.py x y z
。このスクリプトはマスター プログラムと通信してmove
、新しいメソッドを再構築することなく、適切な場所にメソッドを呼び出すことができます。Cnc
物体。次に、理想的には、マスター プログラムは、モーションが完了したことを示し、「アクション」スクリプトにメッセージを送り返します。そのスクリプトは、アクションが完了したことをリモート システムに伝えるために何かを出力します。その後、スクリプトは終了し、再度呼び出される準備が整います。新しいargzで。
最終的に、リモート システムはすべての作業から高度に抽象化され、マスターの実行を開始するだけで済みます。その後、モーションを実行したいときはいつでも argz を使用して移動スクリプトを実行します。
注:私の他のアイデアは、現在の位置でテキストファイルを保存し、常にファイル内の情報でインスタンスを再初期化することでした。
編集:解決済み...一種の
handler.py
ハンドラーは、input.txt という名前のテキスト ファイルから継続的に読み取り、新しい整数を探します。受信した場合、output.txt という名前のテキスト ファイルを更新して '0' を読み取り、入力に対して何らかのアクションを実行 (つまり cnc を移動) し、値 '1' を output.txt に書き込みます。
pass_action.py
アクション パサーはコマンド ライン引数を受け取り、それを input.txt に書き込み、output.txt が '1' を読み取るのを待ちます。その後、done を出力して終了します。