2018-03-20 23:56:42 +01:00
|
|
|
#pragma once
|
2018-11-07 00:32:36 +01:00
|
|
|
|
|
|
|
#ifdef ARDUINO_ARCH_SAMD
|
|
|
|
#include "samd_platform.h"
|
|
|
|
#include "knx/bau07B0.h"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef ARDUINO_ARCH_ESP8266
|
2018-03-20 23:56:42 +01:00
|
|
|
#include "esp_platform.h"
|
2018-04-09 22:46:21 +02:00
|
|
|
#include "knx/bau57B0.h"
|
2018-11-07 00:32:36 +01:00
|
|
|
#endif
|
2018-03-20 23:56:42 +01:00
|
|
|
|
2018-04-09 23:58:35 +02:00
|
|
|
|
2018-09-04 21:12:50 +02:00
|
|
|
typedef uint8_t* (*saveRestoreCallback)(uint8_t* buffer);
|
|
|
|
|
|
|
|
class KnxFacade : private SaveRestore
|
2018-03-20 23:56:42 +01:00
|
|
|
{
|
|
|
|
public:
|
2018-11-07 00:32:36 +01:00
|
|
|
KnxFacade(BauSystemB& bau);
|
2018-03-20 23:56:42 +01:00
|
|
|
bool enabled();
|
|
|
|
void enabled(bool value);
|
|
|
|
bool progMode();
|
|
|
|
void progMode(bool value);
|
|
|
|
bool configured();
|
2018-04-09 23:58:35 +02:00
|
|
|
uint32_t ledPin();
|
|
|
|
void ledPin(uint32_t value);
|
|
|
|
uint32_t buttonPin();
|
|
|
|
void buttonPin(uint32_t value);
|
2018-03-20 23:56:42 +01:00
|
|
|
void readMemory();
|
2018-09-15 00:22:30 +02:00
|
|
|
void writeMemory();
|
2018-03-20 23:56:42 +01:00
|
|
|
void loop();
|
|
|
|
void registerGroupObjects(GroupObject* groupObjects, uint16_t count);
|
|
|
|
void manufacturerId(uint16_t value);
|
|
|
|
void bauNumber(uint32_t value);
|
|
|
|
void orderNumber(const char* value);
|
|
|
|
void hardwareType(uint8_t* value);
|
|
|
|
void version(uint16_t value);
|
2018-04-09 23:58:35 +02:00
|
|
|
void start();
|
2018-09-04 21:12:50 +02:00
|
|
|
void setSaveCallback(saveRestoreCallback func);
|
|
|
|
void setRestoreCallback(saveRestoreCallback func);
|
2018-03-20 23:56:42 +01:00
|
|
|
uint8_t* paramData(uint32_t addr);
|
|
|
|
uint8_t paramByte(uint32_t addr);
|
|
|
|
uint16_t paramWord(uint32_t addr);
|
|
|
|
uint32_t paramInt(uint32_t addr);
|
|
|
|
private:
|
2018-11-07 00:32:36 +01:00
|
|
|
BauSystemB& _bau;
|
2019-01-03 22:20:50 +01:00
|
|
|
uint32_t _ledPin = LED_BUILTIN;
|
2018-04-09 23:58:35 +02:00
|
|
|
uint32_t _buttonPin = 0;
|
2018-11-07 00:32:36 +01:00
|
|
|
#ifdef USE_STATES
|
2018-04-09 23:58:35 +02:00
|
|
|
Ticker _ticker;
|
2018-11-07 00:32:36 +01:00
|
|
|
#endif
|
2018-09-04 21:12:50 +02:00
|
|
|
saveRestoreCallback _saveCallback = 0;
|
|
|
|
saveRestoreCallback _restoreCallback = 0;
|
|
|
|
|
|
|
|
uint8_t* save(uint8_t* buffer);
|
|
|
|
uint8_t* restore(uint8_t* buffer);
|
2018-03-20 23:56:42 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
extern KnxFacade knx;
|