Example #1
0
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;
}
Example #3
0
/* ----------------------------------------------------------------------------*/
static int
register_accelerometer_callback(appdata_s *ad)
{

	dlog_print(DLOG_INFO, "basicui", "started");

    int error;
    bool supported;
    sensor_h *accelerometer = ad->accelerometer;
    sensor_listener_h *accelerationListener = ad->accelerationListener;

    error = sensor_is_supported( SENSOR_ACCELEROMETER, &supported );
    if(error != SENSOR_ERROR_NONE && supported){
     return error;
    }

    error = sensor_get_default_sensor(SENSOR_ACCELEROMETER, &accelerometer);
    if(error != SENSOR_ERROR_NONE){
     return error;
    }

    error = sensor_create_listener( accelerometer, &(ad->accelerationListener));
    if(error != SENSOR_ERROR_NONE){
     return error;
    }

    error = sensor_listener_set_event_cb( ad->accelerationListener,
            ACCELEROMETER_INTERVAL_MS, accelerometer_cb, ad );
    if(error != SENSOR_ERROR_NONE){
     return error;
    }

	//dlog_print(DLOG_INFO, "basicui", "listener");

    return SENSOR_ERROR_NONE;
}
Example #4
0
/* ----------------------------------------------------------------------------*/
static int
register_gyroscope_callback(appdata_s *ad)
{

	dlog_print(DLOG_INFO, "basicui", "started");

    int error;
    bool supported;
    sensor_h *gyroscope = ad->gyroscope;
    sensor_listener_h *gyroscopeListener = ad->gyroscopeListener;

    error = sensor_is_supported( SENSOR_GYROSCOPE , &supported );
    if(error != SENSOR_ERROR_NONE && supported){
     return error;
    }

    error = sensor_get_default_sensor(SENSOR_GYROSCOPE , &gyroscope);
    if(error != SENSOR_ERROR_NONE){
     return error;
    }

    error = sensor_create_listener( gyroscope, &(ad->gyroscopeListener));
    if(error != SENSOR_ERROR_NONE){
     return error;
    }

    error = sensor_listener_set_event_cb( ad->gyroscopeListener,
    		GYROSCOPE_INTERVAL_MS, gyroscope_cb, ad );
    if(error != SENSOR_ERROR_NONE){
     return error;
    }

	//dlog_print(DLOG_INFO, "basicui", "listener");

    return SENSOR_ERROR_NONE;
}