69 lines
1.2 KiB
C++
Executable file
69 lines
1.2 KiB
C++
Executable file
#ifndef _IR_SENSOR_H
|
|
#define _IR_SENSOR_H
|
|
|
|
#include "../../defines.h"
|
|
#include "../../robot.h"
|
|
#include "sensor.h"
|
|
|
|
class IR_Sensor : public Sensor
|
|
{
|
|
public:
|
|
IR_Sensor()
|
|
{
|
|
this->parent = NULL;
|
|
this->moduleId = 0;
|
|
this->intensityCorrection = 0;
|
|
}
|
|
|
|
IR_Sensor(uint32 sensorId)
|
|
{
|
|
this->parent = NULL;
|
|
this->moduleId = sensorId;
|
|
this->intensityCorrection = 0;
|
|
|
|
switch(sensorId)
|
|
{
|
|
case IO_SENSOR_IR_0_DEG:
|
|
this->channel = 0;
|
|
break;
|
|
case IO_SENSOR_IR_30_DEG:
|
|
this->channel = 1;
|
|
break;
|
|
case IO_SENSOR_IR_60_DEG:
|
|
this->channel = 2;
|
|
break;
|
|
case IO_SENSOR_IR_100_DEG:
|
|
this->channel = 3;
|
|
this->intensityCorrection = 80;
|
|
break;
|
|
case IO_SENSOR_IR_180_DEG:
|
|
this->channel = 4;
|
|
this->intensityCorrection = 70;
|
|
break;
|
|
case IO_SENSOR_IR_260_DEG:
|
|
this->channel = 5;
|
|
this->intensityCorrection = 70;
|
|
break;
|
|
case IO_SENSOR_IR_300_DEG:
|
|
this->channel = 6;
|
|
break;
|
|
case IO_SENSOR_IR_330_DEG:
|
|
this->channel = 7;
|
|
break;
|
|
default:
|
|
this->channel = 8;
|
|
break;
|
|
}
|
|
}
|
|
|
|
protected:
|
|
//Hardware
|
|
uint8 channel;
|
|
|
|
uint8 intensityCorrection;
|
|
|
|
public:
|
|
uint16 GetIRIntensity();
|
|
};
|
|
|
|
#endif
|