2008/02/07

「ナゾパコ」の話(3)-仕様編-

すっかり忘れていた「ナゾパコ」の話の続きで最終回です。
「仕様」といっても殆ど送信する信号の中身だけですが...

<送信信号>
まず以下の条件を満たす為、

 ・スイッチ(SW)を押している間だけ1byteずつ送信する
 ・複数SWの同時押しを認識する

各SWの押し下げをbit:0, 1, 2, 3, 4のONに割り当てます。
また、とあるソフト上の要求で

 ・今まで押していたSWを全て離したことを認識する

為に、どれか一つでもSWを押している時はbit:6をONします。
また全てのSWを離した後、数回だけbit:6のみをONして送信します。

bit:6にした理由は、テスト時にターミナルソフトで受信した時に
A, B, C...の分かり易いASCII文字で表示させることができるからです。

 (例)SW1~5をbit:0~4に対応させた場合
   ・SW1のみ -> 01000001 -> 'A'
   ・SW2のみ -> 01000010 -> 'B'
   ・SW1+2 -> 01000011 -> 'C'

bitはまだ2つ空いているので、SWの数は7個までは簡単に増やせます。
SWの数をもっと増やすと
2byte以上を1組として処理する変更が必要で面倒です。

<受信処理>
こちらは単純にシリアルポートをLoopで監視していて、
信号を受信した時に1byteずつ切り取ってONしているbitに対して
予め指定しておいた処理を実行します。

処理の中身は以下の通りです。

 ・キーボード操作
 ・関連付けでファイルを開く(ファイルのパスを指定)
 ・プログラムの実行(実行ファイルのパスを指定)

ファイルの実行は、10ms間隔で繰り返しやられては堪らないので
SWの押し下げ時に1回のみ実行されます。
キーボード操作については、1回のみor繰り返しが選択できます。

以上

0 件のコメント: