tsandmann / ct-bot

ct-Bot Code of ct-Bot project
https://www.ct-bot.de
GNU General Public License v2.0
5 stars 1 forks source link

ARM_LINUX_DISPLAY redefined #52

Closed Nightwalker-87 closed 5 years ago

Nightwalker-87 commented 5 years ago

In folgender Konfiguration:

-> aktueller Develop Branch 28059cb0fe0a682805a338a2fac0e8bca136855a -> in /include/bot-logic/available_behaviours.h alle #defines für Verhalten einschalten außer bei den drei veralteten Verhalten -> in ct-bot.h alle #defines für Optionen an -> in ui/available_screens.h alle Screens aktivieren -> -Wpedantic aktiv

liefert neben bereits bekannten Ausgaben u.a. auch folgenden Output (gekürzt):

`In file included from ./include/bot-local.h:189, from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_abl.c:82: ./bot-local-override.h:39: warning: "ARM_LINUX_DISPLAY" redefined

define ARM_LINUX_DISPLAY "stdout" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`

`In file included from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_abl.c:82: ./include/bot-local.h:137: note: this is the location of the previous definition

define ARM_LINUX_DISPLAY "/dev/tty1" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`

`In file included from ./include/bot-local.h:189, from ct-Bot.h:107, from ct-Bot.c:27: ./bot-local-override.h:39: warning: "ARM_LINUX_DISPLAY" redefined

define ARM_LINUX_DISPLAY "stdout" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`

`In file included from ct-Bot.h:107, from ct-Bot.c:27: ./include/bot-local.h:137: note: this is the location of the previous definition

define ARM_LINUX_DISPLAY "/dev/tty1" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`

`In file included from ./include/bot-local.h:189, from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_avoid_border.c:27: ./bot-local-override.h:39: warning: "ARM_LINUX_DISPLAY" redefined

define ARM_LINUX_DISPLAY "stdout" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`

`In file included from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_avoid_border.c:27: ./include/bot-local.h:137: note: this is the location of the previous definition

define ARM_LINUX_DISPLAY "/dev/tty1" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`

`In file included from ./include/bot-local.h:189, from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_avoid_col.c:28: ./bot-local-override.h:39: warning: "ARM_LINUX_DISPLAY" redefined

define ARM_LINUX_DISPLAY "stdout" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`

`In file included from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_avoid_col.c:28: ./include/bot-local.h:137: note: this is the location of the previous definition

define ARM_LINUX_DISPLAY "/dev/tty1" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`

`In file included from ./include/bot-local.h:189, from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_calibrate_sharps.c:32: ./bot-local-override.h:39: warning: "ARM_LINUX_DISPLAY" redefined

define ARM_LINUX_DISPLAY "stdout" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`

`In file included from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_calibrate_sharps.c:32: ./include/bot-local.h:137: note: this is the location of the previous definition

define ARM_LINUX_DISPLAY "/dev/tty1" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`

`In file included from ./include/bot-local.h:189, from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_calibrate_pid.c:27: ./bot-local-override.h:39: warning: "ARM_LINUX_DISPLAY" redefined

define ARM_LINUX_DISPLAY "stdout" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`

`In file included from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_calibrate_pid.c:27: ./include/bot-local.h:137: note: this is the location of the previous definition

define ARM_LINUX_DISPLAY "/dev/tty1" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`

`In file included from ./include/bot-local.h:189, from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_cancel_behaviour.c:30: ./bot-local-override.h:39: warning: "ARM_LINUX_DISPLAY" redefined

define ARM_LINUX_DISPLAY "stdout" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`

`In file included from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_cancel_behaviour.c:30: ./include/bot-local.h:137: note: this is the location of the previous definition

define ARM_LINUX_DISPLAY "/dev/tty1" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`

`In file included from ./include/bot-local.h:189, from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_catch_pillar.c:28: ./bot-local-override.h:39: warning: "ARM_LINUX_DISPLAY" redefined

define ARM_LINUX_DISPLAY "stdout" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`

`In file included from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_catch_pillar.c:28: ./include/bot-local.h:137: note: this is the location of the previous definition

define ARM_LINUX_DISPLAY "/dev/tty1" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`

`In file included from ./include/bot-local.h:189, from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_classify_objects.c:34: ./bot-local-override.h:39: warning: "ARM_LINUX_DISPLAY" redefined

define ARM_LINUX_DISPLAY "stdout" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`

`In file included from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_classify_objects.c:34: ./include/bot-local.h:137: note: this is the location of the previous definition

define ARM_LINUX_DISPLAY "/dev/tty1" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`

Ist das bewusst so implementiert oder kommt das durch eine fehlende Abhängigkeit, welche bislang noch nicht aufgefallen ist?

tsandmann commented 5 years ago

Ich würde sagen, da ist ein Fehler in deiner bot-local-override.h.

Nightwalker-87 commented 5 years ago

Ich habe keine user-spezifische bot-local-override.h für die Tests eingerichtet, daher die Nachfrage.

tsandmann commented 5 years ago

Hm, laut der Ausgabe wird aber eine ./bot-local-override.h eingebunden, die es im Repo gar nicht gibt (es gibt ja nur das leere Template in ./include/). Wo kommt die denn dann her?

Nightwalker-87 commented 5 years ago

Genau das hab ich mich ja auch gefragt. ;-) Zumal beim Build durch ein stets vorangestelltes git clean -dfx ja alles was nicht indexiert ist aus dem Verzeichnis gepustet wird...

Edit: Nope, es ist vor dem Build definitiv kein ./bot-local-override.h da. Die wird erst während der Build/Travis-CI Routine da reinkopiert (und offensichtlich während dem Test-Build mitverlinkt) und verschwindet danach sofort wieder, wie ich während dem Build im Dateimanager beobachten konnte. Da ist meiner Einschätzung nach folglich irgendwas faul. Eigentlich sollten die Travis-Tests ja nur ./bot-local-override.h irgendwo hin sichern sofern diese Datei existiert...

Nightwalker-87 commented 5 years ago

Hier ist der Inhalt der Phantom-Datei:

ifndef INCLUDE_BOT_LOCAL_OVERRIDEH

define INCLUDE_BOT_LOCAL_OVERRIDEH

/ Logging-Funktionen /

undef LOG_CTSIM_AVAILABLE /*< Logging zum ct-Sim (PC und MCU) /

undef LOG_DISPLAY_AVAILABLE /*< Logging ueber das LCD-Display (PC und MCU) /

define LOG_STDOUT_AVAILABLE /*< Logging auf die Konsole (nur fuer PC) /

define USE_MINILOG /*< schaltet auf schlankes Logging um /

define CREATE_TRACEFILE_AVAILABLE /*< Aktiviert das Schreiben einer Trace-Datei (nur PC) /

/ Kommunikation /

define BOT_2_SIM_AVAILABLE /*< Soll der Bot mit dem Sim kommunizieren? /

define BOT_2_BOT_AVAILABLE /*< Sollen Bots untereinander kommunizieren? /

define BOT_2_BOT_PAYLOAD_AVAILABLE /*< Aktiviert Payload-Versand per Bot-2-Bot Kommunikation /

/ Display-Funktionen /

define DISPLAY_AVAILABLE /*< Display-Funktionen aktiv /

define KEYPAD_AVAILABLE /*< Keypad-Eingabe vorhanden? /

define DISPLAY_REMOTE_AVAILABLE /*< Sende LCD Anzeigedaten an den Simulator /

define WELCOME_AVAILABLE /*< kleiner Willkommensgruss /

/ Sensorauswertung /

undef MOUSE_AVAILABLE /*< Maus Sensor /

undef MEASURE_MOUSE_AVAILABLE /*< Geschwindigkeiten werden aus den Maussensordaten berechnet /

undef MEASURE_COUPLED_AVAILABLE /*< Geschwindigkeiten werden aus Maus- und Encoderwerten ermittelt und gekoppelt /

undef MEASURE_POSITION_ERRORS_AVAILABLE /*< Fehlerberechnungen bei der Positionsbestimmung /

define BPS_AVAILABLE /*< Bot Positioning System /

/ Umgebungskarte /

define MAP_AVAILABLE /*< Aktiviert die Kartographie /

define MAP_2_SIM_AVAILABLE /*< Sendet die Map zur Anzeige an den Sim /

/ MMC-/SD-Karte als Speichererweiterung (Erweiterungsmodul) /

define SDFAT_AVAILABLE /*< Unterstuetzung fuer FAT-Dateisystem (FAT16 und FAT32) auf MMC/SD-Karte /

/ Hardware-Treiber /

define ADC_AVAILABLE /*< A/D-Konverter /

define SHIFT_AVAILABLE /*< Shift Register /

define ENA_AVAILABLE /*< Enable-Leitungen /

define LED_AVAILABLE /*< LEDs aktiv /

define IR_AVAILABLE /*< Infrarot Fernbedienung aktiv /

define RC5_AVAILABLE /*< Key-Mapping fuer IR-RC aktiv /

/ Sonstiges /

define BEHAVIOUR_AVAILABLE /*< Nur wenn dieser Parameter gesetzt ist, exisitiert das Verhaltenssystem /

define POS_STORE_AVAILABLE /*< Positionsspeicher vorhanden /

define OS_AVAILABLE /*< Aktiviert BotOS fuer Threads und Scheduling /

define ARM_LINUX_BOARD /*< Code fuer ARM-Linux Board aktivieren, wenn ein ARM-Linux- Target ausgewaehlt wurde. Fuehrt den high-level Code und die Verhalten aus */

endif / INCLUDE_BOT_LOCAL_OVERRIDEH /

Das Phänomen ist reproduzierbar und obiges entspricht ganz eindeutig nicht dem Inhalt meiner außerhalb des Projekts gesicherten bot-local-override.h.

tsandmann commented 5 years ago

Ach sooo, du führst ein Test-Script aus? Das geht nur dann fehlerfrei, wenn man nicht von Hand Optionen aktiviert oder geändert hat. Die Test-Scripts gehen fest davon aus, dass ct-Bot.h & Co. unverändert sind (weil sie beim Travis-Test ja frisch aus dem Repo kommen).

Nightwalker-87 commented 5 years ago

Na super... :-/ Das heißt ich kann die so gar nicht zum Testen verwenden...

tsandmann commented 5 years ago

Na ja, die Test-Scripts setzen die Optionen ja selbst. Zwar nicht alle möglichen Kombinationen, aber zumindest mal einige.

Nightwalker-87 commented 5 years ago

Dann müsste ich mir da wohl einen eigenen Test-Fall definieren, der dann über das Repo eingelesen wird.

tsandmann commented 5 years ago

Ja klar, du kannst für deine eigenen Test-Settings einfach eine neue Datei in tests/{mcu|pc}/ anlegen.

Nightwalker-87 commented 5 years ago

Dann gehe ich mal davon aus, dass dieses Ticket somit gelöst ist. Ich werde die Doku um einen Hinweis zur Verwendung der Travis CI Testscripts ergänzen.