シリアルポートの通信を処理するための任意のデザインパターンはありますか?

StackOverflow https://stackoverflow.com/questions/381548

質問

私たちは、それだけではなく、コントロールパネルのシリアルポートを介して変更されたハードウェアパラメータです持つことができますいくつかの新しい切削工具で作業しています。

ハードウェアパラメータが変更される場合、

のハードウェアは、それ自体を再構成し、それを使用する準備ができていることを知らせるために数秒かかります。

この前私たちのセットアップはカット板やパートのコマンドをクリックするオペレータを関与しました。オペレータは、彼は[OK]をクリックし、すべてを確認し、マシンが切断開始した後、ソフトウェアはハードウェアがでどうあるべきかの設定オペレータ変更運動関係しているもの(速度、遅延、など)だけでなく、表示が可能ダイアログが表示されます。

我々は送信して、新しい設定がハードウェアの準備ができているかどうかを示す指標と一緒に何であるかを示すダイアログを投げる変更がある場合は、

新しいハードウェアのために我々は、現在のコンフィギュレーションを引き出します。すべてがそういつかダイアログは、オペレータがOKをクリックするまでそこに滞在しているシリアルポートを介して自動化されていません。それは権利であるときに、ハードウェア信号その他の時間は、それ自体をアンロードすることができます。

私の問題(質問)は、シリアルポートを介してこれを実行すると、すべての痛々しいほど遅いことです。それも、私たちはこの種の作業を行って初めて。私は全部の応答性にするために、いくつかの解決策が欠けていることを懸念しています。私たちが、第三者からの切削ハードウェアを購入してシリアルに代わるものを使用するためのオプションではありません。

私がやりたいもう一つは、ステータスダイアログを表示するオプションを持っていると、システムの残りの部分を停滞シリアル通信なしで実行しているのままです。

Win32 API、または.NETのための

ヒントは、私が探しています何をしています。

役に立ちましたか?

解決

これは、マシンのコントロールがどのようにインタラクティブに依存 - あなただけのmoveToのXY、cuttoのXYを送ることができるか、常にマシンを監視し、モータを起動および停止する必要があります。

? マシンは比較的スマートである場合は、

私はプロッタのように扱うでしょう。あなたのGUIのコマンドのリストを構築し、それらを提出します。この方法では、マシンのGUI独立しをテストすることは容易です。

また、コマンドリストを受け取り、高価な材料を切断する前にチェックとして画面上にプロットしたテストアプリを持つことができます。それも、HPGLまたはSVGのようなものにコマンドを変換し、それらを直接表示することも可能かもしれません。

他のヒント

1つのオプションは、別のスレッドでシリアルポートの通信を実行し、それが戻っGUIスレッドの状態だそのスレッドのレポートを持っているだろう。 (起動)

これは、私は最近、システムをスワイプHIDカードをコード化する方法です。一つのスレッドレコードカードは、リストにスワイプ。別のスレッドがデータベース・システムにこれらを書き込みます。 GUIスレッドに各レポートます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top