2007-08-20

IrDA≠IrComm

ここ数日アドエスの赤外線ポートでテレビリモコンを読ませようとして遊んでいます。
 
昨日までは COM3の”汎用 IrDA”なるものを使って 何も読み込めず悩んでいたのですが、 今日レジストリを見直していたら こんなエントリがあることに気づきました。
[HKEY_LOCAL_MACHINE\Drivers\Active\32]
"Hnd"=dword:000584a0
"Name"="COM3:"
"Key"="Drivers\\BuiltIn\\IrCOMM"
"BusParent"=dword:00032860
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_21_0"

[HKEY_LOCAL_MACHINE\Drivers\Active\15]
"Hnd"=dword:0004d630
"Name"="COM4:"
"Key"="Drivers\\BuiltIn\\IrDA"
"BusParent"=dword:00032860
"InterfaceType"=dword:00000000
"BusName"="BuiltIn_0_11_0"
 
COM3はIrCOMMになっていて、それとは別に COM4にIrDAがあります。
違いが分からないので Google先生に聞いてみました。
どうやら IrDAというのは物理層の規格で IrCOMMというのはその上のレイヤで動くプロトコルで シリアルポートやパラレルポートのエミュレーションを行うもののようです。
 
「それなら”汎用 IrDA”なんて名前にするな」 という気持ちを抑えて COM4の内容を読むようにプログラムを変えてみたところ、 WaitCommEventから先に進めるようになりました。
 
まだまだ意味不明の値しか読めていませんが、ようやく半歩踏み出せたというところでしょうか。
 

0 件のコメント: