すっかり忘れていた「ナゾパコ」の話の続きで最終回です。
「仕様」といっても殆ど送信する信号の中身だけですが...
<送信信号>
まず以下の条件を満たす為、
・スイッチ(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繰り返しが選択できます。
以上
2008/02/07
「ナゾパコ」の話(3)-仕様編-
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿