|
orca-robotics INTRODUCTION Overview Download and Install Quick Start Documentation Publications REPOSITORY Interfaces Components Libraries Utilities Software Map DEVELOPER Tutorials Examples Dev Guide Dashboard Wiki login/pass: orca/orca PEOPLE Contributors Users Project Download Mailing lists
|
pathfollower2dI.h00001 /* 00002 * Orca-Robotics Project: Components for robotics 00003 * http://orca-robotics.sf.net/ 00004 * Copyright (c) 2004-2008 Alex Brooks, Alexei Makarenko, Tobias Kaupp 00005 * 00006 * This copy of Orca is licensed to you under the terms described in 00007 * the LICENSE file included in this distribution. 00008 * 00009 */ 00010 00011 #ifndef ORCA_PATH_FOLLOWER_2D_I_H 00012 #define ORCA_PATH_FOLLOWER_2D_I_H 00013 00014 // include defnition of Ice runtime 00015 #include <Ice/Ice.h> 00016 #include <IceStorm/IceStorm.h> 00017 #include <gbxsickacfr/gbxiceutilacfr/store.h> 00018 #include <orcaice/context.h> 00019 00020 // include provided interfaces 00021 #include <orca/pathfollower2d.h> 00022 00023 namespace goalplanner { 00024 00025 // 00026 // Implements the PathFollower interface: Handles all our remote calls. 00027 // NOTE: cannot easily reuse orcaifaceimpl::PathFollower2dImpl because of a custom implementation 00028 // of subscribe() 00029 // 00030 // TODO: convert to a modern Impl style. 00031 // 00032 class PathFollower2dI : public orca::PathFollower2d 00033 { 00034 public: 00035 PathFollower2dI( gbxiceutilacfr::Store<orca::PathFollower2dData> &pathPipe, 00036 gbxiceutilacfr::Store<bool> &activationPipe, 00037 orca::PathFollower2dPrx localNavPrx, 00038 const orcaice::Context &context ); 00039 00040 // Get the current path 00041 virtual ::orca::PathFollower2dData getData(const ::Ice::Current& = ::Ice::Current()); 00042 00043 // Set a path 00044 virtual void setData(const ::orca::PathFollower2dData& data, bool activateImmediately, const ::Ice::Current& = ::Ice::Current()); 00045 00046 virtual void activateNow(const ::Ice::Current& = ::Ice::Current()); 00047 00048 virtual int getWaypointIndex(const ::Ice::Current& = ::Ice::Current()); 00049 00050 virtual bool getAbsoluteActivationTime(orca::Time &activationTime, const Ice::Current&); 00051 00052 virtual bool getRelativeActivationTime(double &secondsSinceActivation, const Ice::Current&); 00053 00054 00055 virtual void setEnabled( bool enabled, const ::Ice::Current& = ::Ice::Current() ); 00056 virtual bool enabled(const ::Ice::Current& = ::Ice::Current()); 00057 00058 // NOTE: unusual implemenation! 00059 virtual IceStorm::TopicPrx subscribe(const ::orca::PathFollower2dConsumerPrx&, const ::Ice::Current& = ::Ice::Current()); 00060 00061 private: 00062 00063 // New paths from the outside world go in here 00064 gbxiceutilacfr::Store<orca::PathFollower2dData> &pathPipe_; 00065 00066 // Are we activated? 00067 gbxiceutilacfr::Store<bool> &activationPipe_; 00068 00069 // because goalplanner is acting like a transparent proxy to localnav, we need to pass on requests to localnav and thus need a remote object 00070 orca::PathFollower2dPrx localNavPrx_; 00071 00072 orcaice::Context context_; 00073 }; 00074 00075 } 00076 00077 #endif |
Webmaster: Tobias Kaupp (tobasco at users.sourceforge.net)
1.4.5