Zum Inhalt
c't

c't Projekte - c't-Bot und c't-Sim - Mailinglisten

c't-Bot und c't-Sim


[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

Re: [ct-bot] Map shrink und Grenzen

Absender: Timo Sandmann
Datum: Do, 18.09.2008 16:22:17
In-reply-to: <48D26066.6050902@xxxxxxxx>
References: <48C139945BA47F4DB4DE05DF62CD57AA03D9A29FC6@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <48C139945BA47F4DB4DE05DF62CD57AA03D9B620CA@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <48D23AE4.9020605@xxxxxxxx> <48C139945BA47F4DB4DE05DF62CD57AA03D9B62192@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <48D24287.2020906@xxxxxxxx> <48C139945BA47F4DB4DE05DF62CD57AA03D9B62312@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <48D26066.6050902@xxxxxxxx>


Hi,

die Shrink-Funktion wird derzeit nur für PC compiliert, weil sie nur beim Map-Export verwendet wird und auf dem echten Bot eine inakzeptable Laufzeit hat. Wenn man Minimum und Maximum braucht, würde ich dringen empfehlen auf SHRINK_MAP_ONLINE umzustellen, dafür ist es ja da. Dann sind übrigens auch weitere Features denkbar wie beim Löschen nur die Bereiche überschreiben, die auch wirklich belegt sind usw. Bisher wurden die Min / Max-Werte nirgends benutzt, darum ist per default OFFLINE an.

Wenn man wirklich ein Shrink auf MCU haben möchte, lässt sich aber natürlich ganz einfach etwas einbauen wie:
void map_do_shrink(void) {
#ifdef SHRINK_MAP_OFFLINE
 uint16_t min_x = map_min_x;
 uint16_t max_x = map_max_x;
 uint16_t min_y = map_min_y;
 uint16_t max_y = map_max_y;
 shrink(&min_x, &max_x, &min_y, &max_y);
#endif
}

Grüße,
Timo