Windowsスレッドで操作パネルの判定

コーディング

 ボタンコントロールのクリックイベント内で軸のモーション動作を行うと移動が完了するまでUIが固まってしまいます。だんまり停止しないように別スレッドで動作させる方法はこちらの記事、画面が固まらないための非同期処理を参照してください。

物理スイッチによる操作パネルの判定方法

 人が操作する速度の変化を監視する場合は、Windowsの画面上のタイマーで十分です。RTXのリアルタイムコードまでは必要ありません。

このタイマーは、System.Windows.Forms.Timerで一定時間間隔でメソッドを実行することができるものになります。

C# Formタイマーのコーディング方法

ツールボックスのTimerコントロールをFormにドラックする事で、コントロールが追加されます。

コントロールのプロパティでタイマー動作スピードを10msに設定します。

timer1.Interval = 10;

フォームエディターのtimer1コントロールをダブルクリックすることで、イベントコードの自動追加が行われます。

リアルタイムではないので周期が一時的に100msほど遅延する事もありますが、スイッチのポーリングであれば気になることはありませんでした。

デジタル入力のコード

タイマーイベント処理の中にWMXのI/O制御APIを呼び出して処理を行います

IoクラスのGetInBit関数で入力値を読み込み、スイッチが押されたかどうかを判定します。

コメント

タイトルとURLをコピーしました