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

C# Discussion :

delai attente port serie


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 69
    Billets dans le blog
    1
    Par défaut delai attente port serie
    Bonjour
    Je lis des données sur le port série. Parfois les données ne sont pas presentes assez tot donc je pensais rajouter un delai mais ca ne marche pas.
    j'ai l'impression que ca bloque toute la thread et donc que la partie reception port serie est bloquée elle aussi: est-ce que vous pourriez me confirmer mon impression a partir d'une lecture de code ou me conseiller quelque chose?

    => envoie de la commande ici
    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
    17
    18
    19
                        Thread.Sleep(500);
                        if (strreceived.Length > 20)
                        {
                            // traitement ici
                        }
                        else   // re-attente
                        {
                            Thread.Sleep(2000);
                            // probleme ici: delai supplementaire ne semble rien apporter alors que 2 sec est largement suffisant pour recevoir la reponse. Il semblerait que serialPort1_DataReceived() n'est jamais appelé entre ces 2 delais alors que de nouvelles datas ont été recues ????
                        }
     
            // reception port serie
            private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
            {
                 // lecture de la chaine recue
                serialPort1.Read(inputData, 0, serialbyteNb);
                strTexte = ByteToHex(inputData);
                strreceived += strTexte;
          }
    Merci
    Michel

  2. #2
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,
    Citation Envoyé par mich35 Voir le message
    Parfois les données ne sont pas presentes assez tot
    Bizarre comme concept: tenter de lire des données avant qu'elle arrivent. C'est un peu comme essayer de sauter dans un train en marche.

    Plutôt que de lire, tu ne peux pas écouter sur le port?

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 69
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    Salut,Bizarre comme concept: tenter de lire des données avant qu'elle arrivent. C'est un peu comme essayer de sauter dans un train en marche.

    Plutôt que de lire, tu ne peux pas écouter sur le port?

    A+
    Bonjour,

    Je pensais que j'ecoutais justement mais si ce n'est pas le cas je veux bien une suggestion de code.
    De toute facon il faudra bien bien que le temps d'ecoute soit limité, je ne peut pas faire l'action suivante tant que les données ne sont pas recues et il ne faut pas tout bloqué si elles n'arrivent pas (equipement pas branché par exemple)

    Merci

  4. #4
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par mich35 Voir le message
    Je pensais que j'ecoutais justement mais si ce n'est pas le cas je veux bien une suggestion de code
    Peut-être peux-tu nous montrer plus de code sur la partie sensée écouter le port série.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  5. #5
    Invité
    Invité(e)
    Par défaut
    En théorie, tu as un événement qui est déclenché sur l'arrivé d'un caractère dans le buffer du port série, et c'est dans cette evenement que tu dois lire le caractere.

    De cette manière tu ne bloque pas le thread

  6. #6
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    "Winter is coming" (ma nouvelle page d'accueil)

Discussions similaires

  1. quel est le Meilleur language pour piloter le port serie ?
    Par flyfab dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 21/07/2003, 10h03
  2. Lire le fichier du port série
    Par saibe dans le forum Linux
    Réponses: 7
    Dernier message: 09/04/2003, 09h29
  3. Réponses: 5
    Dernier message: 25/03/2003, 19h43
  4. [TP] port série rs232
    Par cyb33 dans le forum Turbo Pascal
    Réponses: 44
    Dernier message: 13/01/2003, 15h49
  5. [Kylix] Kylix / port serie
    Par Anonymous dans le forum EDI
    Réponses: 3
    Dernier message: 01/04/2002, 12h07

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