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: Menzel, Frank IT-OO4
Datum: Do, 18.09.2008 13:31:54
In-reply-to: <48D23AE4.9020605@xxxxxxxx>
References: <48C139945BA47F4DB4DE05DF62CD57AA03D9A29FC6@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <48C139945BA47F4DB4DE05DF62CD57AA03D9B620CA@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <48D23AE4.9020605@xxxxxxxx>


Hallo,
ja das habe ich auch so verstanden.
Nur die shrink-Routine ist außerhalb der map.c nicht aufrufbar da in dieser definiert.
Ich möchte aber die Grenzen außerhalb der map abfragen können, weshalb ja auch die defines get_min_x.. existieren. Und dafür würde ich vorher gern shrink aufrufen was ja aber nicht von außerhalb geht.

Gruß, Frank


-----Original Message-----
From: ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx [mailto:ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx] On Behalf Of Benjamin Benz
Sent: Thursday, September 18, 2008 1:26 PM
To: Entwicklung rund um den c't-bot
Subject: Re: [ct-bot] Map shrink und Grenzen

Hi,

> mir ist bei der Map weiterhin aufgefallen, dass mittlerweile ja das OFFLINE_SHRINK aktiviert ist. Dafür bleiben aber die Grenzen des wirklich verwendeten MAP-Bereiches mit dem Maximumbereich belegt und werden nicht mehr aktualisiert. Soll das so sein ?
> Eigentlich sollte nach meinem Verständnis das shrink nach außen zugänglich sein und auch dann die Grenzen korrekt nach außen gegeben werden oder ?

genau das ist das Konzept des Offline-Shrinks: Nur wenn man wirklich
wissen will, wo die Grenzen wirklich liegen, wird geshrinkt. Bis dahin
wird eben nicht aktualisiert -- und keine Rechenzeit auf die Berechnung
verwendet. Bisher war die Info nur dann von Nöten, wenn die Karte
exportiert wurde.

Wenn Du nun im Offline-modus wissen willst, wo die tatsächlichen Grenzen
liegen, ruffst Du die Fkt:

static inline void shrink(uint16_t * min_x, uint16_t * max_x, uint16_t *
min_y, uint16_t * max_y)

auf und bekommst den gerade jetzt gültigen Stand der Dinge in Deine
Übergabevariablen. Das dauert aber ein wenig.

Der einfache Zugriff auf map_max_x und Co. geht NUR im Online-Modus. Das
erlaibt einen schnellen Zugriff, kostet aber ein wenig Aufwand bei jedem
Map-Eintrag.

Ciao Ben

--
Benjamin Benz
Heise Zeitschriften Verlag
Redaktion c't
eMail: bbe@xxxxxxxx
WWW  : http://www.heise.de

Heise Zeitschriften Verlag GmbH & Co. KG
Registergericht: Amtsgericht Hannover HRA 26709

Persönlich haftende Gesellschafterin:
Heise Zeitschriften Verlag Geschäftsführung GmbH
Registergericht: Amtsgericht Hannover, HRB 60405
Geschäftsführer: Ansgar Heise, Steven P. Steinkraus, Dr. Alfons Schräder

_______________________________________________
ct-bot-entwickler Mailingliste
ct-bot-entwickler@xxxxxxxxxxxxxxxxx
http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler