summaryrefslogtreecommitdiff
path: root/digital/io-hub/src/guybrush/radar_defs.c
diff options
context:
space:
mode:
Diffstat (limited to 'digital/io-hub/src/guybrush/radar_defs.c')
-rw-r--r--digital/io-hub/src/guybrush/radar_defs.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/digital/io-hub/src/guybrush/radar_defs.c b/digital/io-hub/src/guybrush/radar_defs.c
index d344f958..361438e7 100644
--- a/digital/io-hub/src/guybrush/radar_defs.c
+++ b/digital/io-hub/src/guybrush/radar_defs.c
@@ -31,19 +31,24 @@
/** Define radar configuration. */
struct radar_sensor_t radar_sensors[RADAR_SENSOR_NB] = {
#define RADAR_SENSOR_FRONT 0
- { &usdist_mm[0], { 120, 0 }, G_ANGLE_UF016_DEG (0) },
+ { &usdist_mm[0], { 150, 0 }, G_ANGLE_UF016_DEG (0) },
#define RADAR_SENSOR_LEFT 1
- { &usdist_mm[1], { 120, 160 }, G_ANGLE_UF016_DEG (0) },
+ { &usdist_mm[1], { 50, 147 }, G_ANGLE_UF016_DEG (0) },
#define RADAR_SENSOR_RIGHT 2
- { &usdist_mm[2], { 120, -160 }, G_ANGLE_UF016_DEG (0) },
+ { &usdist_mm[2], { 50, -147 }, G_ANGLE_UF016_DEG (0) },
#define RADAR_SENSOR_BACK 3
- { &usdist_mm[3], { -130, 0 }, G_ANGLE_UF016_DEG (180) },
+ { &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_BACK)
+ 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 +60,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;
+}