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);