シリアルポートの監視

とりあえず Linux で外界の状態を調べる最も簡単な方法として, RS-232C の DSR と CTS の状態(high か low か)をポーリングする testserial.c というプログラムを作りました。 ここ にある powerd や genpower のソースを参考にしました。

コンパイルは

gcc testserial.c -o testserial
のようにします。実行はたとえば
./testserial /dev/cua0
です。 2番目のポートなら cua0cua1 になります。 スーパーユーザ以外で実行するなら,/dev/cua0crw-rw---- ではなく crw-rw-rw- にしておく必要があります (chmod o+rw /dev/cua0)。

このままでもドアの開閉のチェックのようなオンオフの監視に使えますし, 温度ならサーミスタの抵抗値をパルス幅に変換すれば計測できます。 あるいはガイガーカウンタのカウントをフリップフロップにつなげば, 放射線の計測ができます。


リンクはご自由にどうぞ。

松阪大学 奥村晴彦 okumura@matsusaka-u.ac.jp
Last modified: Sun Mar 26 08:44:45 JST 2000