ExternalIn

Dependents:   Telliskivi2_2014

Revision:
0:7e487b9595e4
Child:
1:feaee10590b7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/externalin.cpp	Mon Sep 09 17:11:39 2013 +0000
@@ -0,0 +1,35 @@
+#include "externalin.h"
+
+ExternalIn::ExternalIn(PCA9555 *ioExt, unsigned int pin)
+    : extIO(ioExt), inPin(pin) {
+    
+    pinState = false;
+ 
+    extIO->change(this, &ExternalIn::callChange);
+}
+
+bool ExternalIn::read() {
+    return (extIO->read() & ((unsigned int)1 << inPin)) > 0;
+}
+
+void ExternalIn::setState(bool newState) {
+    bool oldState = pinState;
+    pinState = newState;
+    /*if (oldState != newState) {
+        _callbackChange.call();
+    }*/
+}
+
+void ExternalIn::change(void (*function)(void)) { 
+    _callbackChange.attach(function);
+}
+/*
+template<typename T>
+void BallSens::change(T *object, void (T::*member)(void)) { 
+    _callbackChange.attach(object, member); 
+}
+*/
+void ExternalIn::callChange(void) {
+    //setState((extIO->read() & ((unsigned int)1 << inPin)) > 0);
+    _callbackChange.call();
+}
\ No newline at end of file