gekoとシリアル通信

amatubu2004-01-17

Magic Control Technology Corp.製のUSB-Serial変換ケーブル、U232-P9というものを持っているのだけど、未だにMac OS X用のドライバが出ない(10.0.0と10.0.2用ってのはあるのだけど、JaguarPantherともだめ)ので、別のものを探すことに。
Mac OS Xにも対応したUSB-Serial変換ケーブルといえば、Keyspanのものが定評があるみたいだけど……と思っていたら、サン電子VS-60Rというケーブルが、なんとドライバなしで使えるらしい……ってことで、思わず購入してしまった(汗)。
早速つないでみると、確かに/devにcu.usbmodemUSB-COMというのが出てきて、確かに認識されているようだ。マニュアルにも書いてあるように、システムプロフィールでも確認できる。これはいい感じ。
では、gekoをつないでGPSeで通信……と、どうしたことか応答なし。しばらく待ってみても反応する気配なし。あれれ?
気になって注意事項を読んでみると、「アプリケーションが拡張RS-232C接続に対応していない場合があります。その場合は本製品はご使用いただけません」とか書いてある。ひょっとしてこの制限に引っかかっているの?? っていうか、拡張RS-232C接続って何(汗)
この製品、CDC(Communication Device Class)ってのに対応しているために、ドライバがなくても認識するんだそうな。google:"Communication Device Class"って検索してみると、モデムとかTAとか携帯とかとつなぐような話ばっかり出てくるような。よくわからないけど、そういう規格なのかな??
半ばあきらめを感じつつ、今度はシリアルポート関係のサンプルコードを探してきて実行してみる。SerialPortSampleっていうそのまんまな名前のサンプルを試してみると、もともとある/dev/cu.modemと一緒でkIOSerialBSDModemTypeとして認識されているようだ。ん〜、やはりモデム扱い? とりあえず、ポートを開いて速度やらオプションを変更、閉じるというところまでは動いたのだけど、何を通信したらいいのかわからず、断念。
次は、gpstransを試してみる。Linux用だけど、シリアル通信の部分をSerialPortSampleを参考に改造すれば動くかも……というわけ。ということでやってみたけれど、反応がないまま時間切れ。うーむ、これもだめかぁ。どこが問題なのかがさからないってのが困ったものだなぁ。
と、あきらめてPalm用のソフトでもあさろうかなと思っていたら、Mac・GPS・Perlに、ComNiftyでNMEA出力の受信という記事を発見。ふむふむ、NMEAはテキスト形式でずーっと流れてくるみたいだから、接続さえできればなんとかなるのかも……?
思い立ったらやってみる、ということでjermというシリアル通信ソフトで接続してみた。NMEAは4800bpsなので、「jerm -b 4800 /dev/cu.usbmodemUSB-COM」として接続。結果は最初の画像のとおりで、見事にgekoからの情報を受信することができた。すばらしい(が、そのあと終了する方法がわからず。「Type "Ctrl-M ~ ." to exit.」と書いてあるけど、Ctrl-M、.と押してもだめ。Ctrl-Zでデータは表示されなくなったけどそのままかえってこず……)。(訂正:Ctrl-M、~(Shift+`)、.と押せば止めることができるそうです。情報ありがとうございました)
これならきっとGARMINプロトコルもいけるかな〜などと思いつつ、今日のところはここまで。