Jupiter TU60-D120 のコマンド分析

R0012779_public
WinOncore12 というソフトを使って、無事に TU60-D120 と通信できるようになったので、次はシリアルポートでやりとりするコマンドを調査してみました。
最初、WinOncore の Command Monitor Window を覗いて、いわゆる Motorola Binary Format とかいう「@@」で始まるコマンドやレスポンスをやりとりしていることは分かったのですが、このフォーマットが分かりません。コマンドリファレンス自体は、Google で「m12 oncore supplement」とか探すと出てくるのですが、引数がテキストなのかバイナリなのか、判然としません。そこで、昨日の Eltima Serial port terminal software を使ってみます。一度、一秒おきにメッセージが出るようになってから起動すると、メッセージのダンプを見ることができます。これで、コマンドより後のメッセージがバイナリであることが分かりました。
最後まで悩んだのは、チェックサムの計算です。仕組は、ここにありました。

これも、Google で「CW12 GPS User Manual」とか検索すると出てきます。その結果、チェックサムは「@@」を除く部分の、全てのバイトの排他的論理和であることが分かりました。うーん、チェックサムというより垂直パリティですね。。。
結局、@@Ea コマンド(hex で、40 40 45 61 01 25 0D 0A)を送ることで、無事に一秒ごとのメッセージを得ることができました。あとは、いろいろコマンドを試してみたいと思います。
ちなみに、WinOncore の通信を直接「Serial port terminal software」に繋ぐと、分析に便利です。これには、N8VB vCOM Virtual Serial Port Driver というソフトウェアが有用です。

ところで

そうそう。WinOnecore は、最初に「$PMOTG,FOR,0」とかいうコマンドを送っているのですが、これは何なのでしょう。

に詳しそうなので、今度調べてみます。