如何在 Tizen 上实现传感器批处理
How to implement sensor batching on Tizen
我需要以批处理方式从 Tizen Wearable(最好是 3.0 或更低版本)上的加速度计获取数据,以实现最大电池效率。
我当前的代码如下所示:
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 进行开发。
据我所知,物理传感器只有在 AP 进入挂起状态时才会以批处理方式工作,它只会在显示屏关闭时发生。
因此,显示屏关闭后,请等待 10 至 30 分钟后再进行检查。
另外,请设置足够的时间间隔(约1000ms),以免刷新过多。
最后,使用sensor_listener_read_data(),你只能得到最近的数据。
我需要以批处理方式从 Tizen Wearable(最好是 3.0 或更低版本)上的加速度计获取数据,以实现最大电池效率。
我当前的代码如下所示:
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 进行开发。
据我所知,物理传感器只有在 AP 进入挂起状态时才会以批处理方式工作,它只会在显示屏关闭时发生。 因此,显示屏关闭后,请等待 10 至 30 分钟后再进行检查。 另外,请设置足够的时间间隔(约1000ms),以免刷新过多。
最后,使用sensor_listener_read_data(),你只能得到最近的数据。