summaryrefslogtreecommitdiffstats
path: root/LineSensorArray.h
blob: 9f67c602fea4c7d848bfbd98b531b455da970598 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef _ROBOCUP_LINESENSORARRAY_H_
#define _ROBOCUP_LINESENSORARRAY_H_

#include "LineSensor.h"
#include "util.h"


class LineSensorArray
{
private:
	LineSensor *sensors[5];
	
	float line;
	float sharpness;
	float gw;
	
	float min_diff;
	float max_white_diff;
public:
	LineSensorArray(LineSensor *sensors[5]);
	LineSensorArray(LineSensor *sensor1, LineSensor *sensor2, LineSensor *sensor3, LineSensor *sensor4, LineSensor *sensor5);
	
	void update();
	bool calibrate();
	
	bool isSensorBlack(int i) {return sensors[CLAMP(0, i, 4)]->getValue() > gw;}
	bool isSensorWhite(int i) {return sensors[CLAMP(0, i, 4)]->getValue() <= gw;}
	
	float getLine() {return line;}
	float getSharpness() {return sharpness;}
	
	float getMinimumDifference() {return min_diff;}
	void setMinimumDifference(float min_diff) {this->min_diff = min_diff;}
	
	float getMaximumWhiteDifference() {return max_white_diff;}
	void setMaximumWhiteDifference(float max_white_diff) {this->max_white_diff = max_white_diff;}
};

#endif