ExternalIn
externalin.cpp@1:feaee10590b7, 2013-09-19 (annotated)
- Committer:
- Reiko
- Date:
- Thu Sep 19 13:10:36 2013 +0000
- Revision:
- 1:feaee10590b7
- Parent:
- 0:7e487b9595e4
- Child:
- 2:6c525c701aad
Changed read() to use getPin() method
Who changed what in which revision?
User | Revision | Line number | New 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 | 1:feaee10590b7 | 12 | return extIO->getPin(inPin); |
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 | } |