Red Light Work
Fork of realtimeMMLib by
Embed:
(wiki syntax)
Show/hide line numbers
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 */
Generated on Tue Jul 26 2022 06:36:17 by 1.7.2