旅に出たり、走ったり、旅に出て走ったり

走った記録や旅行記、旅ランの記録などを書いています。Garminなどのランガジェットの紹介もします。

【ConnectIQプログラミング3】Simpleなデータフィールドを作る

さて、前回からの続きです。

genmaigenmai.hatenablog.com

最終的にはWebhooksでIFTTTに情報を送るWidgetを作りたいのですが、その時には、ボタン操作を受け付けたり、通信をしないといけないので、ちょっと難しそう。なので、その前にお試しとして、SimpleDataFieldを作ってみることにします。

プロジェクトの新規構築でConnectIQプロジェクトからスタート。

f:id:Genmai_17:20200129094942p:plain

プロジェクトタイプをデータフィールドにします。バージョンとSDKバージョンはここでは何でも構いません。

f:id:Genmai_17:20200129095004p:plain

プロジェクトテンプレートでは、SimpleとComplexの2つから選べるので、今回はSimpleを選びます。

f:id:Genmai_17:20200129095020p:plain

今回使うのはForeAthlete945なので選択します。

f:id:Genmai_17:20200129095041p:plain

日本語サポートしておきます。

f:id:Genmai_17:20200129095108p:plain

そうするとソースコードはAppとViewの2種類。今回はデータフィールドを作るので、Appのソースは制御用なので触る必要はありません。データフィールドを表示する役割のViewのソースコードのみ変更します。

f:id:Genmai_17:20200129095125p:plain

これが初期状態のソース。initialize()でラベルをセットして、compute()で呼び元から渡されたinfo(Activity.info)から値を取り出して、returnしてやるとそれが表示されるようですね。

初期状態では"My Label"というラベルと0.0という値が表示されるようです。このままじゃ何の役にも立たないソースです。

f:id:Genmai_17:20200129095139p:plain

これをその時の心拍数(currentHeartRate)を表示するように変更してみます。

initialize()でラベルを"Heart Rate"にして、compute(info)のreturnで心拍数を返却する"currentHeartRate"を返却するよう変更します。変更後はこんな感じになります。 

using Toybox.WatchUi;

class GenmaiSimpleDataField1View extends WatchUi.SimpleDataField {

    // Set the label of the data field here.
    function initialize() {
        SimpleDataField.initialize();
        label = "Heart Rate";
    }

    // The given info object contains all the current workout
    // information. Calculate a value and return it in this method.
    // Note that compute() and onUpdate() are asynchronous, and there is no
    // guarantee that compute() will be called before onUpdate().
    function compute(info) {
        // See Activity.Info in the documentation for available information.
        return info.currentHeartRate;
    }

} 

さあ、シミュレーターでこのプログラムを動かしてみましょう。

実行メニューから実行構成を選んで、今回構築したプロジェクトを選択。稼働させる時計を選んで適用を押して実行を押します。そうするとシミュレータが起動します。

なぜかこちらの環境では、シミュレータ上のForeAthlete945が稼働しないという問題が出たので、Vivoactive3バージョンで表示させます。このままだとあまり使い道はありません。もともとの設定にありますからね。まあ、こんな感じでソースコードを組んでいくことがわかりました。

f:id:Genmai_17:20200329173057p:plain

まだまだ序盤戦。続きます。次はいよいよWidgetのプロジェクトを新規構築してみたいと思います。

genmaigenmai.hatenablog.com

 

にほんブログ村 その他スポーツブログ マラソンへ
にほんブログ村