Garmin HRM требует много времени для подключения

Я пишу новый виджет для своего Garmin FR 920xt... на мой взгляд, я включил HRM и собираюсь отображать HR (среди другой информации), однако кажется, что требуется довольно много времени (более 30 секунд), чтобы начать отображать информацию.

Есть ли способ заставить его «подключиться» быстрее?

Вот фрагмент моего кода, где я настроил представление.

function initialize()
{
    Snsr.setEnabledSensors( [Snsr.SENSOR_HEARTRATE] );
    Snsr.enableSensorEvents( method(:onSensor) );
    strHR = "HR: --- bpm";
}
function onSensor(sensorInfo) {
    if( sensorInfo.heartRate != null ) {
        strHR = "HR: " + sensorInfo.heartRate.toString() + " bpm";
    } else {
        strHR = "HR: --- bpm";
    }
    Ui.requestUpdate();
}

Как видите, это очень элементарно... примерно через 30 секунд данные начинают поступать.


person El Guapo    schedule 30.06.2015    source источник


Ответы (1)


Вы должны иметь возможность получать информацию через структуру Activity.Info гораздо быстрее. Вы пробовали это?

using Toybox.Activity as Activity;
using Toybox.Timer as Timer;
using Toybox.WatchUi as Ui;

class MyView extends Ui.View {

    hidden var _timer;

    function onShow() {
        _timer = new Timer.Timer();
        _timer.start(method(:onTimer), 1000, true);
    }

    function onUpdate(dc) {
        var info = Activity.getActivityInfo();
        if (info.currentHeartRate != null) {
            // display the heart rate value
        }
        else {
            // display something else
        }
    }

    function onHide() {
        _timer.stop();
        _timer = null;
    }

    function onTimer() {
        Ui.requestUpdate();
    }
}
person Travis Vitek    schedule 06.07.2015
comment
Спасибо... Я должен проверить это сегодня вечером... Кроме того, есть ли способ определить, поддерживает ли устройство, на которое я нацелен, определенные датчики? Я создаю виджет, ориентированный на большинство устройств, однако у 920 нет термометра. - person El Guapo; 07.07.2015
comment
Спасибо за Вашу информацию. Кажется, это работает, однако я только что обновился, и мой код работает хорошо, теперь... вы случайно не знаете, есть ли уведомление о том, что датчик готов или подключен? - person El Guapo; 08.07.2015
comment
Нет, в настоящее время нет способа узнать, поддерживает ли устройство данный тип датчика или нет, и нет механизма обратного вызова, чтобы узнать, когда датчик будет готов. - person Travis Vitek; 08.07.2015