PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : __FILE__ mit Path, nicht nur Filename



blueshack
27.04.2021, 09:06
Hallo

Ich verwende in meinen Programmen gerne zum debuggen eine function, wo über die serielle der Filename mit Path des *.ino nach einem reset ausgegeben wird.
Dann kann ich nach längerer Zeit das Orginal leichter finden und weiterarbeiten.

Bei einem Arduino UNO, mega...... geht das problemlos, es wird mit

Serial.println(__FILE__); // for Arduino
der filename MIT dem path ausgegeben. - gut so!

aber bei einer NodeMCU (ESP8266) geht das nicht mehr.
Da wird nur mehr der Filename OHNE Path ausgegeben.

Was kann ich da tun?

Habe irgendwo gelesen, ESP verwendet einen gepatchten Compiler, um genau dies zu tun.
Habe auch gelesen, /home/andi/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc auszutauschen, aber gegen was???

Ich hätte gerne meinen Path zurück ;)

Kann mir da bitte jemand eine Tip geben?

Danke

shedepe
28.04.2021, 20:07
Mit einem aktuellen compiler kannst du C++ 20 verwenden und dann std::source_location verwenden: https://en.cppreference.com/w/cpp/utility/source_location

blueshack
29.04.2021, 10:12
Danke shedepe !

Aber leider verstehe ich nur Bahnhof.
Ich verwende die Arduino GUI. Was muss ich da austauschen, bzw. wo und wie die Toolchain ändern? Oder bin ich da jetzt falsch?

Danke

inka
29.04.2021, 18:31
ich klicke im Krusader (linux) mit der rechten maustaste auf das file und speichere den path. Im arduino code sieht es dann so aus:

Serial.print("code----/home/georg/Arduino/schlaf_apnoe/fips_baukasten/anti_apnoe_ESP_web_zwei_slider_3-2_test");

blueshack
01.05.2021, 10:46
ich klicke im Krusader (linux) mit der rechten maustaste auf das file und speichere den path. Im arduino code sieht es dann so aus:

Serial.print("code----/home/georg/Arduino/schlaf_apnoe/fips_baukasten/anti_apnoe_ESP_web_zwei_slider_3-2_test");

Danke, ja so habe ich das auch immer gemacht.
Aber eben mit dem Compilermakro __FILE__ gehts halt automatisch. Bei meiner agilen Entwicklung tut es gut, immer auf der Seriellen nach einem Reboot sehen zu können, welche Version gerade läuft.

Und eben, ich möchte nicht vergessen können, das mit der Hand zu ändern.

Bei UNO und MEGA geht's ja problemlos mit Pfad. Nur beim ESP8266 wird nur der Filename angezeigt.

Ich meine, in Wirklichkeit ist es ein Luxusproblem ;) Ich kann auch ohne Path leben, aber feiner wäre es schon :)

Danke

inka
01.05.2021, 11:34
ja, das anpassen vergesse ich auch oft...