Librairies imbriquées

Bonjour tous le monde!

Pour un projet arduino utilisant une carte SD et le module ethernet, j'ai créé une libraire me permettant de gérer un peu différemment la carte SD, et une librairie qui fait certaines opérations particulières via la liaison ethernet.

Dans mon programme, j'utilise des fonctions des deux librairies. Mais voila, j'aimerais qu'une fonction de ma librairie ethernet puisse utiliser une fonction de ma librairie SD.

Ma question est donc: est ce que je dois inclure ma librairie SD dans ma librairie ethernet, et inclure ma librairie SD ET ma librairie ethernet dans mon programme? Ou est ce que je peux juste inclure ma librairie SD dans ma librairie ethernet, et juste inclure la librairie ethernet dans mon programme?

Et troisième solution, faire une seule bibliothéque. Est ce qu'il y a un limite d'utilisation des bibliothéque, est ce qu'à partir d'un certain nombre de fonctions elles ne sont plus efficaces?

C’est pas très élégant ni très économique en mémoire programme d’inclure une librairie dans une autre si elle n’est pas tout le temps nécessaire.

void setup(void){}

void loop (void){
  Serial.print("Hello");
}

Si tu compiles ce sketch il indique une taille de 992 octets

#include <LCD_driver.h>
#include <nokia_tester.h>

void setup(void){}

void loop (void){
  Serial.print("Hello");
}

Si tu compiles celui-là il indique une taille de 4362 octets.

Si tu inclus ta librairie SD dans la librairie Ethernet elle sera toujours intégrée dans les sketchs où tu utiliseras l’Ethernet même si tu n’as pas besoin de la ressource SD.

En plus tu te retrouves avec une librairie Ethernet spécifique. Au lieu d’utiliser la librairie standard ce qui va compliquer les mises à jour.

Il serait plus malin de créer une librairie supplémentaire qui appelle la librairie Ethernet ET la librairie SD et qui implémente les méthodes qui manquent dans la librairie Ethernet pour remplir les fonctions particulières dont tu as besoin.

Ouep, je pense essayer de faire ça, tout regrouper dans une seule bibliothéque. Merci!