使えないのにはほかに原因があるのか?

macosxhints というサイトにたまたまアクセスしたところ、10.3: A quick fix for USB-to-Serial (MCT) support という情報を発見。これによると、MCT の USB - シリアル変換ケーブルが 10.3 で使えるというではないか。しかも、GARMINGPS で使うという、まさに私がやりたいこと。
MCT の U232-P9 というケーブルを持っているのだけど、ここ では 10.0 と 10.0.2 用のドライバしかダウンロードできない。だから、だめだのだとばかり思っていた。10.3 では、コマンドラインからアクセス権を設定し直すとうまくいくらしい。早速試してみるべし。
結果は……、だめだった(汗)。VS-60R の時と同じで、NMEA プロトコルでは通信できるが、GARMIN プロトコルではだめ。別のケーブルを使っても同じ結果で、NMEA では通信できていることを考えると、原因はもっとほかのところにあるのではないかという気もしてくる。なんらかの原因で、受信はできているけど送信は失敗している、とか。テキストの通信はできるけどバイナリはだめ、とか。
ほかのシリアル機器での動作を試してみることができれば問題の切り分けもできてくるのだろうけど、残念ながら試すものがない。少し進展したかと思ったけど、結局状況は変わらず。とりあえず、geko 201 -> (GPilotS) -> Palm Vx -> (HotSync) -> iBook で、GPilotS のデータベースから TRK などに変換、という流れがもうしばらく続きそうだ。

fakepop.pl を使ってみる

POPFileDocumentationProjectUtilityScripts には、POPFile を使う上で便利なスクリプトがいくつか紹介されている。今回、POPfileデバッグに便利な、fakepop を使ってみた。
POPFile はメールソフトとメールサーバの間で POP3 プロキシとして動くので、あるメールを受信したときにどういう動きをするか、というのは実際にメールをサーバから受信してみないといけない。そのための方法として、メールの内容をそのまま自分に送ってみるという方法があるが、面倒なのと、ヘッダの内容が変更されてしまうのが問題だ。fakepop はメールサーバの代わりになって、テキストファイルで保存されたメールがサーバに存在しているかのように振る舞ってくれる、というものだ。だから、すでに受信してしまったメールや、それに手を加えたものを受信したときにどうなるか、というのをいろいろと試してみることができるのだ。
使い方は、簡単で、まず、上記の UtilityScripts から、fakepop をクリックして、fakepop.pl を適当なフォルダにダウンロードする。そして、適当なフォルダに保存したら、perl fakepop.pl <port> <path>と入力する。POP3 サーバで使用するポートと、メールを保存したフォルダのパスを指定するだけだ。
Mac OS X で試す場合は、2点ほど注意点がある。ひとつは、ポートの番号だ。前にも書いたと思うが、ユーザ権限では、1024 未満のポートでサービスを開始することができない。なので、例えば、「10110」などのポートを指定する(あるいは、あまりおすすめしないけど管理者権限で動かす)。もうひとつは、fakepop.pl の中で、「print $client ...;」の行のそれぞれの後ろに、「flush $client;」を追加しないと、fakepop.pl からのメッセージがうまく受け取れなかった。
メールとして使うファイルは、例えば、POPFile の messages フォルダに保存されているものをそのまま使うことができる。なにかのメールを受信したときにそのメールをうまく扱うことができなかった場合、そのファイルを保存しておくのだ。そして、それを fakepop.pl のメールフォルダに置き、テストする。
テストするためのひとつの方法は、telnetPOPFile にアクセスすること。POPFilePOP3 プロキシのポートが 30110 だった場合、telnet localhost 30110 でアクセスする。そして、USER localhost:10110:a (ポート番号は、fakepop を動かすときに指定したものと同じにする。最後の a は適当)とすれば、fakepop に接続される。普通のメールサーバに接続するときには、このあと PASS コマンドで認証をおこなうのだけど、fakepop では必要ない。次は、RETR ? でいきなりメッセージを取得する。そうすると、POPFile は、そのメールが普通にダウンロードされたときと同じように処理してくれる。こうして、POPFile のソースをいじったり、メールの内容をいじったりしながら問題を調べ、POPFileデバッグをするというわけだ。