Go Down

Topic: Développer une librairie à partir d'autres librairies (Read 658 times) previous topic - next topic

kev1

Salut salut,

Le problème est dans le titre. J'aimerais créer une librairie qui utilise les librairies déjà développées pour arduino. Par exemple dans ma classe j'aimerais créer et utiliser un objet provenant de la librairie ethernet, et écrire des méthodes pour établir des connexions.
Est ce possible?
Je ne vois pas pourquoi on ne pourrait pas le faire, mais je n' y parvient pas. J'ai des soucis pour lier les librairies.
J'utilise la version Codeblocks Arduino du site http://www.arduinodev.com/codeblocks/ pour développer la librairie.

Merci pour votre aide !

B@tto

Avec codeblock je sais pas, mais avec la méthode "classique" (IDE Arduino ou notepad++ quoi), il suffit d'ajouter les librairies normalement dans le .h comme dans un programme normal : #include <wire.h> par exemple si tu fais appel à l'i2c.
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

kev1

Oui c'est ce que j'ai fait.
J'ai malgré tout des erreur du type: "undefined reference to 'EthernetClient::stop()'. Comme si la librairie n'était pas compilée.

B@tto

Es-tu sûr que les lib sont dans le bon dossier correpondant à codeblock ?
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

-Standby

Il faut vérifier aussi si la fonction est bien dans le header (le .h)
The Mind is like a parachute it works best when opened.

68tjs

Regarder comment fait Arduino ?
Le cas existe de classes qui héritent d'autre classe.

SesechXP

Salut,

En raison d'une "spécificité" de l'environnement Arduino, il faut aussi inclure les bibliothèques de bas niveau dans le sketch. Même si elle ne sont utilisées que dans ta bibliothèque perso.

Par exemple, j'avais développé une bibliothèque pour EEPROM 24Cxxx qui utilisait Wire :
- eeprom_24cxxx.ino -> #include <Wire.h>
- eeprom_24cxxx.cpp -> #include <Wire.h>
Bien que je n'avais aucun appel à la bibliothèque Wire dans le sketch...

A voir si le problème est le même avec Code::Blocks...

++
Julien - www.idreammicro.com

kev1

Bon le problème est résolu. Je pense que j'ajoutais mal les librairies d'arduino à mon projet.
Et effectivement il faut bien penser aux librairies de bas niveau.

Merci en tout cas.

Go Up