summaryrefslogtreecommitdiff
path: root/digital/io-hub/src/guybrush/radar_defs.c
diff options
context:
space:
mode:
authorNicolas Schodet2012-05-18 05:59:56 +0200
committerNicolas Schodet2012-05-18 05:59:56 +0200
commit43b2c29cf87a2e8ed2cfbab531b09a5fa5ceb489 (patch)
treeffd1782a5b5733a291a2e917ff3cad9c42231fd0 /digital/io-hub/src/guybrush/radar_defs.c
parente8c020cb67a21bb91cad4faba971a31d344f41cf (diff)
digital/io-hub/src/guybrush: ignore side US sensors when upper clamp is moving
Diffstat (limited to 'digital/io-hub/src/guybrush/radar_defs.c')
-rw-r--r--digital/io-hub/src/guybrush/radar_defs.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/digital/io-hub/src/guybrush/radar_defs.c b/digital/io-hub/src/guybrush/radar_defs.c
index a1228526..aefada80 100644
--- a/digital/io-hub/src/guybrush/radar_defs.c
+++ b/digital/io-hub/src/guybrush/radar_defs.c
@@ -40,10 +40,16 @@ struct radar_sensor_t radar_sensors[RADAR_SENSOR_NB] = {
{ &usdist_mm[3], { -120, 0 }, G_ANGLE_UF016_DEG (180) },
};
+/** Is radar currently moving? */
+uint8_t radar_def_upper_clamp_moving_;
+
/** Define exclusion area (considered as invalid point). */
uint8_t
radar_valid (vect_t p, uint8_t sensor)
{
+ if (radar_def_upper_clamp_moving_
+ && (sensor == RADAR_SENSOR_LEFT || sensor == RADAR_SENSOR_RIGHT))
+ return 0;
return p.x >= RADAR_MARGIN_MM && p.x < PG_WIDTH - RADAR_MARGIN_MM
&& p.y >= RADAR_MARGIN_MM && p.y < PG_LENGTH - RADAR_MARGIN_MM
&& (sensor == RADAR_SENSOR_FRONT || sensor == RADAR_SENSOR_BACK
@@ -55,3 +61,8 @@ radar_valid (vect_t p, uint8_t sensor)
&& p.x < PG_TOTEM_RIGHT_X + PG_TOTEM_WIDTH_MM / 2 + RADAR_MARGIN_MM))));
}
+void
+radar_def_upper_clamp_moving (uint8_t moving)
+{
+ radar_def_upper_clamp_moving_ = moving;
+}