Read Heart Rate Monitor Data
The Heart Rate Monitor (HRM) sensor measures a person's heart rate in real time. Here, Creating Sensor Handler & Listener, Setting event callback for listener and showing heart rate in bpm are done. Stop the Sensor Listener and destroy it once your task is completed.
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, "Heart Rate: :%.0f bpm", event->values[0]);
// event->values[0]: heart rate in bpm
// event->timestamp: heart rate in bpm
}
void logPrintSensorData(){
if(checkSupport(SENSOR_HRM)){
sensor_h sensorHanlder;
sensor_get_default_sensor(SENSOR_HRM, &sensorHanlder); //Gets the default 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
// interval 1000ms
sensor_listener_start(sensorListener); // Starts the Sensor Listener
/* Once Task is Completed*/
//sensor_listener_stop(sensorListener);
//sensor_destroy_listener(sensorListener);
}
else {
dlog_print(DLOG_ERROR, LOG_TAG, "Heart Rate Monitor is not Supported on this device");
}
}
logPrintSensorData();