From: Brian G. <ge...@us...> - 2006-07-10 09:55:40
|
Update of /cvsroot/playerstage/code/player/client_libs/libplayerc++ In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25724/player/client_libs/libplayerc++ Modified Files: gripperproxy.cc playerc++.h Log Message: applied patch 1483740, which implements the new gripper interface, modifying the C and C++ client libs, along with stage Index: playerc++.h =================================================================== RCS file: /cvsroot/playerstage/code/player/client_libs/libplayerc++/playerc++.h,v retrieving revision 1.66 retrieving revision 1.67 diff -C2 -d -r1.66 -r1.67 *** playerc++.h 22 Jun 2006 22:17:31 -0000 1.66 --- playerc++.h 10 Jul 2006 16:55:37 -0000 1.67 *************** *** 832,838 **** /** ! The @p GripperProxy class is used to control a @ref ! interface_gripper device. The latest gripper data held in a ! handful of class attributes. A single method provides user control. */ class GripperProxy : public ClientProxy --- 832,837 ---- /** ! The @p GripperProxy class is used to control a @ref interface_gripper device. ! The latest gripper data is held in a handful of class attributes. */ class GripperProxy : public ClientProxy *************** *** 854,891 **** ~GripperProxy(); ! /// uint GetState() const { return GetVar(mDevice->state); }; ! /// uint GetBeams() const { return GetVar(mDevice->beams); }; ! /// ! uint GetOuterBreakBeam() const ! { return GetVar(mDevice->outer_break_beam); }; ! /// ! uint GetInnerBreakBeam() const ! { return GetVar(mDevice->inner_break_beam); }; ! /// ! uint GetPaddlesOpen() const ! { return GetVar(mDevice->paddles_open); }; ! /// ! uint GetPaddlesClosed() const ! { return GetVar(mDevice->paddles_closed); }; ! /// ! uint GetPaddlesMoving() const ! { return GetVar(mDevice->paddles_moving); }; ! /// ! uint GetGripperError() const ! { return GetVar(mDevice->gripper_error); }; ! /// ! uint GetLiftUp() const { return GetVar(mDevice->lift_up); }; ! /// ! uint GetLiftDown() const { return GetVar(mDevice->lift_down); }; ! /// ! uint GetLiftMoving() const { return GetVar(mDevice->lift_moving); }; ! /// ! uint GetLiftError() const { return GetVar(mDevice->lift_error); }; ! /// Send a gripper command. Look in the Player user manual for details ! /// on the command and argument. ! void SetGrip(uint8_t aCmd, uint8_t aArg=0); }; --- 853,887 ---- ~GripperProxy(); ! /// Geometry request - call before getting the ! /// geometry of the gripper through an accessor method ! void RequestGeometry(void); ! ! /// Get the gripper state uint GetState() const { return GetVar(mDevice->state); }; ! /// Get the gripper break beam info uint GetBeams() const { return GetVar(mDevice->beams); }; ! /// Get the pose of the gripper ! player_pose3d_t GetPose() const { return GetVar(mDevice->pose); }; ! /// Get the outer size of the gripper ! player_bbox3d_t GetOuterSize() const { return GetVar(mDevice->outer_size); }; ! /// Get the inner size of the gripper ! player_bbox3d_t GetInnerSize() const { return GetVar(mDevice->inner_size); }; ! /// Get the number of breakbeams in the gripper ! uint GetNumBeams() const { return GetVar(mDevice->num_beams); }; ! /// Get the capacity of the gripper's storage ! uint GetCapacity() const { return GetVar(mDevice->capacity); }; ! /// Get the number of currently-stored objects ! uint GetStored() const { return GetVar(mDevice->stored); }; ! /// Command the gripper to open ! void Open(); ! /// Command the gripper to close ! void Close(); ! /// Command the gripper to stop ! void Stop(); ! /// Command the gripper to store ! void Store(); ! /// Command the gripper to retrieve ! void Retrieve(); }; Index: gripperproxy.cc =================================================================== RCS file: /cvsroot/playerstage/code/player/client_libs/libplayerc++/gripperproxy.cc,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** gripperproxy.cc 24 Oct 2005 09:02:40 -0000 1.5 --- gripperproxy.cc 10 Jul 2006 16:55:37 -0000 1.6 *************** *** 72,94 **** { os << "#Gripper (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; ! os << (c.GetState() ? "open" : "closed") << " "; ! os << (c.GetInnerBreakBeam() ? "broken" : "clear") << " "; ! os << (c.GetOuterBreakBeam() ? "broken" : "clear") << std::endl; return os; } ! // send a gripper command ! // ! // Returns: ! // 0 if everything's ok ! // -1 otherwise (that's bad) ! void GripperProxy::SetGrip(uint8_t aCmd, uint8_t aArg) { scoped_lock_t lock(mPc->mMutex); ! if (0 != playerc_gripper_set_cmd(mDevice,aCmd,aArg)) ! throw PlayerError("GripperProxy::SetGrip()", "error setting grip"); return; } --- 72,138 ---- { os << "#Gripper (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; ! os << (c.GetState() == PLAYER_GRIPPER_STATE_OPEN ? "open" : ! (c.GetState() == PLAYER_GRIPPER_STATE_CLOSED ? "closed" : ! (c.GetState() == PLAYER_GRIPPER_STATE_MOVING ? "moving" : "error"))) << ", "; ! os << c.GetBeams() << " beams, storage " << c.GetCapacity () << "/" << c.GetStored () << ", "; ! os << "Pose: (" << c.GetPose().px << ", " << c.GetPose().py << ", " << c.GetPose().pz << "), ("; ! os << c.GetPose().proll << ", " << c.GetPose().ppitch << ", " << c.GetPose().pyaw << ") "; ! os << "Outer size: (" << c.GetOuterSize().sw << ", " << c.GetOuterSize().sl << ", " << c.GetOuterSize().sh << ") "; ! os << "Inner size: (" << c.GetInnerSize().sw << ", " << c.GetInnerSize().sl << ", " << c.GetInnerSize().sh << ") "; ! os << std::endl; return os; } + void GripperProxy::RequestGeometry() + { + scoped_lock_t lock(mPc->mMutex); + if (playerc_gripper_get_geom(mDevice) != 0) + throw PlayerError("GripperProxy::RequestGeometry()", "error getting geometry"); + return; + } ! // Send the open command ! void GripperProxy::Open() { scoped_lock_t lock(mPc->mMutex); ! if (playerc_gripper_open_cmd(mDevice) != 0) ! throw PlayerError("GripperProxy::Open()", "error sending open command"); ! return; ! } ! ! // Send the close command ! void GripperProxy::Close() ! { ! scoped_lock_t lock(mPc->mMutex); ! if (playerc_gripper_close_cmd(mDevice) != 0) ! throw PlayerError("GripperProxy::Close()", "error sending close command"); return; } + // Send the stop command + void GripperProxy::Stop() + { + scoped_lock_t lock(mPc->mMutex); + if (playerc_gripper_stop_cmd(mDevice) != 0) + throw PlayerError("GripperProxy::Stop()", "error sending stop command"); + return; + } + + // Send the store command + void GripperProxy::Store() + { + scoped_lock_t lock(mPc->mMutex); + if (playerc_gripper_store_cmd(mDevice) != 0) + throw PlayerError("GripperProxy::Store()", "error sending store command"); + return; + } + + // Send the retrieve command + void GripperProxy::Retrieve() + { + scoped_lock_t lock(mPc->mMutex); + if (playerc_gripper_retrieve_cmd(mDevice) != 0) + throw PlayerError("GripperProxy::Retrieve()", "error sending retrieve command"); + return; + } |