Ball Sensor
Diff: ballsens.cpp
- Revision:
- 0:962fa32d6675
diff -r 000000000000 -r 962fa32d6675 ballsens.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ballsens.cpp Mon Sep 09 17:07:33 2013 +0000 @@ -0,0 +1,36 @@ +#include "ballsens.h" + +BallSens::BallSens(PCA9555 *ioExt, unsigned int ballPin) + : extIO(ioExt), ballPinNumber(ballPin) { + + ballState = false; + + extIO->change(this, &BallSens::callChange); +} + +bool BallSens::read() { + //return ballState; + return (extIO->read() & 0x0400) > 0; +} + +void BallSens::setState(bool newState) { + bool oldState = ballState; + ballState = newState; + /*if (oldState != newState) { + _callbackChange.call(); + }*/ +} + +void BallSens::change(void (*function)(void)) { + _callbackChange.attach(function); +} +/* +template<typename T> +void BallSens::change(T *object, void (T::*member)(void)) { + _callbackChange.attach(object, member); +} +*/ +void BallSens::callChange(void) { + setState((extIO->read() & 0x0400) > 0); + _callbackChange.call(); +} \ No newline at end of file