hal/arduino/HalMultiSensor/HalInterfaces.h

78 lines
1.4 KiB
C
Raw Normal View History

#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
2016-02-24 21:51:16 +01:00
class Sensor
{
public:
virtual void setup() = 0;
};
class SensorPowerConsumption : public Sensor
{
public:
// returns number of pulses from power meter
2016-02-24 21:51:16 +01:00
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;
2016-02-24 21:51:16 +01:00
virtual unsigned int getLuminosity() = 0;
};
class Protocol
{
public:
virtual void setup() = 0;
virtual void send() = 0;
};
2016-02-24 21:51:16 +01:00
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