为什么我在 Tizen Native Wearable 中获得恒定步数?
Why am i getting constant step count in Tizen Native Wearable?
我是 运行 使用 Native 的 Tizen Wearable 步数监听器。我能够访问传感器数据,但它似乎永远打印相同的数据?我在这里做错了什么吗?
使用 API 3 和 Samsung Galaxy Watch 3。
#include "stepcount.h"
#include "sensor.h"
void
example_sensor_callback(sensor_h sensor, sensor_event_s *event, void *user_data)
{
/*
If a callback is used to listen for different sensor types,
it can check the sensor type
*/
sensor_type_e type;
sensor_get_type(sensor, &type);
int i = 0;
if (type == SENSOR_ACCELEROMETER) {
unsigned long long timestamp = event->timestamp;
int accuracy = event->accuracy;
float x = event->values[0];
float y = event->values[1];
float z = event->values[2];
dlog_print(DLOG_INFO, LOG_TAG, "ACCEL: %f %f %f", x,y,z);
} else if (type == SENSOR_HRM) {
unsigned long long timestamp = event->timestamp;
int v = (int)event->values[0];
dlog_print(DLOG_INFO, LOG_TAG, "Heart Rate: %.0f bpm", event->values[0]);
}
else if (type == SENSOR_HUMAN_PEDOMETER ){
unsigned long long timestamp = event->timestamp;
int accuracy = event->accuracy;
int s = (int)event->values[0];
int b = (int)event->values[1];
dlog_print(DLOG_INFO, LOG_TAG, "Step Count: %d", event->values[0]);
dlog_print(DLOG_INFO, LOG_TAG, "Walking Step Count: %d", event->values[1]);
}
}
Base GUI
------
bool supported = false;
sensor_is_supported(SENSOR_HUMAN_PEDOMETER, &supported);
if (!supported) {
/* Accelerometer is not supported on the current device */
}
sensor_h sensor;
sensor_get_default_sensor(SENSOR_HUMAN_PEDOMETER, &sensor);
sensor_listener_h listener;
sensor_create_listener(sensor, &listener);
sensor_listener_start(listener);
/* Register callback */
sensor_listener_set_event_cb(listener, 1000, example_sensor_callback, NULL);
sensor_listener_set_attribute_int(listener, SENSOR_ATTRIBUTE_PAUSE_POLICY, SENSOR_PAUSE_NONE);
这是我的日志
01-29 13:25:00.035 : Info / stepcount ( 8215 : 8215 ) : Step Count: 4
01-29 13:25:00.091 : Info / stepcount ( 8215 : 8215 ) : Walking Step Count: 1
01-29 13:30:16.763 : Info / stepcount ( 8215 : 8215 ) : Step Count: 4
01-29 13:30:16.763 : Info / stepcount ( 8215 : 8215 ) : Walking Step Count: 1
01-29 13:30:17.143 : Info / stepcount ( 8215 : 8215 ) : Step Count: 4
01-29 13:30:17.143 : Info / stepcount ( 8215 : 8215 ) : Walking Step Count: 1
01-29 13:30:18.439 : Info / stepcount ( 8215 : 8215 ) : Step Count: 4
01-29 13:30:18.443 : Info / stepcount ( 8215 : 8215 ) : Walking Step Count: 1
01-29 13:30:18.655 : Info / stepcount ( 8215 : 8215 ) : Step Count: 4
01-29 13:30:18.655 : Info / stepcount ( 8215 : 8215 ) : Walking Step Count: 1
我想正确阅读我的实际步数。
请更正如下。
dlog_print(DLOG_INFO, LOG_TAG, "Step Count: %d", s);
dlog_print(DLOG_INFO, LOG_TAG, "Walking Step Count: %d", b);
或
dlog_print(DLOG_INFO, LOG_TAG, "Step Count: %f", event->values[0]);
dlog_print(DLOG_INFO, LOG_TAG, "Walking Step Count: %f", event->values[1]);
我是 运行 使用 Native 的 Tizen Wearable 步数监听器。我能够访问传感器数据,但它似乎永远打印相同的数据?我在这里做错了什么吗? 使用 API 3 和 Samsung Galaxy Watch 3。
#include "stepcount.h"
#include "sensor.h"
void
example_sensor_callback(sensor_h sensor, sensor_event_s *event, void *user_data)
{
/*
If a callback is used to listen for different sensor types,
it can check the sensor type
*/
sensor_type_e type;
sensor_get_type(sensor, &type);
int i = 0;
if (type == SENSOR_ACCELEROMETER) {
unsigned long long timestamp = event->timestamp;
int accuracy = event->accuracy;
float x = event->values[0];
float y = event->values[1];
float z = event->values[2];
dlog_print(DLOG_INFO, LOG_TAG, "ACCEL: %f %f %f", x,y,z);
} else if (type == SENSOR_HRM) {
unsigned long long timestamp = event->timestamp;
int v = (int)event->values[0];
dlog_print(DLOG_INFO, LOG_TAG, "Heart Rate: %.0f bpm", event->values[0]);
}
else if (type == SENSOR_HUMAN_PEDOMETER ){
unsigned long long timestamp = event->timestamp;
int accuracy = event->accuracy;
int s = (int)event->values[0];
int b = (int)event->values[1];
dlog_print(DLOG_INFO, LOG_TAG, "Step Count: %d", event->values[0]);
dlog_print(DLOG_INFO, LOG_TAG, "Walking Step Count: %d", event->values[1]);
}
}
Base GUI
------
bool supported = false;
sensor_is_supported(SENSOR_HUMAN_PEDOMETER, &supported);
if (!supported) {
/* Accelerometer is not supported on the current device */
}
sensor_h sensor;
sensor_get_default_sensor(SENSOR_HUMAN_PEDOMETER, &sensor);
sensor_listener_h listener;
sensor_create_listener(sensor, &listener);
sensor_listener_start(listener);
/* Register callback */
sensor_listener_set_event_cb(listener, 1000, example_sensor_callback, NULL);
sensor_listener_set_attribute_int(listener, SENSOR_ATTRIBUTE_PAUSE_POLICY, SENSOR_PAUSE_NONE);
这是我的日志
01-29 13:25:00.035 : Info / stepcount ( 8215 : 8215 ) : Step Count: 4
01-29 13:25:00.091 : Info / stepcount ( 8215 : 8215 ) : Walking Step Count: 1
01-29 13:30:16.763 : Info / stepcount ( 8215 : 8215 ) : Step Count: 4
01-29 13:30:16.763 : Info / stepcount ( 8215 : 8215 ) : Walking Step Count: 1
01-29 13:30:17.143 : Info / stepcount ( 8215 : 8215 ) : Step Count: 4
01-29 13:30:17.143 : Info / stepcount ( 8215 : 8215 ) : Walking Step Count: 1
01-29 13:30:18.439 : Info / stepcount ( 8215 : 8215 ) : Step Count: 4
01-29 13:30:18.443 : Info / stepcount ( 8215 : 8215 ) : Walking Step Count: 1
01-29 13:30:18.655 : Info / stepcount ( 8215 : 8215 ) : Step Count: 4
01-29 13:30:18.655 : Info / stepcount ( 8215 : 8215 ) : Walking Step Count: 1
我想正确阅读我的实际步数。
请更正如下。
dlog_print(DLOG_INFO, LOG_TAG, "Step Count: %d", s);
dlog_print(DLOG_INFO, LOG_TAG, "Walking Step Count: %d", b);
或
dlog_print(DLOG_INFO, LOG_TAG, "Step Count: %f", event->values[0]);
dlog_print(DLOG_INFO, LOG_TAG, "Walking Step Count: %f", event->values[1]);