hal/arduino/HalMultiSensor/ProtocolOregon.h

38 lines
1 KiB
C
Raw Normal View History

#ifndef PROTOCOLOREGON_H
#define PROTOCOLOREGON_H
2016-02-24 21:51:16 +01:00
#include <Arduino.h>
#include "HalInterfaces.h"
2016-02-24 15:31:51 +01:00
2016-02-24 21:51:16 +01:00
2016-07-08 22:14:23 +02:00
class ProtocolOregon : public ProtocolTemperature, public ProtocolPowerConsumption, public ProtocolLight
2016-02-24 15:31:51 +01:00
{
public:
2016-05-10 16:04:39 +02:00
ProtocolOregon(short pin, unsigned char address) : txPin(pin), address(address){};
2016-02-24 15:31:51 +01:00
virtual void setup();
2016-05-10 16:04:39 +02:00
virtual void send(const TemperatureData& data);
virtual void send(const PowerData& data);
2016-07-08 22:14:23 +02:00
virtual void send(const LightData& data);
2016-05-10 16:04:39 +02:00
2016-02-24 15:31:51 +01:00
private:
2016-05-10 16:04:39 +02:00
short txPin;
2016-02-24 15:31:51 +01:00
unsigned char address;
2016-05-10 16:04:39 +02:00
void send(float temperature, short humidity);
void setType(byte *data, byte b1, byte b2);
void setChannel(byte *data, byte channel);
void setId(byte *data, byte id);
void setBatteryLevel(byte *data, bool level);
void setTemperature(byte *data, float temp);
void setHumidity(byte* data, byte hum);
void calculateAndSetChecksum(byte* data);
void sendZero(void);
void sendOne(void);
void sendData(byte *data, byte length);
void rfSend(byte *data, byte size);
2016-02-24 15:31:51 +01:00
};
2016-02-24 21:51:16 +01:00
#endif // PROTOCOLOREGON_H