未来を変える日記

AIエンジニアとトライアスロン

ラップ数を得たい(1)

ガーミンアプリ開発16日目(通算10時間)

 前回、時計にHello World的な任意の値を表示させる豆プログラムを作成した。今回からは任意の情報を得る事を試みる。

 

 開発目標プログラムとも絡むが、最低限の仕様を実現するには以下が必要と考えている。

  • ラップ数の入手

 なお、説明するほどではないかもしれないが、ラップとは、特定区間のタイム(下に引用記事)の事で、ラップ数とは特定区間の数(周回競技なら周回数)。 時計のラップボタンを押した回数だ。  

たとえばトラック周回競技での1周ごとのタイムのように、一定の区間を進むのに要したタイムをラップと呼びます。

ラップとスプリットについて - ストップウオッチ - STB-1000 操作ガイド - サポート - CASIO

API Docsを読んでみる

 下のAPI Docsを読みまわるが、それらしき記載が見当たらない。Activityで入手できそうなんだけど。。。

f:id:corgi-eric:20191224070301p:plain

https://developer.garmin.com/connect-iq/api-docs/

心拍数を取得してみる

ラップ数については分からなかったが、API Docsには、 ActivityInfo()メッソドが紹介されており、これを使うことで心拍数を得ることはできるようだ。ちょっと目的と違うけど、先ずは心拍数を取得してみる。

f:id:corgi-eric:20191226071824p:plain

コードの書き換え

 調べてみると、getActivityInfo()メッソドでデータを引き出すには、

  1. 先ず、Activityというモジュールを読み込む必要がある。
  2. 読み込んだモジュールのgetActivityInfoメッソドを使い、
  3. データ一式を格納する変数に代入し、
  4. その変数から必要な情報を読み出す

という手順が必要なようだ。下のスクショで説明すると具体的には、

  • Toybox.Activity as Act (Actという名前のAcitivityモジュールを読み込む)
  • var activityInfo(入れ物にする変数を宣言)
  • activityInfo = Act.getActivityInfo()(メッソドを使用してデータを引き出す)
  • return activityInfo.currentHeartRate(引き出したデータから心拍数を得る)

というコードの変更で達成できる。

f:id:corgi-eric:20191226072424p:plain

心拍数が表示された!

 ちょっと寄り道になったが、心拍数(下のスクショの「115」)が表示されることを確認した。

f:id:corgi-eric:20191226072932p:plain

 少し理解が深まってきた感触。

 引き続き、ラップ数について考えよう!