Apres quelques investigations et en décommentant les appel de la fonction eRcv() le code ne se bloque plus et sur le serial j'ai ca:
SD opened
Command connected
Bad PASV Answer
Bad PASV Answer
Bad PASV Answer
Bad PASV Answer
Bad PASV Answer
Bad PASV Answer
Data port: 0
Data connection failed
FTP FAIL
Je vais rechercher maintenant a quoi ca correspond.
Quand tu envoi une commande, le serveur te repond.
if(!eRcv()) return 0; veut dire, si la réponse du serveur est négative, stop le programme.
De mémoire, la commande SYST demande des informations sur sa configuration de façon à ce que le client (ton arduino) s'adapte pour dialoguer.
Au vu de ton log, ça bloque avec la commande PASV , le serveur FTP repond à cette commande en envoyant son adresse ip et un nouveau numéro de port .
Je pense que tu as un problème de firewall sur ton pc qui refuse la connexion de ton arduino sur le port fournit par le serveur ou alors le sketch traduit mal la réponse du serveur.
@Koala et fdufnews, le pare feu a filezilla server et client en autorisation. j'ai toujour la même réponse. @Infobarquee j'ai carrément copier coller l'example pour voir le fonctionnement, mais l'exemple ne marche pas pour moi.
J'ai remarqué que dans la fonction eRcv() il attend que le client soit available, je pense que c'est cette ligne qui bloque le programme, puisque le arduino ne se connecte pas au serveur. Je ne vois plus comment faire. J'ai mis en pièce jointe la config de FZ server passive mode settings.
Y a t-il un test que je pourrais faire pour voir si je reçois quelque chose du serveur?
deja il faut cocher la bonne case
"use the following ip"
après si on ne connait pas le security settings, c'est hard.
vu que tu es en local, cherche anonymous dans la conf
pour le moment on est au même point que de dépanner le calculateur d'une voiture par téléphone.
En piece jointe la capture des security setings.
Pour l'instant je ne suis pas en local je me suis rebranché sur le réseau et ma livebox.
Ce que je comprend pas c'est que j'arrive a me connecter avec fz client sur le serveur mais pas avec l'exemple d'arduino pourtant sur tous les forums parlant du FTP que j'ai regardé ils y arrivent.
quand tu te connecte via ton client ftp, tu arrive bien dans le rep ou est stocké le fichier test.txt ?
question idiote, mais bon, je suis pas à une près.
tu changes bien avec ton user et pass déclarés dans le ftp server et qui fonctionnent aussi avec ton client ftp
Je reviens de vacances, désole pour le délai. @infobarquee: oui j'ai changé l'user et le pass par les identifiants que j'ai créer sur FZ server. @Koala , j’appuie une première fois sur r pour voir le fichier texte sur ma carte SD et ensuite j'appui f pour demarrer le mode FTP.
Je vous fais parvenir le fichiers log du serveur. La premiére partie correspond à la connection avec FZ client, ensuite h'ai essayé de lancer le prog arduino et d'appuyé f il se lance sur le serial j'ai commande connecté donc je rentre bien dans cette boucle.
if (client.connect(server,21)) {
Serial.println(F("Command connected"));
Mais par contre j'ai rien au niveau des logs et le code se bloque.
Justement, je ne comprend pas pourquoi le bug est au niveau code, j'ai utilisé l'exemple du FTP client.
Je séche un peu, je vais essayer de me pencher plus sur la fonction eRcv() et la petite loop qui permet de trouver le port pour les donnée.
Je me permet de revenir vers vous car après quelques recherches sur le web et sur les différents forums, j'ai compris a quoi sert la fonction eRcv(). Je sais maintenant ou le code ftp bloque, en fait il n'arrive pas a se connecter à mon server. il bloque sur la ligne if (client.connect(server,21)) se pourrait-il qu'il y est un problème avec le pare feu ou autre.
Merci de votre aide.
J'ai trouvé en fait malgré que l'application Filezilla soit accepté dans les réglés du pare feu, il bloque la connection ftp.
Afin d’éviter tous les problèmes liés avec le routeur, j'ai connecté directement l'arduino à mon serveur FTP avec un cable RJ45.
Suite a cela j'ai désactiver totalement le pare-feu windaub, et la Poff la connection se fait l'identifiant et le mot de passe se rentre correctement et le transfert de fichier se fait.