diff options
author | neoraider <devnull@localhost> | 2007-04-16 00:01:04 +0200 |
---|---|---|
committer | neoraider <devnull@localhost> | 2007-04-16 00:01:04 +0200 |
commit | d02fbc84105ff2da74f03fd658ace8919e3e9437 (patch) | |
tree | a9ab5298ca9584e7eabc0bcb6d8b34ca1ad55726 /LineSensorArray.h | |
parent | ccc0183cee7c410d668a0b1a9153b061a4785e42 (diff) | |
download | rc2007-rescue-d02fbc84105ff2da74f03fd658ace8919e3e9437.tar rc2007-rescue-d02fbc84105ff2da74f03fd658ace8919e3e9437.zip |
LineSensorArray + Srf10 added.
Diffstat (limited to 'LineSensorArray.h')
-rw-r--r-- | LineSensorArray.h | 39 |
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 |