Motor

Fork of Motor by Reiko Randoja

Revision:
8:63a67086a1b5
Parent:
7:fbd3fa0445e5
Child:
9:bec5a728405f
--- a/motor.h	Tue Sep 17 22:52:10 2013 +0000
+++ b/motor.h	Thu Sep 19 13:08:56 2013 +0000
@@ -7,6 +7,8 @@
  /** Class for controlling motors trough PCA9555 */
 class Motor {
 protected:
+    FunctionPointer stallChangeCallback;
+    FunctionPointer stallEndCallback;
     FunctionPointer stallWarningCallback;
     FunctionPointer stallErrorCallback;
 public:
@@ -35,6 +37,22 @@
     */
     void pid();
     
+    int getStallLevel();
+    
+    void stallChange(void (*function)(void));
+    
+    template<typename T>
+    void stallChange(T *object, void (T::*member)(void)) { 
+        stallChangeCallback.attach(object, member); 
+    }
+    
+    void stallEnd(void (*function)(void));
+    
+    template<typename T>
+    void stallEnd(T *object, void (T::*member)(void)) { 
+        stallEndCallback.attach(object, member); 
+    }
+    
     void stallWarning(void (*function)(void));
     
     template<typename T>
@@ -83,8 +101,11 @@
     int iMax;
     
     int currentPWM;
-    int stallCounter;
-    int stallCounterLimit;
+    int stallCount;
+    int prevStallCount;
+    int stallWarningLimit;
+    int stallErrorLimit;
+    int stallLevel;
 };
 
 #endif
\ No newline at end of file