Version d'un programme

Bonjour,

Pourriez-vous me dire si il est possible de vérifier la version d'un programme entre celui de l'arduino et celui que l'on ouvre dans l'IDE.

Une option dans l'IDE "COMPARE PROGRAMME"

Car si on travail avec plusieurs version et que l'on oublie quelle version est dans l'arduino un peu difficile.

Bonjour

Pas de solution 'automatique' à ma connaissance, j'ajoute (quand je suis prévoyant !!) dans chaque programme un Serial.println() avec indication de la version et peux ainsi retrouver ultérieurement la version en place.

si vous devez brancher l'arduino à l'IDE, autant charger dans l'arduino la version que vous voulez, au moins vous serez sûr de la version en mémoire..

sinon une bonne approche de @al1fch

Voici une solution qu'on m'avait fait:

mettre ca dans les definitions:
// --- Recuperation du nom fichier avec date et heure pour affichage dans le setup
PROGMEM const char _version[] = FILE " " DATE " " TIME;

et ceci dans le setup par exemple:
Serial.println((const __FlashStringHelper *)_version); //Impression du nom fichier + date/heure

oui quelque chose du genre est pratique

#define VERSION "V1.0" // définissez ici votre N° de version

PROGMEM const char description[] = __FILE__ "\r\n" __DATE__ "\r\n" __TIME__ "\r\n" VERSION;

void setup()
{
  Serial.begin(115200);
  Serial.println((const __FlashStringHelper *) description);
}

void loop() {}

yan_alp73:
Voici une solution qu'on m'avait fait:

mettre ca dans les definitions:
// --- Recuperation du nom fichier avec date et heure pour affichage dans le setup
PROGMEM const char _version[] = FILE " " DATE " " TIME;

et ceci dans le setup par exemple:
Serial.println((const __FlashStringHelper *)_version); //Impression du nom fichier + date/heure

Merci beaucoup, je vais me pencher sur cette façon.

Bonjour yan_alp73

yan_alp73:
Voici une solution qu'on m'avait fait:

mettre ca dans les definitions:
// --- Recuperation du nom fichier avec date et heure pour affichage dans le setup
PROGMEM const char _version[] = FILE " " DATE " " TIME;

et ceci dans le setup par exemple:
Serial.println((const __FlashStringHelper *)_version); //Impression du nom fichier + date/heure

Il me semble que date et heure seront celles de l'édition de lien et de chargement , pas celle de modification ou de compilation.

Cordialement,
bidouilleelec

Non, c'est l'heure de la compilation, aucun doute là dessus.
Ce sont des directives de compilation.

Bonjour Hbachetti

hbachetti:
Non, c'est l'heure de la compilation, aucun doute là dessus.
Ce sont des directives de compilation.

Essayez de recharger un exemple en ne modifiant aucun source : la date sera modifiée.
Ce sera la date des fichiers .elf .hex .eep

Cordialement,
bidouilleelec

Ce ne peut être que le compilateur qui résoud ces "defines" DATE etc, pour créer un .o
Plus tard (1 sec ou 1 an), le linker assemble les .o, sans en changer le contenu.

Si la date a changé au versement du prog, c'est certainement qu'il a été recompilé au passage.

Bonsoir biggil

biggil:
Ce ne peut être que le compilateur qui résoud ces "defines" DATE etc, pour créer un .o
Plus tard (1 sec ou 1 an), le linker assemble les .o, sans en changer le contenu.

Si la date a changé au versement du prog, c'est certainement qu'il a été recompilé au passage.

Dans tous les cas la date récupérée ne peut servir à identifier une version du programme compilé ou chargé.

Cordialement,
bidouilleelec

bidouilleelec:
Dans tous les cas la date récupérée ne peut servir à identifier une version du programme compilé ou chargé.

En effet, parce que de p*tain d'ide recompile le fichier .ino même s'il n'a pas été modifié.

Essayez de recharger un exemple en ne modifiant aucun source : la date sera modifiée.

Le fait de cliquer sur le bouton téléverser suffit à déclencher une compilation.
Tu devrais examiner les messages de la fenêtre de compilation / chargement.

L’idée c’est de brancher l’arduino sur un port série et regarder ce qui s’affiche, pas de recharger le programme...