A compilation of some hardware sensors and their shared programming interfaces.
Embed:
(wiki syntax)
Show/hide line numbers
PeriodicSensor.cpp
00001 /* PeriodicSensor.cpp 00002 * Tested with mbed board: FRDM-KL46Z 00003 * Author: Mark Gottscho 00004 * mgottscho@ucla.edu 00005 */ 00006 00007 #include "mbed.h" 00008 #include "PeriodicSensor.h" 00009 00010 PeriodicSensor::PeriodicSensor() : 00011 __dataReady(false), 00012 __interrupt(), 00013 __sample_period(0), 00014 __background_sampling(false), 00015 __min_sample_period(0.05) { 00016 __interrupt.detach(); 00017 } 00018 00019 PeriodicSensor::PeriodicSensor(float min_sample_period) : 00020 __dataReady(false), 00021 __interrupt(), 00022 __sample_period(0), 00023 __background_sampling(false), 00024 __min_sample_period(0.05) { 00025 if (min_sample_period > 0) 00026 __min_sample_period = min_sample_period; 00027 __interrupt.detach(); 00028 } 00029 00030 PeriodicSensor::~PeriodicSensor() { } 00031 00032 bool PeriodicSensor::isDataReady () { 00033 return __dataReady; 00034 } 00035 00036 void PeriodicSensor::enableBackgroundSampling(bool enable, float sample_period) { 00037 if (enable && sample_period >= __min_sample_period-0.0001) { 00038 __sample_period = sample_period; 00039 __background_sampling = true; 00040 __interrupt.attach(this, &PeriodicSensor::__sample_data_ISR, sample_period); 00041 } 00042 else if (!enable) { 00043 __sample_period = 0; 00044 __background_sampling = false; 00045 __interrupt.detach(); 00046 } 00047 } 00048 00049 bool PeriodicSensor::isBackgroundSamplingEnabled () { 00050 return __background_sampling; 00051 } 00052 00053 float PeriodicSensor::getSamplePeriod () { 00054 return __sample_period; 00055 } 00056 00057 float PeriodicSensor::getMinSamplePeriod () { 00058 return __min_sample_period; 00059 }
Generated on Wed Jul 13 2022 19:24:41 by 1.7.2