Ball Sensor

Dependents:  

Committer:
Reiko
Date:
Mon Sep 09 17:07:33 2013 +0000
Revision:
0:962fa32d6675
Initial version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Reiko 0:962fa32d6675 1 #include "ballsens.h"
Reiko 0:962fa32d6675 2
Reiko 0:962fa32d6675 3 BallSens::BallSens(PCA9555 *ioExt, unsigned int ballPin)
Reiko 0:962fa32d6675 4 : extIO(ioExt), ballPinNumber(ballPin) {
Reiko 0:962fa32d6675 5
Reiko 0:962fa32d6675 6 ballState = false;
Reiko 0:962fa32d6675 7
Reiko 0:962fa32d6675 8 extIO->change(this, &BallSens::callChange);
Reiko 0:962fa32d6675 9 }
Reiko 0:962fa32d6675 10
Reiko 0:962fa32d6675 11 bool BallSens::read() {
Reiko 0:962fa32d6675 12 //return ballState;
Reiko 0:962fa32d6675 13 return (extIO->read() & 0x0400) > 0;
Reiko 0:962fa32d6675 14 }
Reiko 0:962fa32d6675 15
Reiko 0:962fa32d6675 16 void BallSens::setState(bool newState) {
Reiko 0:962fa32d6675 17 bool oldState = ballState;
Reiko 0:962fa32d6675 18 ballState = newState;
Reiko 0:962fa32d6675 19 /*if (oldState != newState) {
Reiko 0:962fa32d6675 20 _callbackChange.call();
Reiko 0:962fa32d6675 21 }*/
Reiko 0:962fa32d6675 22 }
Reiko 0:962fa32d6675 23
Reiko 0:962fa32d6675 24 void BallSens::change(void (*function)(void)) {
Reiko 0:962fa32d6675 25 _callbackChange.attach(function);
Reiko 0:962fa32d6675 26 }
Reiko 0:962fa32d6675 27 /*
Reiko 0:962fa32d6675 28 template<typename T>
Reiko 0:962fa32d6675 29 void BallSens::change(T *object, void (T::*member)(void)) {
Reiko 0:962fa32d6675 30 _callbackChange.attach(object, member);
Reiko 0:962fa32d6675 31 }
Reiko 0:962fa32d6675 32 */
Reiko 0:962fa32d6675 33 void BallSens::callChange(void) {
Reiko 0:962fa32d6675 34 setState((extIO->read() & 0x0400) > 0);
Reiko 0:962fa32d6675 35 _callbackChange.call();
Reiko 0:962fa32d6675 36 }