IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

esp8266 comme client wifi ne transmet pas


Sujet :

Arduino

  1. #1
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2008
    Messages : 289
    Points : 151
    Points
    151
    Par défaut esp8266 comme client wifi ne transmet pas
    bonjour,
    Je teste les capacités wifi de mon esp8266 en tant que client pour une application future.
    Le serveur tourne sur mon PC.
    Une partie du code de mon client:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    int nb_octets = 0;
     
    if (client.connect(server, 3340)) {
      Serial.println("connected to server");
      nb_octets = client.print(String("Hello"));  //ça fonctionne
      Serial.println();
      Serial.print(nb_octets);
      Serial.print(" octets ecrits.");
      client.stop();
    }
    Comme le dit le commentaire, ça fonctionne, le serveur reçoit bien la chaîne Hello.
    Une copie d'écran des échanges client/serveur capturés avec Wireshark.
    Nom : wiresharkClientOk.png
Affichages : 160
Taille : 98,3 Ko

    Dans mon application, j'aurai besoin de transmettre des résultats de mesures stockés dans un tableau de bytes. J'ai modifié mon client comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    byte txt[] = {'H', 'e', 'l', 'l', 'o'};
     
    if (client.connect(server, 3340)) {
      Serial.println("connected to server");
      for(i=0;i<sizeof(txt); ++i)
      {
        client.write(txt[i]);	//pas plus de succès avec client.print(txt[i]);
        Serial.print(txt[i]);
        nb_octets++;
      }
      Serial.println();
      Serial.print(nb_octets);
      Serial.print(" octets ecrits.");
      client.stop();
    }
    Le problème: seul le caractère 'H' est transmis alors que le pgm tourne bien 5 fois dans la boucle for, les différents affichages le prouvent. Le serveur ne reçoit que ce caractère.
    Une copie d'écran des échanges client/serveur capturés avec Wireshark.
    Nom : wiresharkClientNotOk.png
Affichages : 156
Taille : 99,0 Ko

    Ca me semble les mêmes trames que précédemment. Je tourne depuis un moment autour de ce problème, si quelqu'un a une idée...
    Merci.

  2. #2
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2008
    Messages : 289
    Points : 151
    Points
    151
    Par défaut
    Bonjour,
    je me répond à moi-même.
    Primo: j'en déduis que write() émet un octet et clos la connexion.
    Secondo: au final, mon application transmet des relevés de mesures stockés dans une structure. Transmette un entier du type int id = 0x4F4C4548 ne pose pas de pb, le serveur reçoit bien HELO. Par contre si id = 1; write() s'arrête au premier octet valant 0. J'ai lu d'autres messages évoquant ce pb sans apporter de solutions.

    Donc je convertis le contenu de ma structure en une chaîne de caractères que je transmet en utilisant la fonction print() sur mon objet client. Ce qui m'oblige à faire l'opération inverse côté serveur pour appliquer mes calculs.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SOAP] navigateur comme client soap
    Par youp_db dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 18/11/2006, 17h50
  2. Réponses: 17
    Dernier message: 11/07/2006, 22h30
  3. Icone systray de connexion wifi ne fonctionne pas bien ?
    Par elitost dans le forum Windows XP
    Réponses: 5
    Dernier message: 24/02/2006, 09h43
  4. Explorateur à distance (comme client FTP)...
    Par Annaced dans le forum Web & réseau
    Réponses: 3
    Dernier message: 01/06/2005, 13h05
  5. la liste des clients qui n'ont pas acheter aucun article ...
    Par TéBeSsI dans le forum Langage SQL
    Réponses: 6
    Dernier message: 13/02/2004, 14h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo