ExternalIn

Dependents:   Telliskivi2_2014

Committer:
Reiko
Date:
Mon Sep 09 17:11:39 2013 +0000
Revision:
0:7e487b9595e4
Child:
1:feaee10590b7
Initial version

Who changed what in which revision?

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