Au démarrage d’un programme, il peut être intéressant d’afficher le nom du programme sur la transmission série. Pour cela il existe une macro prédéfinie: __FILE__
Exemple de programme:
void setup()
{
Serial.begin(9600);
Serial.println(__FILE__);
}
void loop()
{
}
Dans cet exemple, la ligne suivante sera imprimée:
C:\...\...\test\test.ino
Remarque 1: ...\...
représente l’arborescence des dossiers.
Remarque 2: L’exemple a été réalisé dans l’environnement de développement Arduino pur Windows.
Remarque 3: Le nom du programme est test.ino
. Il est précédé du dossier test\
.
L’exemple peut être enrichi d’autres macros prédéfinies comme __DATE__
et __TIME__
.
La liste complète de tous les macros prédéfinies est disponible ici:
Standard-Predefined-Macros
__LINE__ peut être très long. Parfois il peut être intéressant de récupérer uniquement le nom du fichier, test.ino dans l’exemple ci-dessus. Pour cela on peut définir une nouvelle macro:
#define __FILENAME__ (strrchr("\\" __FILE__, '\\') + 1) // Windows
ou
#define __FILENAME__ (strrchr("/" __FILE__, '/') + 1) // Linux/MacOS