Network Users' Group ``wheel'' / Dai ISHIJIMA's Page / SL Zaurus関連 /
200LXをSLザウルスの外部KBに

初版: 2003/02/05
最終更新日: 2003/02/13


HP200LXをSLザウルスの外部キーボードにする
ek - an External Keyboard driver
(ただしコンソール限定)


200LX as an External Keyboard for C700
C700でNgを立ち上げ、200LXで日本語入力


●はじめに

SL-C700には、キーボードがついていますが、 UNIXで常用するCTRLキー関連のできがよくありません。 これは特にコンソール(ターミナル)で使ってると、 どうにかならないかと感じてしまいます。 また、ビュースタイルではキーボードが使えません。 このため外部キーボードを利用したくなってしまいます。 そこで、HP200LXをコンソール限定(ターミナルとqpe-embeddedkonsole-jaなど)の 外部キーボードにするプログラムを書いてみました。

PS/2キーボードをつなぐ話はこちらを参照してください


●使い方

ek (External Keyboard) は、コンソールアプリ専用の (つまり、QtのGUIアプリでは使えない) 外部キーボードドライバです。 「ターミナル」を動かして、 コマンドプロンプトから
	bash-2.05$ ek
で起動します。起動時には、
	ek: external keyboard now enabled
というメッセージを出力します。 以後、SDカードスロット横の赤外線ポートにつないだ200LXが 外部キーボードになります。

終了は、同じくコマンドプロンプトから

	bash-2.05$ exit
とします。このときには、
	exit
	ek: caught SIGCHLD, child process finished
	ek: external keyboard now disabled
というメッセージを出力します。

なお、ekは二重起動のチェックをします。 ekを動かしているのに、さらにekを動かすと、

	ek: may already running ek, environ $EXTERNAL_KEYBOARD set, value = SERIAL
というメッセージが出ます。 ただし、二重起動を防止しているのではありません。

ekは環境変数「$EXTERNAL_KEYBOARD」を設定します。 .bashrcを工夫して、$EXTERNAL_KEYBOARDが 設定されているorいないに応じてプロンプトが変わるようにしておくと 便利かもしれません。

なお、ekが動いている状態では、 外部キーボードとザウルス本体の両方が利用できます。 ザウルス側のキーボードが使えなくなるわけではありません。


●200LX側では

外部キーボードとなる200LX側では、内蔵アプリのDataCommを動かします。 このため、200LX側で特に用意するソフトはありません。 DataCommを動かして{MENU}→{C}onnect→{S}ettingsで、 Baudを9600bpsにして、InterfaceをInfraredにします。 その他の条件は、パリティなし、8ビット、1ストップビット、 CTS-RTSフローにしてください。

以上の設定にして、ekを動かしているSLザウルスの赤外線ポートと 200LXの赤外線ポートの間が100mmぐらいになるように配置します。 この状態で、200LXでキーボードを打つと、 その文字がSLザウルス側に入力されます。


●日本語の入力について

200LX側で日本語変換FEPが動いている場合は、日本語も入力できます。 ただし、SLザウルス側で動いているソフトがSJIS入力に対応している必要が あります。 たとえば、エディタの「Ng」の場合、C-x C-k C-i を何度か押して、 入力文字コードをSJISにすると、日本語を200LX側で変換して入力することができます。 入力文字のコードは、モードラインの以下の部分で確認できます。
	-----Ng: *scratch*                        (-SE:fundamental)--All-------
                                                    ↑ここ
詳しくは「Ng」のドキュメントをご覧ください。

また、DataCommではなく、EUCに対応したターミナルソフトを200LXで 動かしてもいいでしょう。


●日本語の入力について(2003/02/06追記)

最新版ekでは、 SJIS→EUC変換機能を内蔵しているので、 JKITとFEPをインストールした200LXでDataCommを動かすだけでOkです。 起動時に
	bash-2.05$ ek -s
のように「-s」オプションをつけると、SJIS変換機能が有効になります。 DataComm側でFEPを立ち上げて、200LXで日本語変換した文字をそのまま SLザウルスに入力可能です。

DataComm on 200LX
DataComm+JKIT+FEPで日本語変換
Ng on C700
200LXからの日本語がNgに入力される


●制限事項


●その他

外部キーボードになるのは200LXだけではありません。 赤外線シリアル (IrDA) に、無手順でデータを投げられれば、 どんな計算機でも外部キーボードになります(笑)。

また、ekが動くのはSLザウルスだけではありません。 (ソースからコンパイルさえすれば) FreeBSDやLinuxなど、さまざまなUNIXマシンで動きます。 また、対応しているインタフェースはIrDAだけではありません。 有線シリアルでも動きます。

PS/2キーボードをつなぐ話はこちらを参照してください