#ifndef HALINTERFACES_H #define HALINTERFACES_H #include "HalConfiguration.h" #ifdef ENABLE_DEBUG #define DEBUG(msg) \ Serial.println(msg); \ Serial.flush(); #define DEBUGF(msg, ...) \ static char buffer[80];\ snprintf(buffer, sizeof(buffer), msg, __VA_ARGS__);\ Serial.println(buffer);\ Serial.flush(); #else #define DEBUG(msg) #define DEBUGF(msg, ...) #endif class Sensor { public: virtual void setup() = 0; }; class SensorPowerConsumption : public Sensor { public: // returns number of pulses from power meter virtual unsigned int getConsumption() = 0; virtual void reset() = 0; }; class SensorTemperature : public Sensor { public: virtual int getTemperature() = 0; virtual int getHumidity() = 0; }; class SensorLight : public Sensor { public: virtual void setup() = 0; virtual unsigned int getLuminosity() = 0; }; class Protocol { public: virtual void setup() = 0; virtual void send() = 0; }; class ProtocolPowerConsumption : public Protocol { public: virtual void setConsumption(unsigned int cons) = 0; }; class ProtocolTemperature : public Protocol { public: virtual void setTemperature(float temp) = 0; virtual void setHumidity(unsigned char humidity) = 0; }; class ProtocolLight : public Protocol { public: virtual void setLuminosity(int lumen) = 0; }; #endif // HALINTERFACES_H