mirror of
				https://github.com/thelsing/knx.git
				synced 2025-10-26 10:26:25 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			148 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			148 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #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);
 | |
| }
 |