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

Tcl/Tk Discussion :

[TCL][Serial port] Ignorer un BREAK condition


Sujet :

Tcl/Tk

  1. #1
    Membre à l'essai
    Homme Profil pro
    Apprenti-Ingénieur
    Inscrit en
    Novembre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti-Ingénieur
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 14
    Points : 11
    Points
    11
    Par défaut [TCL][Serial port] Ignorer un BREAK condition
    Bonjour à tous,

    J'aimerais savoir si il est possible d'ignorer une condition BREAK à la lecture d'un channel. J'utilise une liaison série RS-485 et quand je désactive la broche HALF-CTRL, la ligne de communication passe à 0 et le récepteur détecte donc un BREAK sur la ligne. Ce n'est pas un problème mais quand je fais un read de mon channel, il me retourne une erreur car il détecte ce BREAK.

    Voici un copié/collé des commande que j'utilise pour démontrer le problème :
    *******************************************************************
    *******************************************************************
    (xxxxxx) 197 % fconfigure $rh -queue
    27 0
    (xxxxxx) 197 % fconfigure $rh -queue
    30 0
    (xxxxxx) 197 % fconfigure $rh -queue
    33 0
    (xxxxxx) 197 % fconfigure $rh -lasterror
    (xxxxxx) 198 % read $rh
    error reading "file3de1490": I/O error
    (xxxxxx) 199 % fconfigure $rh -lasterror
    BREAK
    *******************************************************************
    *******************************************************************

    Mes données sont là dans le buffer mais à l'appel de read il lit le BREAK et me retourne donc une erreur. Est-il possible d'ignorer cette erreur avec une option ?
    J'ai commencé à regarder les sources de TCL pour une éventuellement modification.

    Merci de votre aide.

  2. #2
    Membre à l'essai
    Homme Profil pro
    -
    Inscrit en
    Novembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Novembre 2015
    Messages : 8
    Points : 13
    Points
    13
    Par défaut
    bonjour,

    Pour travailler sur ce genre de port, il vaut bien mieux lire en utilisant la commande [gets] plutôt qu'avec [read]. Pour "ignorer" le break, je pense qu'il faudrait lire jusqu'au break avec des gets, fermer le canal dès que le break se présente, le rouvrir puis poursuivre la lecture avec des gets.

    J'ai écrit un outil en Tcl/Tk dédié au travail sur les ports série : SerPort Chat. Il est disponible ici : http://www.zolli.fr/Gratuiciels.php (pour Mac OS X, linux, Windows, starkit et sources).

  3. #3
    Membre à l'essai
    Homme Profil pro
    Apprenti-Ingénieur
    Inscrit en
    Novembre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti-Ingénieur
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Kroctk Voir le message
    bonjour,

    Pour travailler sur ce genre de port, il vaut bien mieux lire en utilisant la commande [gets] plutôt qu'avec [read]. Pour "ignorer" le break, je pense qu'il faudrait lire jusqu'au break avec des gets, fermer le canal dès que le break se présente, le rouvrir puis poursuivre la lecture avec des gets.

    J'ai écrit un outil en Tcl/Tk dédié au travail sur les ports série : SerPort Chat. Il est disponible ici : http://www.zolli.fr/Gratuiciels.php (pour Mac OS X, linux, Windows, starkit et sources).
    Merci pour ta réponse. Que je lise le buffer avec [gets] ou [read] c'est pareil.
    Les données sont là mais je ne peux pas les récupérer.

    ***********************************************
    ***********************************************
    (xxxxxx) 74 % set rh [initserial {\\.\COM5}]
    file389e620
    (xxxxxx) 75 % test
    Message out : ÷0
    (xxxxxx) 76 % fconfigure $rh -queue
    15 0
    (xxxxxx) 77 % gets $rh
    error reading "file389e620": I/O error
    (xxxxxx) 78 % fconfigure $rh -lasterror
    BREAK
    ***********************************************
    ***********************************************

    Pourquoi ces commandes empêchent-elles la lecture si un BREAK est détecté ? N'il y a t-il pas un autre moyen de lire le buffer ?

Discussions similaires

  1. problème avec serial port
    Par shirya dans le forum VB.NET
    Réponses: 15
    Dernier message: 22/12/2010, 10h03
  2. Ignorer image si condition non remplie
    Par Gunner4902 dans le forum Langage
    Réponses: 8
    Dernier message: 09/10/2008, 10h49
  3. Virtual serial port et VB
    Par manue22 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/04/2007, 11h45
  4. Probleme SERIAL PORT
    Par ishikawa dans le forum Windows
    Réponses: 1
    Dernier message: 30/03/2007, 20h16

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