Go for it!

モーターサイクルと自転車とキャンプの日々。

GoldenCheetah - ANT+ Raw data streaming support

さまざまなパワーデバイスに対応した、Linux/MacOSX/Windowsで動作するGoldenCheetahというフリーソフトウェアがあるのですが、開発チーム?の方がANT+の生データストリーミング表示に対応したそうです。

注:私の書いていることは、GoldenCheetah/quarqd添付のドキュメント、当該ブログエントリの内容を抜粋・意訳・主観で解釈したもので、実証した内容ではありませんので注意。

[ad#text_only_square]

PC用ANT+受信デバイス ANT+の生データを受信するにはGarmin製USB ANT+ StickSparkFun製の同等品が必要。OS側からはシリアルポートとして見える必要がありそうです(後述)。

quarqdの実行環境 githubにコミットされている最新版GoldenCheetahが必要。

また、quarqdというユーティリティが必要で、これはバイナリ配布されおり、実行プラットフォームとしてiPhone/Linux/MacOSX(PPC/i386)をサポートする。ただ、原文にある通り、MacOSXでは上手く動作せず、iPhoneで動作させる変わり者はほとんどいないと思うので、事実上Linux i386しか使えません。

quarqdの動作 quarqdのオプションを見るに、ANT+受信デバイスはOS側からシリアルポートとして見える必要がある。/dev/ttyS0というのはLinuxにおけるシリアルデバイスなのです。

quarqd can take some information from the file $HOME/.quarqd_config, e.g.: QUARQD_PORT=8168 # the port quarqd should listen for connections on ANT_TTY=/dev/ttyS0 # the device name of the Ant serial port ANT_BAUDRATE=115200 # the baudrate of the Ant device QUARQD_DEBUG=1 # debug is a bitmask. # 1 -> print runtime error information # 2 -> print Ant connection status changes # 4 -> (quarq builds only) print all Ant messages # (default is 1)

quarqdの実装 シングルスレッドでselectループ。

出力はバッファリングされ、レスポンスメッセージは短いのでI/Oブロックは発生しない(はず)。

ant_messages.pyにより生データを受け取り、quardq_messages.pyによってXMLを生成します(注:この二つのファイルは配布物に含まれてません)。

quarqdの使い方(推測) 環境がないので推測です

quarqdはTCP 8168番ポートをバインドし、リクエストに応じてシリアルデバイスから受け取った値を返す。レスポンス形式はquarqd独自のXML。プロトコルはよくわからない(原文だとStreamingってなっているけど、これはどういう意味なのだろう?つなげばダラダラデータが流れてくる?)。

サンプルコードを手に入れるか最新版のGoldenCheetahを使えばANT+の生データをPC上に表示できそう。pythonのサンプルコードはどこで手に入れればいいのかわからないので、原文のブログに突っ込みを入れておきました(broken englishなので通じるか心配)。

こういうツールがどんどん増えてくると面白いですね。自分でもツールを作っているのでがんばらないと。

AD

USB ANT スティック【メール便対象商品】

[ad#text_wide]