Absender: Simon Siemens
Datum: Mi, 02.03.2011 17:34:21
Hallo Mailing-Liste, ich habe den ct-Bot-Code des stable-Zweigs mit einer sehr eingeschrÃnkten Konfiguration in ct-Bot.h Ãbersetzt. Dabei sind einige Linker-Fehler aufgetreten, die ich alle auf fehlende #ifdef-Verzweigungen zurÃckfÃhren konnte. Am Ende dieser Email finden Sie einen Patch, der diese Fehler korrigiert. Kann bitte jemand den Patch prÃfen? Insbesondere durch die Bedingungen fÃr BEHAVIOUR_REMOTECALL_AVAILABLE fÃllt in cmd-tools_pc.c einiges heraus. Mir scheint das so korrekt zu sein. Ich wÃrde mich sehr freuen, wenn die Fehler noch im aktuellen stable-Zweig korrigiert werden wÃrden. Damit ist es fÃr mich und meine Studenten leichter, eine funktionierende Codebasis herzustellen. GruÃ, Simon Index: pc/cmd-tools_pc.c =================================================================== --- pc/cmd-tools_pc.c (Revision 1736) +++ pc/cmd-tools_pc.c (Arbeitskopie) @@ -43,7 +43,9 @@ //#define DEBUG +#ifdef BEHAVIOUR_REMOTECALL_AVAILABLE static pthread_t cmd_thread; /*!< Thread fuer die RemoteCall-Auswertung per Kommandozeile */ +#endif // BEHAVIOUR_REMOTECALL_AVAILABLE /*! * Zeigt Informationen zu den moeglichen Kommandozeilenargumenten an. @@ -269,6 +271,8 @@ } } + +#ifdef BEHAVIOUR_REMOTECALL_AVAILABLE /*! * Liest RemoteCall-Commands von stdin ein */ @@ -344,4 +348,5 @@ pthread_create(&cmd_thread, NULL, (void * (*)(void *)) read_command_thread, NULL); } +#endif // BEHAVIOUR_REMOTECALL_AVAILABLE #endif // PC Index: pc/init-low_pc.c =================================================================== --- pc/init-low_pc.c (Revision 1736) +++ pc/init-low_pc.c (Arbeitskopie) @@ -58,6 +58,8 @@ * ausgefuehrt werden sollen */ void ctbot_init_low_last(void) { +#ifdef BEHAVIOUR_REMOTECALL_AVAILABLE cmd_init(); +#endif // BEHAVIOUR_REMOTECALL_AVAILABLE } #endif // PC Index: ct-Bot.c =================================================================== --- ct-Bot.c (Revision 1736) +++ ct-Bot.c (Arbeitskopie) @@ -112,8 +112,16 @@ #endif // CREATE_TRACEFILE_AVAILABLE /* jeweils alle 100 ms kommunizieren Bot, User und Sim */ - if (timer_ms_passed_16(&comm_ticks, 50) || RC5_Code != 0) { - if (uart_gui == 0 || RC5_Code != 0) { + if (timer_ms_passed_16(&comm_ticks, 50) +#ifdef RC5_AVAILABLE +|| RC5_Code != 0 +#endif // RC5_AVAILABLE + ) { + if (uart_gui == 0 +#ifdef RC5_AVAILABLE +|| RC5_Code != 0 +#endif + ) { #ifdef DISPLAY_AVAILABLE /* GUI-Behandlung starten */ gui_display(display_screen); Index: ui/gui.c =================================================================== --- ui/gui.c (Revision 1736) +++ ui/gui.c (Arbeitskopie) @@ -200,7 +200,9 @@ /* Gueltigkeit der Screen-Nr. pruefen und Anzeigefunktion aufrufen, falls Screen belegt ist */ #ifdef LED_AVAILABLE #ifndef TEST_AVAILABLE +#ifdef RC5_AVAILABLE if (RC5_Code != 0) LED_on(LED_WEISS); +#endif // RC5_AVAILABLE #endif // TEST_AVAILABLE #endif // LED_AVAILABLE if (screen < max_screens && screen_functions[screen] != NULL) screen_functions[screen](); @@ -222,8 +224,10 @@ } #endif // KEYPAD_AVAILABLE +#ifdef RC5_AVAILABLE if (RC5_Code != 0) default_key_handler(); // falls rc5-Code noch nicht abgearbeitet, Standardbehandlung ausfuehren RC5_Code = 0; // fertig, RC5-Puffer loeschen +#endif // RC5_AVAILABLE #ifdef LED_AVAILABLE #ifndef TEST_AVAILABLE LED_off(LED_WEISS);