Ball Sensor

Dependents:  

ballsens.cpp

Committer:
Reiko
Date:
2013-09-09
Revision:
0:962fa32d6675

File content as of revision 0:962fa32d6675:

#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();
}