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
00028 #ifndef ARIRRFDEVICE_H
00029 #define ARIRRFDEVICE_H
00030
00031 #include "ariaTypedefs.h"
00032 #include "ArRangeDevice.h"
00033 #include "ArFunctor.h"
00034
00035 #include "ArRobot.h"
00036
00038
00047 class ArIrrfDevice : public ArRangeDevice
00048 {
00049 public:
00051 ArIrrfDevice(size_t currentBufferSize = 91,
00052 size_t cumulativeBufferSize = 273,
00053 const char * name = "irrf");
00055 virtual ~ArIrrfDevice();
00056
00058 bool packetHandler(ArRobotPacket *packet);
00059
00061 void setCumulativeMaxRange(double r) { myCumulativeMaxRange = r; }
00062 virtual void setRobot(ArRobot *);
00063
00064 protected:
00065 ArRetFunctor1C<bool, ArIrrfDevice, ArRobotPacket *> myPacketHandler;
00066 ArTime myLastReading;
00067 void processReadings(void);
00068 double myCumulativeMaxRange;
00069 double myFilterNearDist;
00070 double myFilterFarDist;
00071 std::map<int, ArSensorReading *> myIrrfReadings;
00072 };
00073
00074
00075 #endif // ARIRRFDEVICE_H