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");
    }

 }

Responses

0 Replies