Red Light Work

Fork of realtimeMMLib by Graham Nicholson

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers sensor_base.h Source File

sensor_base.h

00001 #pragma once
00002 #include "mbed.h"
00003 #include "qeihw.h"
00004 #include "QEIx4.h"
00005 #include <cstdint>
00006 
00007 
00008 
00009 class sensor_base
00010 {
00011 public:
00012     sensor_base();
00013     ~sensor_base();
00014     int sensor_id;
00015     int sensor_type;
00016     char data_sample[50];
00017     virtual char * read_data();
00018     bool enabled;
00019 };
00020 
00021 
00022 class sensor_onoff : public sensor_base
00023 {
00024 public:
00025     //sensor_base();
00026     sensor_onoff();
00027     sensor_onoff(PinName);
00028     ~sensor_onoff();
00029     DigitalIn din;
00030     virtual char * read_data();
00031     char data_sample[50];
00032 };
00033 
00034 
00035 class sensor_vin : public sensor_base
00036 {
00037 public:
00038     sensor_vin();
00039     sensor_vin(PinName);
00040     ~sensor_vin();
00041     AnalogIn ain;
00042     virtual char * read_data();
00043     char data_sample[50];
00044 };
00045 
00046 class sensor_pulse : public sensor_base
00047 {
00048 public:
00049     sensor_pulse();
00050     sensor_pulse(PinName);
00051     ~sensor_pulse();
00052     void ISR1();
00053     void reset();
00054     float frequency;    
00055     float uptime;
00056     float firstpulsetime;
00057     float lastpulsetime;
00058     float elapsedtime;
00059     virtual char * read_data();
00060     char data_sample[50];
00061     InterruptIn IntIn;
00062     int pulsecount;
00063 private:        
00064     Timer t;
00065     float period;
00066 };
00067 
00068 /*
00069 class sensor_pulse : public sensor_base
00070 {
00071 public:
00072     sensor_pulse();
00073     sensor_pulse(PinName);
00074     ~sensor_pulse();
00075     AnalogIn IntIn;
00076     //void ISR1();
00077     //int pulsecount;
00078     //float uptime;
00079     //float firstpulsetime;
00080     //float lastpulsetime;
00081     virtual char * read_data();
00082     char data_sample[50];  
00083 //private:
00084     //InterruptIn IntIn;
00085 };
00086 
00087 */
00088 
00089 class sensor_qeihw : public sensor_base
00090 {
00091 public:
00092     sensor_qeihw();
00093     ~sensor_qeihw();
00094     QEIHW qei;
00095     virtual char * read_data();
00096     char data_sample[50];
00097 };
00098 
00099 class sensor_qeix4 : public sensor_base
00100 {
00101 public:
00102     sensor_qeix4();
00103     ~sensor_qeix4();
00104     QEIx4 qei;
00105     void poll();
00106     virtual char * read_data();
00107     char data_sample[50];
00108 };
00109 
00110 
00111 /*
00112 class Counter {
00113 public:
00114     Counter(PinName pin);
00115     void increment();
00116     int read(); 
00117 private:
00118     InterruptIn _interrupt;
00119     volatile int _count;
00120 };
00121 
00122 */