Bonjour à tous,

Je termine la "création" d'une bibliothèque pour gérer un client FTP avec Arduino.

Pour l'instant les deux fichiers concernés, FTPClient.cpp et FTPClient.h sont inclus dans le *.ino via les instructions
Pas de problème....

La philosophie globale de la bibliothèque est la suivante,


Appel d'une fonction pour realiser une commande FTP.
la fonction vérifie si le WIFI est connecté, sinon retourne un code d'erreur
La fonction vérifie sir le serveur FTP est connecté, sinon se connecte au serveur.
Commande FTP + lecture de la réponse.
Actions suivante si necessaire
Fermeture de la connexion au serveur FTP si c'est cette fonction que l'a instaurée.
Sortie de la fonction avec un code résultat.

La connexion au WIFI est laissée à la discrétion de l'utilisateur. (c'est lui qui l'établit et la coupe ).



Maintenant je voudrais mettre ces deux fichiers dans le répertoire .../Arduino/librairies.
Et donc y accéder via le code
Cependant je me heurte à une ou deux questions:


La connexion au WIFI se fait avec un USER et un PASS. Lorsque FTPClient. h est en local, j'ajoute un fichier secret.h contenant les define de mes mot de passe.
Mais lorsque mes fichiers FTPClient seront en "public", je ne puis plus y inclure le fichier secret.h qui est lui local (et propre à chaque utilisateur

Je peux donc ajouter une fonction publique à ma bibliothèque FTPClient.cpp qui remplirait les variables nécessaires à la connexion au WIFI et au serveur FTP.

Donc l'utilisateur doit faire appel à une fonction de type:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
FTPinit(char *USER,char*PASS,char *IPSVR, char *FTPUSER,char *FTPPASS)
Si la bibliothèque doit fonctionner sur des Arduino=> peu de mémoire vive, comment stocker les informations???

Comme je veux que mon système fonctionne sur batterie, non seulement l y a un soucis de place mémoire mais aussi de consommation électrique .

Donc pour la consommation, le mieux est de couper la connexion WIFI lorsque cela n'est pas nécessaire.
Si on copie un fichier toutes le heures, 59 minutes de connexion WIFI sont inutiles.

Donc, soit
les USER, PASS et autre infos doivent être inscrite en globale dans le fichier FTPClient.cpp.
Dans ce cas, dois-je utiliser des malloc() er free() pour stocker les variables (economie de place mémoire) car je ne connait évidement
pas les nom des utilisateur et leurs mot de passe.

Soit, à chaque demande de connexion pour transfert, on doit redonner l'ensemble des paramètres(via une structure?).
Il faut donc aussi prévoir des malloc() et free() pour le stockage des info.

Soit, comment faire parvenir la liste des USER et PSSw dans cette bibliothèque ?

C'est plus une interrogation philosophique que technique, et surtout d'essayer de comprendre les règles pour la
création de bibliothèques.....

Merci

Michel