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

NodeJS Discussion :

[serialport] Récupérer la réponse après l'envoi d'une trame


Sujet :

NodeJS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de dark_vidor
    Homme Profil pro
    Élève
    Inscrit en
    Janvier 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Janvier 2005
    Messages : 321
    Par défaut [serialport] Récupérer la réponse après l'envoi d'une trame
    Bonjour,
    Je débute avec node.js
    Je cherche à communiquer via le port série. J'arrive à envoyer mes trames, j'arrive à afficher la réponse dans la console, mais je n'arrive pas à récupérer la réponse dans une variable pour l'exploiter.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    const SerialPort = require('serialport');
    const Readline = SerialPort.parsers.Readline;
    const port = new SerialPort('COM5', {autoOpen: true});
    const parser = new Readline();
    port.pipe(parser);
     
    parser.on('data', function (data) { 
    	console.log(data);
    } );
     
    var trame = "toto";
     
    port.write( trame );
    Je pensais déclarer une variable comme var reply ="", avant la ligne parser.on et dans la function faire reply = data;
    Mais ça ne fonctionne pas

    Je pense qu'il me manque quelques bases ...

  2. #2
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    C’est parce que .on() est asynchrone, comme la plupart des fonctions de NodeJS. Tu vois bien data dans ta console ?
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre éclairé Avatar de dark_vidor
    Homme Profil pro
    Élève
    Inscrit en
    Janvier 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Janvier 2005
    Messages : 321
    Par défaut
    oui c'est bien ça !
    En fait je voulais récupérer ma trame pour l'analyser puis la renvoyer vers une page web, mais je crois que le plus simple est de travailler avec les websocket et d’interpréter la trame cote page web et navigateur...

  4. #4
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    Comment tu lances ce script ? Tu le fais depuis un terminal, ou bien tu as un serveur qui écoute les requêtes http ?
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  5. #5
    Membre éclairé Avatar de dark_vidor
    Homme Profil pro
    Élève
    Inscrit en
    Janvier 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Janvier 2005
    Messages : 321
    Par défaut
    J'ai créé un script server.js que je lance en local via le terminal sous windows pour le moment : c:\nodejs>node server.js
    Pour l'instant, il écoute le port 1664
    J'arrive à envoyer mes trames et à les recevoir via ma page web quand j'appelle dans le navigateur http://localhost:1664/?a=2&v=3
    La page est dans c:\nodejs

    Je voudrais maintenant faire la même chose en me connectant à distance et en rentrant par le port standard 80.
    Genre appeler l'adresse http://192.168.1.X/?a=2&v=3 et que cela génère et envoie la trame en local avec node.js sur le port série. (exemple typique : allumer une led sur via un Raspberry à distance)

    Dans un premier temps j'essaye donc de passer par un serveur apache local. En parallèle j'ai donc lancé EasyPhp.. et copier ma page dans le dossier www
    J'appelle ma page : http://127.0.0.1:8080/?a=2&v=3 et ça fonctionne mais j’appelle la bibliothèque socket.io.js depuis "l'extérieur"...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.1.0/socket.io.js"></script>
    Je voudrais l'appeler en local mais ça ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="socket.io.js"></script>
    Edit : ça fonctionne mais j'ai des erreurs dans la console ...

    Erreur dans les liens source : request failed with status 404
    URL de la ressource : http://127.0.0.1:8080/socket/socket.io.js
    URL du lien source : socket.io.js.map[En savoir plus]

  6. #6
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Salut

    Et en mettant le chemin complet src="lectuer/dossier/sousdossier/socket.io.js"
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

Discussions similaires

  1. Réponses: 3
    Dernier message: 31/08/2011, 15h20
  2. Réponses: 3
    Dernier message: 06/05/2011, 14h47
  3. Réponses: 8
    Dernier message: 03/05/2010, 11h30
  4. [Réseau] Connexion et envoie d'une trame
    Par ivanoe25 dans le forum Langage
    Réponses: 10
    Dernier message: 29/09/2006, 00h04
  5. Problème avec l'envoi d'une trame TCP
    Par fredoBreton dans le forum API, COM et SDKs
    Réponses: 14
    Dernier message: 17/11/2005, 20h19

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