From 0a16f1d46ae8169a9342098a45f0878d57481297 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Fri, 14 May 2010 03:56:22 +0200 Subject: digital/io/src: change collect criterions --- digital/io/src/top.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'digital/io/src/top.c') diff --git a/digital/io/src/top.c b/digital/io/src/top.c index 61d0e085..6f7fd8db 100644 --- a/digital/io/src/top.c +++ b/digital/io/src/top.c @@ -29,8 +29,14 @@ #include "asserv.h" #include "loader.h" #include "move.h" +#include "chrono.h" #include "playground.h" +/** Maximum elements to load before unloading. */ +#define TOP_LOADER_MAX 3 +/** Time to reserve for unloading at end of round. */ +#define TOP_TIME_LIMIT_MS 20000ll + void top_init (void) { @@ -39,7 +45,10 @@ top_init (void) uint8_t top_collect (uint8_t force) { - if (loader_elements < 3 || force) + if ((loader_elements < TOP_LOADER_MAX + && (loader_elements == 0 + || chrono_remaining_time () > TOP_TIME_LIMIT_MS)) + || force) { position_t robot_position; asserv_get_position (&robot_position); -- cgit v1.2.3