IoT - Kubus / Mbed 2 deprecated Kubus

Dependencies:   mbed nRF24L01P

sensor.h

Committer:
pannaannap
Date:
2017-01-09
Revision:
27:27cffdb2e9d3
Child:
34:e67581c9b50d

File content as of revision 27:27cffdb2e9d3:

#include "common.h"

class Sensor {
  public:
    explicit Sensor(SENSOR_TYPE id);
    
    virtual void updateState() = 0;
    virtual Data dataToSend() = 0;
    virtual void resetState() = 0;
    
 protected:
  SENSOR_TYPE sensor_id_;
};

class DigitalSensor: public Sensor {
  public:
    explicit DigitalSensor(SENSOR_TYPE id, PinName pin=PA_10);
    
    virtual void updateState();
    virtual Data dataToSend();
    virtual void resetState();
    
    static const float SEND_INTERVAL;
  private:
    DigitalIn sensor_;
    bool last_state_;
    int32_t changes_counter_;
};

class AnalogSensor: public Sensor {
  public:
    explicit AnalogSensor(SENSOR_TYPE id, PinName pin=PA_4);
    
    virtual void updateState();
    virtual Data dataToSend();
    virtual void resetState();
    
    static const float SEND_INTERVAL;
  private:
    AnalogIn sensor_;
};