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
00027 #ifndef ARACTIONIRS_H
00028 #define ARACTIONIRS_H
00029
00030 #include "ariaTypedefs.h"
00031 #include "ArAction.h"
00032 #include "ArRobotParams.h"
00033 #include <vector>
00034
00036
00040 class ArActionIRs : public ArAction
00041 {
00042 public:
00044 ArActionIRs(const char *name = "IRs",
00045 double backOffSpeed = 100, int backOffTime = 5000,
00046 int turnTime = 3000, bool setMaximums = false);
00048 virtual ~ArActionIRs();
00049 virtual ArActionDesired *fire(ArActionDesired currentDesired);
00050 virtual void setRobot(ArRobot *robot);
00051 virtual ArActionDesired *getDesired(void) { return &myDesired; }
00052 protected:
00053 ArActionDesired myDesired;
00054 bool mySetMaximums;
00055 double myBackOffSpeed;
00056 int myBackOffTime;
00057 int myTurnTime;
00058 int myStopTime;
00059 bool myFiring;
00060 double mySpeed;
00061 double myHeading;
00062 ArTime myStartBack;
00063 ArTime stoppedSince;
00064 ArRobotParams myParams;
00065 std::vector<int> cycleCounters;
00066 };
00067
00068 #endif // ARACTIONIRS