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

SourceForge.net Logo
Project
Download
Mailing lists

 

         

pathfollower2dI.h

00001 /*
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)


Generated for Orca Robotics by  doxygen 1.4.5