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

 

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    août 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : août 2012
    Messages : 20
    Points : 10
    Points
    10

    Par défaut Utiliser le port com série

    Bonjour à toutes et tous,

    Je suis en train de concevoir un petit robot à base d'arduino et de moteur à CC, le robot envoi par liaison série des données de télémétrie.

    Comme je connais vbs/HTA, sur mon pc je voudrais faire une interface graphique cependant je n'arrive pas à faire fonctionner la lecture du port série de façon régulière.
    Mon programme HTA se fige à chaque fois que j'appelle la fonction de lecture et/ou de fin de flux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    		Set fso = CreateObject("Scripting.FileSystemObject")
    		Set com = fso.OpenTextFile("COM8:9600,N,8,1", ForReading)
     
    		MsgBox("Start to read data from COM")
     
    		Do While com.AtEndOfStream <> True   'ca bloque ici
    		s = com.ReadLine                                   'ou ici bloque ici
    		Loop
     
    		com.Close

    Quelqu'un a-t-il une idée ? ou réaliser cette fonctionnalité suivant un autre moyen ?

    Merci d'avance.
    Bonne journée.
    Frédéric.

  2. #2
    Membre régulier
    Homme Profil pro
    Tech maintenance Info
    Inscrit en
    août 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Tech maintenance Info
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2009
    Messages : 156
    Points : 80
    Points
    80

    Par défaut

    Salut,

    Avec une pause a ça fige toujours?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Do While com.AtEndOfStream <> True
    s = com.ReadLine
    WScript.Sleep(200)
    Loop

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    août 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : août 2012
    Messages : 20
    Points : 10
    Points
    10

    Par défaut

    Salut,
    Merci de intéresser à mon soucis.

    Oui ça le fait aussi, en fait ça le fait dès la première boucle sur le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    com.AtEndOfStream <> True
    Ensuite il se déclenche quand j'ai envoyé beaucoup de données comme-ci il ne répondait que si le buffer du port était full !

    Une fois la première lecture faite, ca lit quelques lignes et dès que je n'envoie plus rien à lire ca freez.

    J'ai rien trouvé coté buffer mais j'ai aussi essayé com.Read(2) pour ne lire que deux caractères mais j'ai le même comportement...

    Une autre idée ?
    Merci.
    Frédéric.

  4. #4
    Membre régulier
    Homme Profil pro
    Tech maintenance Info
    Inscrit en
    août 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Tech maintenance Info
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2009
    Messages : 156
    Points : 80
    Points
    80

  5. #5
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    février 2006
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2006
    Messages : 1 157
    Points : 3 049
    Points
    3 049

    Par défaut

    salut,
    peut-être un problème de format des données envoyées
    j'aurais tendance à penser que la méthode ReadLine
    attend un CRLF avant de redonner la main
    @NeriXs
    ce lien fait référence à une limitation du buffer des I/O standards
    qui n'est plus d'actualité depuis la v5.7
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    août 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : août 2012
    Messages : 20
    Points : 10
    Points
    10

    Par défaut

    Bonsoir,

    Alors j'avoue que je viens de passer 45min à essayer de comprendre le lien sans pouvoir en tirer quelque conclusion que ce soit...

    Je vais devoir abandonner mon idée d'utiliser vbs et passer en C, outch !

    Merci pour votre aide.

    Frédéric.

Discussions similaires

  1. Utilisation des ports COM en Java avec RXTX
    Par philippe57460 dans le forum Général Java
    Réponses: 13
    Dernier message: 02/02/2010, 12h18
  2. Besoin d'un tuto pour l'utilisation du port COM
    Par megamario dans le forum VB.NET
    Réponses: 5
    Dernier message: 09/07/2009, 16h25
  3. Réponses: 10
    Dernier message: 07/07/2009, 14h25
  4. comment utiliser le port com a mes application?
    Par zakichanedz dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 27/05/2007, 20h03
  5. Utilisation du port COM
    Par chourmo dans le forum Composants VCL
    Réponses: 10
    Dernier message: 13/06/2005, 11h09

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