Revision: 7017
          http://playerstage.svn.sourceforge.net/playerstage/?rev=7017&view=rev
Author:   natepak
Date:     2008-09-09 23:48:33 +0000 (Tue, 09 Sep 2008)

Log Message:
-----------
Applied patch from Sandy to put the Differential_Position2d update cycle inside 
on Lock

Modified Paths:
--------------
    
code/gazebo/trunk/server/controllers/position2d/differential/Differential_Position2d.cc

Modified: 
code/gazebo/trunk/server/controllers/position2d/differential/Differential_Position2d.cc
===================================================================
--- 
code/gazebo/trunk/server/controllers/position2d/differential/Differential_Position2d.cc
     2008-09-09 22:04:34 UTC (rev 7016)
+++ 
code/gazebo/trunk/server/controllers/position2d/differential/Differential_Position2d.cc
     2008-09-09 23:48:33 UTC (rev 7017)
@@ -158,6 +158,8 @@
   double dr, da;
   double stepTime;
 
+  this->myIface->Lock(1);
+
   this->GetPositionCmd();
 
   wd = **(this->wheelDiamP);
@@ -206,6 +208,8 @@
   }*/
 
   this->PutPositionData();
+
+  this->myIface->Unlock();
 }
 
 
////////////////////////////////////////////////////////////////////////////////
@@ -221,40 +225,30 @@
 {
   double vr, va;
 
-  if (this->myIface->Lock(1))
-  {
+  vr = this->myIface->data->cmdVelocity.pos.x;
+  va = this->myIface->data->cmdVelocity.yaw;
 
-    vr = this->myIface->data->cmdVelocity.pos.x;
-    va = this->myIface->data->cmdVelocity.yaw;
+  this->enableMotors = this->myIface->data->cmdEnableMotors > 0;
 
-    this->enableMotors = this->myIface->data->cmdEnableMotors > 0;
+  this->wheelSpeed[LEFT] = vr + va * **(this->wheelSepP) / 2;
+  this->wheelSpeed[RIGHT] = vr - va * **(this->wheelSepP) / 2;
 
-    this->wheelSpeed[LEFT] = vr + va * **(this->wheelSepP) / 2;
-    this->wheelSpeed[RIGHT] = vr - va * **(this->wheelSepP) / 2;
-
-    this->myIface->Unlock();
-  }
 }
 
 //////////////////////////////////////////////////////////////////////////////
 // Update the data in the interface
 void Differential_Position2d::PutPositionData()
 {
-  if (this->myIface->Lock(1))
-  {
-    // TODO: Data timestamp
-    this->myIface->data->head.time = Simulator::Instance()->GetSimTime();
+  // TODO: Data timestamp
+  this->myIface->data->head.time = Simulator::Instance()->GetSimTime();
 
-    this->myIface->data->pose.pos.x = this->odomPose[0];
-    this->myIface->data->pose.pos.y = this->odomPose[1];
-    this->myIface->data->pose.yaw = NORMALIZE(this->odomPose[2]);
+  this->myIface->data->pose.pos.x = this->odomPose[0];
+  this->myIface->data->pose.pos.y = this->odomPose[1];
+  this->myIface->data->pose.yaw = NORMALIZE(this->odomPose[2]);
 
-    this->myIface->data->velocity.pos.x = this->odomVel[0];
-    this->myIface->data->velocity.yaw = this->odomVel[2];
+  this->myIface->data->velocity.pos.x = this->odomVel[0];
+  this->myIface->data->velocity.yaw = this->odomVel[2];
 
-    // TODO
-    this->myIface->data->stall = 0;
-
-    this->myIface->Unlock();
-  }
+  // TODO
+  this->myIface->data->stall = 0;
 }


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Playerstage-commit mailing list
Playerstage-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to