Index: trunk/MagicSoft/Cosy/devdrv/macs.cc
===================================================================
--- trunk/MagicSoft/Cosy/devdrv/macs.cc	(revision 8866)
+++ trunk/MagicSoft/Cosy/devdrv/macs.cc	(revision 8869)
@@ -85,4 +85,5 @@
     case 0xc500: return "Error reset";
     case 0xe225: return "Motor overload";
+    case 0xe249: return "Positioning command velocity exceeds limit bipolar";
     case 0xe250: return "Drive overtemp warning";
     case 0xe251: return "Motor overtemp warning";
@@ -108,7 +109,7 @@
     case 0xf630: return "Negative sw end-switch";
     case 0xf634: return "Emergency-Stop";
-    case 0xf643: return "Positive hw end-switch";
-    case 0xf644: return "Negative hw end-switch";
-    case 0xf870: return "24V DC error.";
+    case 0xf643: return "Positive hardware end-switch activated";
+    case 0xf644: return "Negative hardware end-switch activated";
+    case 0xf870: return "24V DC error";
     case 0xf878: return "Velocity loop error";
     }
@@ -514,5 +515,5 @@
 
     // REMOVE THIS AND LET CC START THE NODE
-    //StartNode();
+    StartNode();
 
     gLog << inf2 << "- " << GetNodeName() << ": Checking armed status." << endl;
@@ -638,8 +639,9 @@
     {
         gLog << err << GetNodeName() << ": ERROR - Moving without being armed is not allowed." << endl;
-        return;
-    }
-
-    gLog << dbg << GetNodeName() << ": Starting abolsute positioning to " << (LWORD_t)pos << " ticks." << endl;
+        SetZombie();
+        return;
+    }
+
+    gLog << dbg << GetNodeName() << ": Starting abolsute positioning to " << (LWORDS_t)pos << " ticks." << endl;
     SendSDO(0x6004, 1, (LWORD_t)pos);
     fPosActive = kTRUE; // Make sure that the status is set correctly already before the first PDO
@@ -651,8 +653,9 @@
     {
         gLog << err << GetNodeName() << ": ERROR - Moving without being armed is not allowed." << endl;
-        return;
-    }
-
-    gLog << dbg << GetNodeName() << ": Starting relative positioning by " << (LWORD_t)pos << " ticks." << endl;
+        SetZombie();
+        return;
+    }
+
+    gLog << dbg << GetNodeName() << ": Starting relative positioning by " << (LWORDS_t)pos << " ticks." << endl;
     SendSDO(0x6004, 0, (LWORD_t)pos);
     fPosActive = kTRUE; // Make sure that the status is set correctly already before the first PDO
Index: trunk/MagicSoft/Cosy/devdrv/shaftencoder.cc
===================================================================
--- trunk/MagicSoft/Cosy/devdrv/shaftencoder.cc	(revision 8866)
+++ trunk/MagicSoft/Cosy/devdrv/shaftencoder.cc	(revision 8869)
@@ -15,9 +15,10 @@
 ShaftEncoder::ShaftEncoder(const BYTE_t nodeid, const char *name)
     : NodeDrv(nodeid, name),
-    fPos(0), fVel(0), fAcc(0), fTurn(0), fTicks(0),
+    fPos(0), fVel(0), fAcc(0), fTurn(0), fTicks(0), fTurns(0),
     fDirection(kUndefined), fHysteresisPos(0), fHysteresisNeg(0),
     fLabel(NULL), fUpdPos(0),
     fPosHasChanged(false), fDirHasChanged(false),
-    fReport(NULL), fMotor(0), fOffset(0), fDirChangedPos(0)
+    fReport(NULL), fMotor(NULL),
+    fOffset(0), fDirChangedPos(0), fDirChangedOffset(0)
 {
 }
