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