Мне нужно получить данные с акселерометра на Tizen Wearable (в идеале 3.0 или ниже) в пакетном режиме для максимальной эффективности батареи.
Соответствующий apidoc находится здесь.
Мой текущий код выглядит так:
static void start_accelerometer() {
sensor_type_e type = SENSOR_ACCELEROMETER;
int max_batch_latency = 30000; // 300 is max queue, 100 ms is default period
if (sensor_get_default_sensor(type, &sensor) == SENSOR_ERROR_NONE)
{
if (sensor_create_listener(sensor, &listener) == SENSOR_ERROR_NONE
&& sensor_listener_set_max_batch_latency(listener, max_batch_latency) == SENSOR_ERROR_NONE
&& sensor_listener_set_event_cb(listener, 100, accelerometer_sensor_event_callback, NULL) == SENSOR_ERROR_NONE
&& sensor_listener_set_option(listener, SENSOR_OPTION_ALWAYS_ON) == SENSOR_ERROR_NONE
)
{
if (sensor_listener_start(listener) == SENSOR_ERROR_NONE)
{
dlog_print(DLOG_INFO, TAG, "Sensor started");
}
}
}
}
Я пробовал множество вариантов вышеизложенного (например, настройки sensor_listener_set_option на SENSOR_OPTION_DEFAULT, чтобы он останавливался при выключении дисплея, запуск датчика без настройки обратного вызова события и чтения данных вручную), но во всех случаях я никогда не получаю пакетные значения от датчика (либо в обратном вызове или через sensor_listener_read_data()
). Я всегда получаю только самые свежие данные.
Вы знаете, как получить пакетные данные с акселерометра на носимых устройствах Tizen?
P.S. Я использую Galaxy Watch Active 1 для разработки.