Absender: Timo Sandmann
Datum: Mo, 02.06.2008 13:28:56
In-reply-to:
<4842DB09.5000809@xxxxxx>
References:
<4842DB09.5000809@xxxxxx>
Hallo, Am 01.06.2008 um 19:23 schrieb Achim Pankalla:
hallo,anbei ein patch, der den fehler unter ticket 167 korregieren sollte. :-)das problem war, das die fkt. command_init in command.c aufgerufenwurde, bevor der eeprom-emulator initialisiert wurde. dadurch liefertendie get-aufrufe in command_init immer 0. ich habe mit diesen patch die reihenfolge in ct-bot.c so geändert, das der eeprom-manager schon initialisiert ist, bevor ein set_ oder get_bot_address() erfolgt. in zuge dieser arbeiten, habe ich auch ein problem bei der auswertungder aufrufoptionen von ct-bot.exe entdeckt (es kann zum doppelten aufrufvon init_eeprom_man() kommen und auch hier war ein set_bot_address() aufruf vor dem eeprom_init möglich).
erstmal danke für den Patch, testen muss ich das Ganze dann demnächst mal unter Linux. Aber was ich bei der neuen Argument-Auswertung nicht verstehe, für den Fall 'i' passiert dann nur noch folgendes:
case 'i': { /* EEPROM-Init */printf("EEPROM soll mit den Daten einer eep-Datei initialisiert werden.\n");
opt_eeprom = 1; exit(0); }Das macht aber ja irgendwie keinen Sinn bzw. es passiert dann halt gar nix. Wo war denn jetzt das Problem mit der alten Version?
Zur Änderung bei den Inits: Wäre es nicht einfacher, zuerst das EEPROM zu initialisieren und dann die Argumente zu prüfen? Dann braucht man die Bot-Adresse nicht per globaler Variable zwischenspeichern und sie später in main() noch zu setzen. Oder schadet eine doppelte Initialisierung des EEPROMs (für den Fall, dass 'i' übergeben wurde)?
Grüße, Timo