Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages | Examples

ArServerSimpleCommands.h

Go to the documentation of this file.
00001 /*
00002 MobileRobots Advanced Robotics Interface for Applications (ARIA)
00003 Copyright (C) 2004, 2005 ActivMedia Robotics LLC
00004 Copyright (C) 2006, 2007 MobileRobots Inc.
00005 
00006      This program is free software; you can redistribute it and/or modify
00007      it under the terms of the GNU General Public License as published by
00008      the Free Software Foundation; either version 2 of the License, or
00009      (at your option) any later version.
00010 
00011      This program is distributed in the hope that it will be useful,
00012      but WITHOUT ANY WARRANTY; without even the implied warranty of
00013      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014      GNU General Public License for more details.
00015 
00016      You should have received a copy of the GNU General Public License
00017      along with this program; if not, write to the Free Software
00018      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00019 
00020 If you wish to redistribute ARIA under different terms, contact 
00021 MobileRobots for information about a commercial version of ARIA at 
00022 robots@mobilerobots.com or 
00023 MobileRobots Inc, 19 Columbia Drive, Amherst, NH 03031; 800-639-9481
00024 */
00025 
00026 #ifndef ARSERVERSIMPLECOMMANDS_H
00027 #define ARSERVERSIMPLECOMMANDS_H
00028 
00029 #include "Aria.h"
00030 #include "ArServerBase.h"
00031 #include "ArServerHandlerCommands.h"
00032 #include "ArServerHandlerPopup.h"
00033 
00035 
00039 class ArServerSimpleComUC
00040 {
00041 public:
00043   AREXPORT ArServerSimpleComUC(ArServerHandlerCommands *handlerCommands, 
00044                                     ArRobot *robot);
00046   AREXPORT virtual ~ArServerSimpleComUC();
00048   AREXPORT void command(ArArgumentBuilder *arg);
00049 protected:
00050   ArRobot *myRobot;
00051   ArServerHandlerCommands *myHandlerCommands;
00052   ArFunctor1C<ArServerSimpleComUC, ArArgumentBuilder *> myCommandCB;
00053 };
00054 
00056 
00061 class ArServerSimpleComMovementLogging
00062 {
00063 public:
00065   AREXPORT ArServerSimpleComMovementLogging(
00066           ArServerHandlerCommands *handlerCommands, ArRobot *robot,
00067           ArServerHandlerPopup *popupHandler = NULL);
00069   AREXPORT virtual ~ArServerSimpleComMovementLogging();
00071   AREXPORT void logMovementSentEnable(void);
00073   AREXPORT void logMovementSentDisable(void);
00075   AREXPORT void logMovementReceivedEnable(void);
00077   AREXPORT void logMovementReceivedDisable(void);
00079   AREXPORT void logVelocitiesReceivedEnable(void);
00081   AREXPORT void logVelocitiesReceivedDisable(void);
00083   AREXPORT void packetsReceivedTrackingEnable(void);
00085   AREXPORT void packetsReceivedTrackingDisable(void);
00087   AREXPORT void packetsSentTrackingEnable(void);
00089   AREXPORT void packetsSentTrackingDisable(void);
00091   AREXPORT void logActionsEnable(void);
00093   AREXPORT void logActionsDisable(void);
00095   AREXPORT void logActions(void);
00097   AREXPORT void popupMovementParams(void);
00099   AREXPORT void resetOdometer(void);
00100 protected:
00101   ArRobot *myRobot;
00102   ArServerHandlerCommands *myHandlerCommands;
00103   ArServerHandlerPopup *myPopupHandler;
00104 
00105   ArFunctorC<ArServerSimpleComMovementLogging> myLogMovementSentEnableCB;
00106   ArFunctorC<ArServerSimpleComMovementLogging> myLogMovementSentDisableCB;
00107   ArFunctorC<ArServerSimpleComMovementLogging> myLogMovementReceivedEnableCB;
00108   ArFunctorC<ArServerSimpleComMovementLogging> myLogMovementReceivedDisableCB;
00109   ArFunctorC<ArServerSimpleComMovementLogging> myLogVelocitiesReceivedEnableCB;
00110   ArFunctorC<ArServerSimpleComMovementLogging> myLogVelocitiesReceivedDisableCB;
00111   ArFunctorC<ArServerSimpleComMovementLogging> myPacketsReceivedTrackingEnableCB;
00112   ArFunctorC<ArServerSimpleComMovementLogging> myPacketsReceivedTrackingDisableCB;
00113   ArFunctorC<ArServerSimpleComMovementLogging> myPacketsSentTrackingEnableCB;
00114   ArFunctorC<ArServerSimpleComMovementLogging> myPacketsSentTrackingDisableCB;
00115   ArFunctorC<ArServerSimpleComMovementLogging> myLogActionsEnableCB;
00116   ArFunctorC<ArServerSimpleComMovementLogging> myLogActionsDisableCB;
00117 
00118   ArFunctorC<ArServerSimpleComMovementLogging> myLogActionsCB;
00119   ArFunctorC<ArServerSimpleComMovementLogging> myPopupMovementParamsCB;
00120   ArFunctorC<ArServerSimpleComMovementLogging> myResetOdometerCB;
00121 };
00122 
00124 
00131 class ArServerSimpleComGyro
00132 {
00133 public:
00135   AREXPORT ArServerSimpleComGyro(
00136           ArServerHandlerCommands *handlerCommands, ArRobot *robot,
00137           ArAnalogGyro *gyro);
00139   AREXPORT virtual ~ArServerSimpleComGyro();
00141   AREXPORT void gyroEnable(void);
00143   AREXPORT void gyroDisable(void);
00144 protected:
00145   ArRobot *myRobot;
00146   ArAnalogGyro *myGyro;
00147   ArServerHandlerCommands *myHandlerCommands;
00148   ArFunctorC<ArServerSimpleComGyro> myGyroEnableCB;
00149   ArFunctorC<ArServerSimpleComGyro> myGyroDisableCB;
00150 };
00151 
00152 
00154 class ArServerSimpleComLogRobotConfig 
00155 {
00156 public:
00157   AREXPORT ArServerSimpleComLogRobotConfig(
00158           ArServerHandlerCommands *commands, ArRobot* robot,      
00159           ArServerHandlerPopup *popupHandler = NULL);
00160   AREXPORT void logConfig(void); 
00161   AREXPORT void logOrigConfig(void); 
00162   AREXPORT void popupConfig(void); 
00163   AREXPORT void popupOrigConfig(void); 
00164 private:
00165   void configPacketArrived(void);
00166   ArServerHandlerCommands *myHandlerCommands;
00167   ArRobot* myRobot;
00168   ArServerHandlerPopup *myPopupHandler;
00169 
00170   bool myLogConfig;
00171   bool myPopupConfig;
00172 
00173   ArFunctorC<ArServerSimpleComLogRobotConfig> myPacketArrivedCB;
00174   ArRobotConfigPacketReader myPacketReader;
00175   ArFunctorC<ArServerSimpleComLogRobotConfig> myLogConfigCB;
00176   ArFunctorC<ArServerSimpleComLogRobotConfig> myLogOrigConfigCB;
00177   ArFunctorC<ArServerSimpleComLogRobotConfig> myPopupConfigCB;
00178   ArFunctorC<ArServerSimpleComLogRobotConfig> myPopupOrigConfigCB;
00179 };
00180 
00182 class ArServerSimpleComLogActions 
00183 {
00184 public:
00185   AREXPORT ArServerSimpleComLogActions(ArServerHandlerCommands *commands, ArRobot* robot);  
00186   AREXPORT void logActions(); 
00187 private:
00188   ArRobot* myRobot;
00189   ArFunctorC<ArServerSimpleComLogActions> myCallback;
00190 };
00191 
00192 class ArServerSimpleServerCommands 
00193 { 
00194 public:
00195   AREXPORT ArServerSimpleServerCommands(
00196           ArServerHandlerCommands *commands, ArServerBase *server);
00197   AREXPORT virtual ~ArServerSimpleServerCommands();
00198   AREXPORT void logTerseTracking(void); 
00199   AREXPORT void logVerboseTracking(void); 
00200   AREXPORT void resetTracking(void);
00201 private:
00202   ArServerBase *myServer;
00203   ArFunctorC<ArServerSimpleServerCommands> myTerseTrackingCB;
00204   ArFunctorC<ArServerSimpleServerCommands> myVerboseTrackingCB;
00205   ArFunctorC<ArServerSimpleServerCommands> myResetTrackingCB;
00206 
00207 };
00208 
00210 
00213 class ArServerSimplePopup
00214 {
00215 public:
00217   AREXPORT ArServerSimplePopup(ArServerHandlerCommands *commands, 
00218                                ArServerHandlerPopup *popupHandler);
00220   AREXPORT virtual ~ArServerSimplePopup();
00222   AREXPORT void simplePopup(ArArgumentBuilder *arg);
00223 protected:
00224   ArServerHandlerCommands *myCommands;
00225   ArServerHandlerPopup *myPopupHandler;
00226   ArFunctor1C<ArServerSimplePopup, ArArgumentBuilder *> mySimplePopupCB;
00227 };
00228 
00229 #endif 

Generated on Tue Feb 20 10:51:50 2007 for ArNetworking by  doxygen 1.4.0