Read Pressure Sensor Data
Pressure sensor data can be used for purposes like measuring water level, altitude, etc. Here, Creating Sensor Handler & Listener, Setting event callback for listener and showing pressure level in hPa are shown. Once the task is completed, sensor listener should be stopped and destroyed.
bool checkSupport(sensor_type_e type){
bool support;
sensor_is_supported(type,&support);
return support; //returns true or false based on device Support for sensor type
}
void sensorEventCallBack(sensor_h sensorHanlder, sensor_event_s *event, void *user_data){
dlog_print(DLOG_DEBUG, LOG_TAG, "Pressure :%.2f hPa", event->values[0]);
// event->values[0]: Pressure in hPa
// event->timestamp: timestamp of data
}
void logPrintSensorData(){
if(checkSupport(SENSOR_PRESSURE)){
sensor_h sensorHanlder;
sensor_get_default_sensor(SENSOR_PRESSURE, &sensorHanlder); //Gets the default pressure sensor set for the device
sensor_listener_h sensorListener;
sensor_create_listener(sensorHanlder,&sensorListener); // Creates Listener for Sensor Handler
sensor_listener_set_event_cb(sensorListener,1000, sensorEventCallBack, NULL); // Registers Event Callback for Sensor Events
sensor_listener_start(sensorListener); // Starts the Sensor Listener
/* Once Task Completed*/
//sensor_listener_stop(sensorListener);
//sensor_destroy_listener(sensorListener);
}
else {
dlog_print(DLOG_ERROR, LOG_TAG, "Pressure Sensor is not Supported on this device");
}
}