void start_heartrate_sensor(appdata_s *ad) { sensor_error_e err = SENSOR_ERROR_NONE; sensor_get_default_sensor(SENSOR_HRM, &HRM_info.sensor); err = sensor_create_listener(HRM_info.sensor, &HRM_info.sensor_listener); sensor_listener_set_option(HRM_info.sensor_listener,SENSOR_OPTION_ALWAYS_ON); sensor_listener_set_event_cb(HRM_info.sensor_listener, 5000, _HRM_value, ad); //sensor_listener_set_event_cb() sensor_listener_start(HRM_info.sensor_listener); }
bool _init_sensor(sensor_type_e type, sensor_h *sensor, sensor_listener_h *listener) { int error = SENSOR_ERROR_NONE; error = sensor_get_default_sensor(type, sensor); if (error != SENSOR_ERROR_NONE) { LOGE("Failed to get default sensor %d with error", type, error); return false; } error = sensor_create_listener(*sensor, listener); if (error != SENSOR_ERROR_NONE) { LOGE("Failed to init listener for sensor %d with error", type, error); return false; } error = sensor_listener_set_event_cb(*listener, 100, _on_sensor_event, NULL); if (error != SENSOR_ERROR_NONE) { LOGE("Failed to set envent_cb for sensor %d with error", type, error); return false; } error = sensor_listener_start(*listener); if (error != SENSOR_ERROR_NONE) { LOGE("Failed to start listener for sensor %d with error", type, error); return false; } /* Needed for data acquisition when LCD screen is off */ #if 0 /* TODO: Find out how to stop acquisition */ error = sensor_listener_set_option(*listener, SENSOR_OPTION_ON_IN_SCREEN_OFF); if (error != SENSOR_ERROR_NONE) { LOGE("Failed to set ON option for sensor %d with error", type, error); return false; } #endif return true; }