lib for realtimeMM funcs
Fork of realtimeMMLib by
sensor_base.h
- Committer:
- GTNicholson
- Date:
- 2017-10-02
- Revision:
- 0:9f82ee1feae7
- Child:
- 1:13301255d95a
File content as of revision 0:9f82ee1feae7:
#pragma once #include "mbed.h" #include "qeihw.h" #include "QEIx4.h" #include <cstdint> class sensor_base { public: sensor_base(); ~sensor_base(); int sensor_id; int sensor_type; char data_sample[50]; virtual char * read_data(); bool enabled; }; class sensor_onoff : public sensor_base { public: //sensor_base(); sensor_onoff(); sensor_onoff(PinName); ~sensor_onoff(); DigitalIn din; virtual char * read_data(); char data_sample[50]; }; class sensor_vin : public sensor_base { public: sensor_vin(); sensor_vin(PinName); ~sensor_vin(); AnalogIn ain; virtual char * read_data(); char data_sample[50]; }; class sensor_pulse : public sensor_base { public: sensor_pulse(); sensor_pulse(PinName); ~sensor_pulse(); void ISR1(); void reset(); float frequency; float uptime; float firstpulsetime; float lastpulsetime; float elapsedtime; virtual char * read_data(); char data_sample[50]; InterruptIn IntIn; int pulsecount; private: Timer t; float period; }; /* class sensor_pulse : public sensor_base { public: sensor_pulse(); sensor_pulse(PinName); ~sensor_pulse(); AnalogIn IntIn; //void ISR1(); //int pulsecount; //float uptime; //float firstpulsetime; //float lastpulsetime; virtual char * read_data(); char data_sample[50]; //private: //InterruptIn IntIn; }; */ class sensor_qeihw : public sensor_base { public: sensor_qeihw(); ~sensor_qeihw(); QEIHW qei; virtual char * read_data(); char data_sample[50]; }; class sensor_qeix4 : public sensor_base { public: sensor_qeix4(); ~sensor_qeix4(); QEIx4 qei; void poll(); virtual char * read_data(); char data_sample[50]; }; /* class Counter { public: Counter(PinName pin); void increment(); int read(); private: InterruptIn _interrupt; volatile int _count; }; */