INTRODUCTION Overview Download and Install Quick Start Documentation Publications NONFRAMEWORK CODE Driver Interfaces Drivers Libraries Utilities FRAMEWORK CODE Interfaces Components Libraries Utilities Full Software Listings DEVELOPER Tutorials Examples Dev Guide Dashboard 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-2009 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 <IceStorm/IceStorm.h> 00015 #include <gbxsickacfr/gbxiceutilacfr/store.h> 00016 #include <orcaice/context.h> 00017 00018 // include provided interfaces 00019 #include <orca/pathfollower2d.h> 00020 00021 namespace goalplanner { 00022 00023 // 00024 // Implements the PathFollower interface: Handles all our remote calls. 00025 // NOTE: cannot easily reuse orcaifaceimpl::PathFollower2dImpl because of a custom implementation 00026 // of subscribe() 00027 // 00028 // TODO: convert to a modern Impl style. 00029 // 00030 class PathFollower2dI : public orca::PathFollower2d 00031 { 00032 public: 00033 PathFollower2dI( gbxiceutilacfr::Store<orca::PathFollower2dData> &pathPipe, 00034 gbxiceutilacfr::Store<bool> &activationPipe, 00035 orca::PathFollower2dPrx localNavPrx, 00036 const orcaice::Context &context ); 00037 00038 // Get the current path 00039 virtual ::orca::PathFollower2dData getData(const ::Ice::Current& = ::Ice::Current()); 00040 00041 // Set a path 00042 virtual void setData(const ::orca::PathFollower2dData& data, bool activateImmediately, const ::Ice::Current& = ::Ice::Current()); 00043 00044 virtual orca::PathFollower2dState getState(const ::Ice::Current& = ::Ice::Current()); 00045 00046 virtual void activateNow(const ::Ice::Current& = ::Ice::Current()); 00047 00048 virtual void setEnabled( bool enabled, const ::Ice::Current& = ::Ice::Current() ); 00049 00050 // NOTE: unusual implemenation! 00051 virtual IceStorm::TopicPrx subscribe(const ::orca::PathFollower2dConsumerPrx&, const ::Ice::Current& = ::Ice::Current()); 00052 00053 private: 00054 00055 // New paths from the outside world go in here 00056 gbxiceutilacfr::Store<orca::PathFollower2dData> &pathPipe_; 00057 00058 // Are we activated? 00059 gbxiceutilacfr::Store<bool> &activationPipe_; 00060 00061 // because goalplanner is acting like a transparent proxy to localnav, we need to pass on requests to localnav and thus need a remote object 00062 orca::PathFollower2dPrx localNavPrx_; 00063 00064 orcaice::Context context_; 00065 }; 00066 00067 } 00068 00069 #endif |
Webmaster: Tobias Kaupp (tobasco at users.sourceforge.net)