From 81056624b57cfd338138e6ddb53469760df85c0c Mon Sep 17 00:00:00 2001 From: anschrammh Date: Tue, 23 Apr 2019 07:59:37 +0200 Subject: [PATCH] Added the IOManager class --- src/app/IOManager.cpp | 16 ++++++++++++++++ src/app/IOManager.h | 17 +++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 src/app/IOManager.cpp create mode 100644 src/app/IOManager.h 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