Ce projet sert de base pour une série de travaux pratiques d'informatique embaquée à réaliser sur le kit de dévelopement de l'IUT GEII d'Annecy.
Nous prendrons comme exemple la première fonction à coder du TP1, la fonction qui définit l'état d'une LED du kit et dont le prototype est:
void GereLedsPortC(int8_t x_int8_numLed, bool x_bool_etat);
Dans la fonction setup()
du fichier src\main.cpp écrivez les lignes qui allument la première LED.
Ajoutez au dessus une ligne de commentaire qui explique la fonctionnalité:
// allumage de la LED 0
Compilez puis chargez le programme dans le kit pour vérifier le bon fonctionnement de la fonctionalité : la première LED doit s'allumer.
Mettez les lignes en commentaire et refaite l'opération pour une autre fonctionnalité.
Codez la fonction dans le fichier main.cpp. Si nécessaire, créez une fonction pour l'initialisation.
Testez la fonction avec un jeu de données représentatif dans un environnement simple.
Pour des TPs ultérieurs uniquement: Créez et exécutez les tests unitaires.
Retournez au point 3 si nécessaire.
Dans le dossier lib du projet, créez la bibliothèque MesFonctions (MesFonctions.h et MesFonctions.cpp) en suivant les indications de lib\README.
Pour éviter les erreurs en cas d'inclusion multiples, ajoutez au début du fichier MesFonctions.h:
#ifndef __MesFonctions_h_
#define __MesFonctions_h_
et ajoutez en fin de fichier:
#endif
Puis transférez la définition de la fonction GereLedsPortC dans MesFonctions.cpp et son prototype dans MesFonctions.h.
Dans main.cpp, ajoutez #include <MesFonctions.h>
.
Si l'IDE vous indique qu'il ne trouve pas le fichier, glissez la souris sur la ligne erronée, glissez puis cliquez sur Quick Fix puis sélectionnez la ligne add to include path.
Attention, dans d'autres circonstances, Quick Fix peut proposer de mauvaises solutions. N'en abusez pas.
Dans le fichier MesFonctions.h ajoutez un bloc commentaire juste avant chaque prototype:
Pour créer un commentaire, tapez /**
puis 'entrée' juste au-dessus de la ligne
void GereLedsPortC(int8_t x_int8_numLed, bool x_bool_etat);
Le bloc suivant doit apparaître automatiquement:
/**
* @brief
*
* @param x_int8_numLed
* @param x_bool_etat
*/
Vous pouvez alors compléter les lignes:
après @brief
, donnez une description rapide de la fonction.
Dans une ligne avec @param
, indiquez la signification des paramètres attendus et toute information utile sur leurs valeurs (valeur max, type, ...).
Entre @brief
et @param
, Donnez une description détaillée et personalisée de la fonction.
D'autre tags peuvent apparaître ou être ajoutés:
@return
pour indiquer ce que retourne la fonction le cas échéant.
@author
noms des auteurs de la fonction.
La création automatique de documentation à partir de ce bloc sera abordée plus tard.
Créez le fichier lib\MesFonctions\README.md (inspirez-vous du fichier README.md pour la syntaxe) dans lequel vous indiquerez pour chaque fonction:
- le fonctionnement de la fonction
- les conditions d'utilisation de la fonction
- les jutifications de vos choix techniques
Créez des exemples d'utilisation des fonctions dans lib\MesFonctions\examples en y copiant votre fichier src\main.cpp au fur et à mesure que vous finalisez des programmes et en le renomant. Par exemple: lib\MesFonctions\examples\main_clignotement.cpp.