2014年4月20日日曜日

Wahoo Fitness API

Wahoo ハートレートモニターがやって来ました。

何故購入したかというと、甲状腺機能亢進のため心拍が高くなる傾向にあり、高いときには抑えるためにβ遮断薬を服用しなくてはならないからです。

1日3回飲めばいいのですが、忘れたり、規定通りの服用でもいいとも限らないので常時チェックしたい。

運動アプリでモニターすればいいのかもしれないですが、今ひとつ用途がちがうもので、自分で作ろうかしらん、という感じです。



APIドキュメントについては、XCode5以上ですとWebサイトにある方法ではドキュメントは入れられません。そのためには、WahooからもらえるSDKにある*.docsetを、Finderで「このMac」を選択したあと、右上で「DocSets」と検索してでてくるDocSetsフォルダに入れ込みます。XCode5を再起動し、Window-Documentation and API Referenceを選択するとWahoo APIのリファレンスが見れます(といってもWebサイトと変わりなさそうです)。



Wahoo Fitness APIは、WFHardwareConnector というクラスとして提供されます。WFHardwareConnectorはANT+ とBTLEセンサーの設定やデータ取得が可能です。

− 下準備

❏プロジェクトの設定
  プロジェクトのBuild SettingsのLinking セクションにあるOther Linker Flagsで、-lstdc++ -all_load  を設定します。

❏ターゲットの設定
  ターゲットのBuild PhasesにあるLink Binary With Librariesで+ボタンを押下し、Add Other... ボタンを押し、ダウンロードしたWahoo Fiitness APIにあるWFConnector.frameworkを選択する。さらにiOS標準のフレームワークのうち、ExternalAccessory.framework、CoreBluetooth.framework、libstdc++.dylib(iOS7 SDKの場合)を指定する。その際、CoreBluetooth.frameworkはOptionalを指定する。

❏アプリケーションバンドルの設定
 アクセサリ接続とバックグラウンド動作のため info.plistに次を設定する。
    Supported external accessory protocols  のitemにcom.momentumoftechnology.fisica 

    Required background modes のitemにexternal-accessory, と bluetooth-central 

注)prepareForBackground (WFHardwareConnector)がバックグラウンドモードと転送準備のためにリソースを初期設定する。しかしreturnFromBackground (WFHardwareConnectorと合わせて、iOS5.0以降ではこれらメソッドは不要。バックグラウンド操作では以下が必要。

さらにマニュアルにはありませんが、Wahoo Fitness APIではarm64がサポートされていません。そのため、プロジェクトのBuild SettingsのArchitecuresで、ArchitecuresをStandard(armv7,armv7s,arm64)からothersで、$(〜STANDARDS)とかを削除して、armv7とarmv7Sをそれぞれ+し(一緒にいれてはいけません)、Build Active Architecure OnlyをたぶんNO(かな?)、Vaild Architecures でarm64を削除します。

これでサンプルとかがコンパイルできるようになります。

0 件のコメント:

コメントを投稿