Une librairie est définie avec la structure suivante :
Un dossier MaLibrairie contenue dans le dossier Arduino libraries, celui contenant lui même différents éléments :
* un fichier header MaLibrairie.h, qui contient en quelque sorte la structure du code source
* un fichier source MaLibrairie.cpp, qui contient le code source
* un dossier 'examples', qui contient plusieurs dossiers de sketches Arduino (chaque sketch devant être contenu dans un dossier éponyme pour Arduino).
=====Exemples :=====
==== .h ====
/* Le fichier header liste, en gros, tout ce que la librairie
contient en matière de fonctions, variables, etc. */
/*
Il est d'usage d'usage de mettre en commentaires
quelques précisions sur la librairie :
nom, usage, auteur, licence. Ex :
MaLibrairie.h - Template de librairie.
Créée by L.M., 26/03/2015.
Domaine publique
*/
/* La structure de contrôle #ifndef
qui englobe le code permet d'éviter
que la librairie ne soit déclarée de multiples fois */
#ifndef MaLibrairie_h
#define MaLibrairie_h
/* Inclure Arduino.h n'est pas obligatoire mais permet
d'accéder aux fonctionnalitées habituelles d'Arduino.
Il est possibles d'inclure d'autres librairies utiles,
ex: #include */
#include "Arduino.h"
/* On inclue en quelque sorte la structure du code contenue dans le .cpp ici */
class MaLibrairie {
public: /* tout ce qui est publique */
Morse(int arg); /* le constructeur avec ici un argument */
void MaFonction(); /* une fonction qui ne retourne rien */
private:
int _arg; /* une variable privée de type int.
La présence de l'underscore est une convention :
il s'agit de dissocier les arguments
des propriétés de l'objets, qui peuvent avoir des noms
très similaires. */
};
#endif
====.cpp====
/* Le fichier source contient le code source
de la MaLibrairie */
/*
Il est d'usage d'usage de mettre en commentaires
quelques précisions sur la librairie :
nom, usage, auteur, licence. Ex :
MaLibrairie.cpp - Template de librairie.
Créée by L.M., 26/03/2015.
Domaine publique
*/
/* On peut inclure Arduino.h pour utiliser les fonctions communes d'Arduino
On inclue le header de la MaLibrairie */
#include "Arduino.h"
#include "MaLibrairie.h"
/* On ajoute des fonctions, dont le constructeur */
MaLibrairie::MaLibrairie(int arg){
_arg = arg;
/* On aurait aussi pu utiliser
MaFonction(int arg){
this->arg = arg;
}
Si la propriété avait eu le même nom arg sans _. */
}
void MaLibrairie::MaFonction(){
_arg = 0;
}