2016-05-19 4 views
1

私はGUIベースのアプリケーションで作業しています。これはPythonを使って開発されています。私はPython(+ Kivy)を使ってUIを実装し、Windows OS上でミドルウェア/コアを実装しています。WindowsマシンのUIとコアとの通信

私の問題文は次のとおりです。

1)私は、アプリケーションを起動するにはコアのexeファイルを実行すると、自分のアプリケーションを終了させるまでには、バックグラウンドでのままであるべきです。

2)イベントがアプリケーションからトリガされると、コアにコマンドが送信され、コマンドがリモートデバイス上で実行され、コマンドの実行結果が返されます。

私はexeの寿命をどのように制御し、どのようにUIとコア間の通信を確立できるかを知りたいと思います。

答えて

1

あなたはこれに取り組むことができる多くの方法がありますが、すべての初期化を行い、他の部分を開始する主要なアプリケーションの1つ(GUI /コア)を持つことをお勧めします。私はこのためにコアを使用することをお勧めします。

ここでは、使用できるサンプルアーキテクチャを示しますが、選択するアーキテクチャはアプリケーションと目標に大きく依存します。

コアが最初に実行され、GUIを起動などの初期化操作を実行し、(パイプ、ソケットなどを用いて)GUIとの間の通信を設定し、その後、GUIからのコマンドを待ちます。 GUIが閉じるようにシグナルを送ると、コアは必要なクリーンアップを実行して終了することができます。このシナリオでは、exeの有効期間はGUIによって制御されます(GUIは、終了ボタンを押して終了する必要があることをユーザーに知らせるために信号をコアに送信します)

コアがGUIを起動する場合、それはそれのためのSTDIN/STDOUTパイプを設定し、STDIN上の結果を送信するときに、STDOUT上でコマンドをリッスンすることができます。ソケットでコア・リスニングを実行し、GUIが要求を送信して応答を待つというサーバー・アプローチをとることもできます。サーバアプローチを使用すると、シリアルパイプとは異なり、同時実行のいくつかの並べ替えを持っていることができますが、私はそれが(差は無視できるかもしれないが、そのハードが正確に何をやっている知らずに言って)パイプより遅いかもしれないと思います。

関連する問題