Index: /trunk/demos/CircleFollower/uav/src/CircleFollower.cpp
===================================================================
--- /trunk/demos/CircleFollower/uav/src/CircleFollower.cpp	(revision 434)
+++ /trunk/demos/CircleFollower/uav/src/CircleFollower.cpp	(revision 435)
@@ -83,4 +83,6 @@
     uav->GetAhrs()->AddPlot(customReferenceOrientation,DataPlot::Yellow);
     AddDataToControlLawLog(customReferenceOrientation);
+    AddDeviceToControlLawLog(uX);
+    AddDeviceToControlLawLog(uY);
 
     customOrientation=new AhrsData(this,"orientation");
Index: /trunk/demos/TwoWheelRobotCircleFollower/ugv/src/CircleFollower.cpp
===================================================================
--- /trunk/demos/TwoWheelRobotCircleFollower/ugv/src/CircleFollower.cpp	(revision 434)
+++ /trunk/demos/TwoWheelRobotCircleFollower/ugv/src/CircleFollower.cpp	(revision 435)
@@ -61,4 +61,6 @@
     startCircle=new PushButton(buttonslayout->NewRow(),"start_circle");
     stopCircle=new PushButton(buttonslayout->LastRowLastCol(),"stop_circle");
+    button_start_log = new PushButton(buttonslayout->NewRow(), "start_log");
+    button_stop_log = new PushButton(buttonslayout->LastRowLastCol(), "stop_log");
     
     circle=new TrajectoryGenerator2DCircle(vrpnclient->GetLayout()->NewRow(),"circle");
@@ -77,4 +79,7 @@
     uY=new Pid(setupLawTab->At(1,1),"u_y");
     uY->UseDefaultPlot(graphLawTab->LastRowLastCol());
+    
+    getFrameworkManager()->AddDeviceToLog(uX);
+    getFrameworkManager()->AddDeviceToLog(uY);
     
     l=new DoubleSpinBox(setupLawTab->NewRow(),"L", " m", 0, 10, 0.1, 1,1);
@@ -104,4 +109,9 @@
 
 void CircleFollower::CheckPushButton(void) {
+  if (button_start_log->Clicked() == true)
+    getFrameworkManager()->StartLog();
+  if (button_stop_log->Clicked() == true)
+    getFrameworkManager()->StopLog();
+  
   if (startCircle->Clicked() == true)
       StartCircle();
Index: /trunk/demos/TwoWheelRobotCircleFollower/ugv/src/CircleFollower.h
===================================================================
--- /trunk/demos/TwoWheelRobotCircleFollower/ugv/src/CircleFollower.h	(revision 434)
+++ /trunk/demos/TwoWheelRobotCircleFollower/ugv/src/CircleFollower.h	(revision 435)
@@ -56,5 +56,5 @@
 
         flair::filter::Pid *uX, *uY;
-        flair::gui::PushButton *startCircle,*stopCircle,*button_kill;
+        flair::gui::PushButton *startCircle,*stopCircle,*button_kill,*button_start_log,*button_stop_log;
         flair::gui::DoubleSpinBox *l;
         flair::meta::MetaVrpnObject *targetVrpn,*ugvVrpn;
Index: /trunk/demos/TwoWheelRobotSimpleFleet/ugv/src/SimpleFleet.cpp
===================================================================
--- /trunk/demos/TwoWheelRobotSimpleFleet/ugv/src/SimpleFleet.cpp	(revision 434)
+++ /trunk/demos/TwoWheelRobotSimpleFleet/ugv/src/SimpleFleet.cpp	(revision 435)
@@ -61,4 +61,6 @@
     startCircle=new PushButton(buttonslayout->NewRow(),"start_circle");
     stopCircle=new PushButton(buttonslayout->LastRowLastCol(),"stop_circle");
+    button_start_log = new PushButton(buttonslayout->NewRow(), "start_log");
+    button_stop_log = new PushButton(buttonslayout->LastRowLastCol(), "stop_log");
     
     circle=new TrajectoryGenerator2DCircle(vrpnclient->GetLayout()->NewRow(),"circle");
@@ -80,4 +82,7 @@
     uY=new Pid(setupLawTab->At(1,1),"u_y");
     uY->UseDefaultPlot(graphLawTab->LastRowLastCol());
+    
+    getFrameworkManager()->AddDeviceToLog(uX);
+    getFrameworkManager()->AddDeviceToLog(uY);
     
     l=new DoubleSpinBox(setupLawTab->NewRow(),"L", " m", 0, 10, 0.1, 1,1);
@@ -110,4 +115,9 @@
 
 void SimpleFleet::CheckPushButton(void) {
+  if (button_start_log->Clicked() == true)
+    getFrameworkManager()->StartLog();
+  if (button_stop_log->Clicked() == true)
+    getFrameworkManager()->StopLog();
+    
   if (startCircle->Clicked() == true)
       StartCircle();
Index: /trunk/demos/TwoWheelRobotSimpleFleet/ugv/src/SimpleFleet.h
===================================================================
--- /trunk/demos/TwoWheelRobotSimpleFleet/ugv/src/SimpleFleet.h	(revision 434)
+++ /trunk/demos/TwoWheelRobotSimpleFleet/ugv/src/SimpleFleet.h	(revision 435)
@@ -60,5 +60,5 @@
 
         flair::filter::Pid *uX, *uY;
-        flair::gui::PushButton *startCircle,*stopCircle,*button_kill;
+        flair::gui::PushButton *startCircle,*stopCircle,*button_kill,*button_start_log,*button_stop_log;
         flair::gui::DoubleSpinBox *l;
         flair::gui::DoubleSpinBox *xCircleCenter,*yCircleCenter;
Index: /trunk/lib/FlairMeta/src/SimuUgv.cpp
===================================================================
--- /trunk/lib/FlairMeta/src/SimuUgv.cpp	(revision 434)
+++ /trunk/lib/FlairMeta/src/SimuUgv.cpp	(revision 435)
@@ -19,4 +19,5 @@
 #include "SimuUgv.h"
 #include <SimulatedUgvControls.h>
+#include <FrameworkManager.h>
 
 using std::string;
@@ -32,5 +33,5 @@
 
   SetUgvControls(new SimulatedUgvControls("controls", simu_id,0));
-  
+  getFrameworkManager()->AddDeviceToLog(GetUgvControls());
   
 }
Index: /trunk/lib/FlairMeta/src/SumoUgv.cpp
===================================================================
--- /trunk/lib/FlairMeta/src/SumoUgv.cpp	(revision 434)
+++ /trunk/lib/FlairMeta/src/SumoUgv.cpp	(revision 435)
@@ -19,4 +19,5 @@
 #include "SumoUgv.h"
 #include <SumoUgvControls.h>
+#include <FrameworkManager.h>
 
 
@@ -32,5 +33,5 @@
 
   SetUgvControls(new SumoUgvControls("controls"));
-  
+  getFrameworkManager()->AddDeviceToLog(GetUgvControls());
   
 }
Index: /trunk/lib/FlairSensorActuator/src/SimulatedUgvControls.cpp
===================================================================
--- /trunk/lib/FlairSensorActuator/src/SimulatedUgvControls.cpp	(revision 434)
+++ /trunk/lib/FlairSensorActuator/src/SimulatedUgvControls.cpp	(revision 435)
@@ -70,4 +70,7 @@
   }
   output->ReleaseMutex();
+  
+  output->SetDataTime(GetTime());
+  ProcessUpdate(output);
 }
 
Index: /trunk/lib/FlairSensorActuator/src/SumoUgvControls.cpp
===================================================================
--- /trunk/lib/FlairSensorActuator/src/SumoUgvControls.cpp	(revision 434)
+++ /trunk/lib/FlairSensorActuator/src/SumoUgvControls.cpp	(revision 435)
@@ -51,5 +51,4 @@
 }
 
-
 void SumoUgvControls::SetControls(float speed,float turn) {
   sumoControl->move(speed*127, turn*127);
@@ -60,4 +59,7 @@
   output->SetValueNoMutex(1, 0, turn);
   output->ReleaseMutex();
+  
+  output->SetDataTime(core::GetTime());
+  ProcessUpdate(output);
 }
 
Index: /trunk/lib/FlairSensorActuator/src/UgvControls.h
===================================================================
--- /trunk/lib/FlairSensorActuator/src/UgvControls.h	(revision 434)
+++ /trunk/lib/FlairSensorActuator/src/UgvControls.h	(revision 435)
@@ -85,5 +85,5 @@
   */
   void UpdateFrom(const core::io_data *data){};
-  
+
   gui::Tab *mainTab;
 };
