#include "knx_facade.h" #include "state.h" #include "button.h" #include "led.h" #include "nowifistate.h" KnxFacade knx; KnxFacade::KnxFacade() : _bau(_platform) { manufacturerId(0xfa); } bool KnxFacade::enabled() { return _bau.enabled(); } void KnxFacade::enabled(bool value) { _bau.enabled(true); } bool KnxFacade::progMode() { return _bau.deviceObject().progMode(); } void KnxFacade::progMode(bool value) { _bau.deviceObject().progMode(value); } bool KnxFacade::configured() { return _bau.configured(); } uint32_t KnxFacade::ledPin() { return _ledPin; } void KnxFacade::ledPin(uint32_t value) { _ledPin = value; } uint32_t KnxFacade::buttonPin() { return _buttonPin; } void KnxFacade::buttonPin(uint32_t value) { _buttonPin = value; } void KnxFacade::readMemory() { _bau.readMemory(); } void KnxFacade::loop() { if (currentState) currentState->loop(); } void KnxFacade::knxLoop() { _bau.loop(); } void KnxFacade::registerGroupObjects(GroupObject* groupObjects, uint16_t count) { _bau.groupObjectTable().groupObjects(groupObjects, count); } void KnxFacade::manufacturerId(uint16_t value) { _bau.deviceObject().manufacturerId(value); } void KnxFacade::bauNumber(uint32_t value) { _bau.deviceObject().bauNumber(value); } void KnxFacade::orderNumber(const char* value) { _bau.deviceObject().orderNumber(value); } void KnxFacade::hardwareType(uint8_t* value) { _bau.deviceObject().hardwareType(value); } void KnxFacade::version(uint16_t value) { _bau.deviceObject().version(value); } void KnxFacade::start() { pinMode(_ledPin, OUTPUT); pinMode(_buttonPin, INPUT); attachInterrupt(_buttonPin, buttonDown, FALLING); switchToSate(noWifiState); checkStates(); _ticker.attach_ms(100, doLed); } uint8_t* KnxFacade::paramData(uint32_t addr) { if (!_bau.configured()) return nullptr; return _bau.parameters().data(addr); } uint8_t KnxFacade::paramByte(uint32_t addr) { if (!_bau.configured()) return 0; return _bau.parameters().getByte(addr); } uint16_t KnxFacade::paramWord(uint32_t addr) { if (!_bau.configured()) return 0; return _bau.parameters().getWord(addr); } uint32_t KnxFacade::paramInt(uint32_t addr) { if (!_bau.configured()) return 0; return _bau.parameters().getInt(addr); }