Red Light Work

Fork of realtimeMMLib by Graham Nicholson

Revision:
0:9f82ee1feae7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensor_base.h	Mon Oct 02 11:18:47 2017 +0000
@@ -0,0 +1,122 @@
+#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;
+};
+
+*/