diff --git a/src/app/IOManager.cpp b/src/app/IOManager.cpp new file mode 100644 index 0000000..5226158 --- /dev/null +++ b/src/app/IOManager.cpp @@ -0,0 +1,16 @@ +#include "IOManager.h" + +IOManager::IOManager(PCF8574 &pcf) : _pcf(pcf) +{ +} + +PCF8574 &IOManager::getPcf() +{ + return _pcf; +} + +void IOManager::setISROnIOChange(void (*isrFunc)(), Pin pin) +{ + pinMode(pin, INPUT); + attachInterrupt(digitalPinToInterrupt(pin), isrFunc, FALLING); +} diff --git a/src/app/IOManager.h b/src/app/IOManager.h new file mode 100644 index 0000000..2bfc125 --- /dev/null +++ b/src/app/IOManager.h @@ -0,0 +1,17 @@ +#ifndef IOMANAGER_H +#define IOMANAGER_H +#include "definition.h" +#include + +class IOManager +{ + public: + IOManager(PCF8574 &pcf); + void setISROnIOChange(void (*isrFunc)(), Pin pin = GPIO_0); + PCF8574 &getPcf(); + private: + PCF8574 &_pcf; + protected: +}; + +#endif //IOMANAGER_H