summaryrefslogtreecommitdiffstats
path: root/LineSensorArray.h
diff options
context:
space:
mode:
authorneoraider <devnull@localhost>2007-04-16 00:01:04 +0200
committerneoraider <devnull@localhost>2007-04-16 00:01:04 +0200
commitd02fbc84105ff2da74f03fd658ace8919e3e9437 (patch)
treea9ab5298ca9584e7eabc0bcb6d8b34ca1ad55726 /LineSensorArray.h
parentccc0183cee7c410d668a0b1a9153b061a4785e42 (diff)
downloadrc2007-rescue-d02fbc84105ff2da74f03fd658ace8919e3e9437.tar
rc2007-rescue-d02fbc84105ff2da74f03fd658ace8919e3e9437.zip
LineSensorArray + Srf10 added.
Diffstat (limited to 'LineSensorArray.h')
-rw-r--r--LineSensorArray.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/LineSensorArray.h b/LineSensorArray.h
new file mode 100644
index 0000000..9f67c60
--- /dev/null
+++ b/LineSensorArray.h
@@ -0,0 +1,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