ExternalIn
Diff: externalin.cpp
- Revision:
- 0:7e487b9595e4
- Child:
- 1:feaee10590b7
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/externalin.cpp Mon Sep 09 17:11:39 2013 +0000 @@ -0,0 +1,35 @@ +#include "externalin.h" + +ExternalIn::ExternalIn(PCA9555 *ioExt, unsigned int pin) + : extIO(ioExt), inPin(pin) { + + pinState = false; + + extIO->change(this, &ExternalIn::callChange); +} + +bool ExternalIn::read() { + return (extIO->read() & ((unsigned int)1 << inPin)) > 0; +} + +void ExternalIn::setState(bool newState) { + bool oldState = pinState; + pinState = newState; + /*if (oldState != newState) { + _callbackChange.call(); + }*/ +} + +void ExternalIn::change(void (*function)(void)) { + _callbackChange.attach(function); +} +/* +template<typename T> +void BallSens::change(T *object, void (T::*member)(void)) { + _callbackChange.attach(object, member); +} +*/ +void ExternalIn::callChange(void) { + //setState((extIO->read() & ((unsigned int)1 << inPin)) > 0); + _callbackChange.call(); +} \ No newline at end of file