2016-02-01 17:52:17 +01:00
|
|
|
#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-02 10:56:15 +02:00
|
|
|
|
2016-05-10 16:04:39 +02:00
|
|
|
void send(float temperature, short humidity);
|
2016-05-02 10:56:15 +02:00
|
|
|
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
|