Index: trunk/MagicSoft/Cosy/devdrv/macs.cc
===================================================================
--- trunk/MagicSoft/Cosy/devdrv/macs.cc	(revision 2280)
+++ trunk/MagicSoft/Cosy/devdrv/macs.cc	(revision 2518)
@@ -1,5 +1,5 @@
 #include "macs.h"
 
-#include <iostream.h>
+#include <iostream>
 #include <sys/time.h>   // timeval->tv_sec
 
@@ -9,4 +9,6 @@
 
 ClassImp(Macs);
+
+using namespace std;
 
 /*
@@ -66,4 +68,12 @@
         return;
 
+    case 0x100c:
+        lout << "- " << GetNodeName() << ": Guard time:" << dec << val << endl;
+        return;
+
+    case 0x100d:
+        lout << "- " << GetNodeName() << ": Life time factor:" << dec << val << endl;
+        return;
+
     case 0x2002:
         cout << GetNodeName() << ": Current velocity: " << dec << val << endl;
@@ -140,4 +150,48 @@
     switch (idx)
     {
+    case 0x1000:
+        switch (subidx)
+        {
+        case 1:
+            //lout << ddev(MLog::eGui);
+            lout << "- " << GetNodeName() << ": State of node set." << endl;
+            //lout << edev(MLog::eGui);
+            return;
+        }
+        break;
+
+    case 0x100c:
+        switch (subidx)
+        {
+        case 0:
+            //lout << ddev(MLog::eGui);
+            lout << "- " << GetNodeName() << ": Guard time set." << endl;
+            //lout << edev(MLog::eGui);
+            return;
+        }
+        break;
+
+    case 0x100d:
+        switch (subidx)
+        {
+        case 0:
+            //lout << ddev(MLog::eGui);
+            lout << "- " << GetNodeName() << ": Life time factor set." << endl;
+            //lout << edev(MLog::eGui);
+            return;
+        }
+        break;
+
+    case 0x1800:
+        switch (subidx)
+        {
+        case 1:
+            //lout << ddev(MLog::eGui);
+            lout << "- " << GetNodeName() << ": Status of PDO1 set." << endl;
+            //lout << edev(MLog::eGui);
+            return;
+        }
+        break;
+
     case 0x2002:
         switch (subidx)
@@ -189,4 +243,33 @@
         HandleNodeguard(tv);
         return;
+
+    case 0x6000:
+        //lout << ddev(MLog::eGui);
+        lout << "- " << GetNodeName() << ": Rotation direction set." << endl;
+        //lout << edev(MLog::eGui);
+        return;
+
+    case 0x6002:
+        //lout << ddev(MLog::eGui);
+        lout << "- " << GetNodeName() << ": Velocitz resolution set." << endl;
+        //lout << edev(MLog::eGui);
+        return;
+
+    case 0x6003:
+        switch (subidx)
+        {
+        case 0:
+            //lout << ddev(MLog::eGui);
+            lout << "- " << GetNodeName() << ": Absolute positioning started." << endl;
+            //lout << edev(MLog::eGui);
+            return;
+
+        case 1:
+            //lout << ddev(MLog::eGui);
+            lout << "- " << GetNodeName() << ": Relative positioning started." << endl;
+            //lout << edev(MLog::eGui);
+            return;
+        }
+        break;
 
     case 0x6004:
@@ -271,6 +354,4 @@
     StopGuarding();
 
-// ****FIXME***   usleep(2000*GetGuardTime());
-
     lout << "- " << GetNodeName() << ": Requesting Mac Software Version." << endl;
     RequestSDO(0x100a);
@@ -302,7 +383,7 @@
     //SetNoWait(TRUE);
 
-    // StartGuarding(200, 2, kFALSE); // Using PDO1 @ 100ms
-    // StartGuarding(250, 4);
-    // StartHostGuarding();
+    StartGuarding(250, 1, kFALSE); // Using PDO1 @ 100ms
+    //StartGuarding(250, 4);
+    //StartHostGuarding();
 
     StartNode();
@@ -478,10 +559,8 @@
 void Macs::HandlePDO1(BYTE_t *data, timeval_t *tv)
 {
-    // FIXME!!!!
+    // FIXME!!!! Only 0x4000 should do this to be
+    // CanOpen conform
     HandleNodeguard(tv);
-/*
-    Timer t(tv);
-    cout << GetNodeName()<< " " <<t.GetTimeStr() << endl;
-*/
+
     fPdoPos    = (data[4]<<24) | (data[5]<<16) | (data[6]<<8) | data[7];
 
@@ -656,5 +735,8 @@
         return;
 
-    lout << GetNodeName() << ": Status PDO3 = ";
+    Timer time;
+    time.Now();
+
+    lout << time << ": " << GetNodeName() << " - PDO3 = ";
     const Bool_t ready = data[3]&0x01;
     const Bool_t fuse  = data[3]&0x02;
Index: trunk/MagicSoft/Cosy/devdrv/shaftencoder.cc
===================================================================
--- trunk/MagicSoft/Cosy/devdrv/shaftencoder.cc	(revision 2280)
+++ trunk/MagicSoft/Cosy/devdrv/shaftencoder.cc	(revision 2518)
@@ -4,14 +4,12 @@
 #include "network.h"
 
-#include <iostream.h>      // cout
-#include <iomanip.h>       // setw, setfill
-
-#include <TSystem.h>       // gSystem
+#include <iostream>        // cout
+#include <iomanip>         // setw, setfill
+
 #include <TGLabel.h>       // TGLabel->SetText
 
-#include <pthread.h>
-#include <sys/resource.h>  // PRIO_PROCESS
-
 ClassImp(ShaftEncoder);
+
+using namespace std;
 
 ShaftEncoder::ShaftEncoder(const BYTE_t nodeid, const char *name, MLog &out)
@@ -104,4 +102,55 @@
 }
 
+void ShaftEncoder::HandleSDOOK(WORD_t idx, BYTE_t subidx, LWORD_t data, timeval_t *tv)
+{
+    switch (idx)
+    {
+    case 0x1802:
+        switch (subidx)
+        {
+        case 1:
+            //lout << ddev(MLog::eGui);
+            lout << "- " << GetNodeName() << ": PDOs configured." << endl;
+            //lout << edev(MLog::eGui);
+            return;
+        }
+        break;
+
+    case 0x6001:
+        switch (subidx)
+        {
+        case 0:
+            //lout << ddev(MLog::eGui);
+            lout << "- " << GetNodeName() << ": Log.ticks/revolution set." << endl;
+            //lout << edev(MLog::eGui);
+            return;
+        }
+        break;
+
+    case 0x6002:
+        switch (subidx)
+        {
+        case 0:
+            //lout << ddev(MLog::eGui);
+            lout << "- " << GetNodeName() << ": Max number of ticks set." << endl;
+            //lout << edev(MLog::eGui);
+            return;
+        }
+        break;
+
+    case 0x6003:
+        switch (subidx)
+        {
+        case 0:
+            //lout << ddev(MLog::eGui);
+            lout << "- " << GetNodeName() << ": Preset value set." << endl;
+            //lout << edev(MLog::eGui);
+            return;
+        }
+        break;
+    }
+    NodeDrv::HandleSDOOK(idx, subidx, data, tv);
+}
+
 void ShaftEncoder::DisplayVal()
 {
@@ -288,5 +337,5 @@
      */
 
-    //    StartGuarding(175, 2); // 175
+    // StartGuarding(200, 1, kTRUE); // 175
     // StartGuarding(10*GetId(), 2); // 175
 }
Index: trunk/MagicSoft/Cosy/devdrv/shaftencoder.h
===================================================================
--- trunk/MagicSoft/Cosy/devdrv/shaftencoder.h	(revision 2280)
+++ trunk/MagicSoft/Cosy/devdrv/shaftencoder.h	(revision 2518)
@@ -43,4 +43,5 @@
 
     void HandleSDO(WORD_t idx, BYTE_t subidx, LWORD_t val, timeval_t *tv);
+    void HandleSDOOK(WORD_t idx, BYTE_t subidx, LWORD_t data, timeval_t *tv);
     /*
      void HandleSDOOK(WORD_t idx, BYTE_t subidx, timeval_t *tv) { NodeDrv::HandleSDOOK(idx, subidx, tv); }
