00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
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