add save + restore callbacks

This commit is contained in:
Thomas Kunze
2018-09-04 21:12:50 +02:00
parent 2a292ae314
commit ecce8ddd3c
4 changed files with 155 additions and 7 deletions

Submodule src/knx updated: 7d86f63f8e...ddf99a9b96

View File

@@ -145,3 +145,33 @@ uint32_t KnxFacade::paramInt(uint32_t addr)
return _bau.parameters().getInt(addr);
}
void KnxFacade::setSaveCallback(saveRestoreCallback func)
{
_saveCallback = func;
}
void KnxFacade::setRestoreCallback(saveRestoreCallback func)
{
_restoreCallback = func;
}
uint8_t* KnxFacade::save(uint8_t* buffer)
{
if (_saveCallback != 0)
return _saveCallback(buffer);
return buffer;
}
uint8_t* KnxFacade::restore(uint8_t* buffer)
{
if (_restoreCallback != 0)
return _restoreCallback(buffer);
return buffer;
}

View File

@@ -5,7 +5,9 @@
class RunningState;
class KnxFacade
typedef uint8_t* (*saveRestoreCallback)(uint8_t* buffer);
class KnxFacade : private SaveRestore
{
public:
KnxFacade();
@@ -28,6 +30,8 @@ public:
void hardwareType(uint8_t* value);
void version(uint16_t value);
void start();
void setSaveCallback(saveRestoreCallback func);
void setRestoreCallback(saveRestoreCallback func);
uint8_t* paramData(uint32_t addr);
uint8_t paramByte(uint32_t addr);
uint16_t paramWord(uint32_t addr);
@@ -38,6 +42,11 @@ private:
uint32_t _ledPin = 16;
uint32_t _buttonPin = 0;
Ticker _ticker;
saveRestoreCallback _saveCallback = 0;
saveRestoreCallback _restoreCallback = 0;
uint8_t* save(uint8_t* buffer);
uint8_t* restore(uint8_t* buffer);
};
extern KnxFacade knx;