さまざまなパワーデバイスに対応した、Linux/MacOSX/Windowsで動作するGoldenCheetahというフリーソフトウェアがあるのですが、開発チーム?の方がANT+の生データストリーミング表示に対応したそうです。
- GoldenCheetah first alpha release of streaming Computrainer and ANT+
- GoldenCheetah Streaming prototype
注:私の書いていることは、GoldenCheetah/quarqd添付のドキュメント、当該ブログエントリの内容を抜粋・意訳・主観で解釈したもので、実証した内容ではありませんので注意。
[ad#text_only_square]
PC用ANT+受信デバイス ANT+の生データを受信するにはGarmin製USB ANT+ StickかSparkFun製の同等品が必要。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
[ad#text_wide]