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 :

SerialPort : Parité différente sur le premier bit


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 19
    Par défaut SerialPort : Parité différente sur le premier bit
    Bonjour,

    Je suis entrain de codé une application qui doit communiquer avec un board par le port série. J'utilise pour cela la class SerialPort de System.IO.Ports.

    Je suis capable de communiquer mais mon problème c'est que le premier bit du message que j'envoi, doit avoir un bit de parité MARK alors que le reste du message doit avoir une parité de SPACE.

    Ce que j'ai essayé c'est de mettre la parity à MARK, d'écrire le premier bit sur le port puis de changer la parity à SPACE puis d'écrire le reste du message sur le port. La réponse du board a mon message n'a aucun sense se qui me laisse penser à un problème de parité. J'ai aussi utiliser thred.sleep(x) entre mes 2 écritures sur le port mais alors le board ne me répond même plus.

    Ça fait 2h que je fouille sur internet sans rien trouvé qui ressemble à ce dont j'ai besoin...
    Est-ce que quelqu'un peut me pointer dans la bonne direction?

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 530
    Par défaut
    Utilisez un analyseur de protocole pour lire les informations envoyées sur les files du port série.

  3. #3
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 19
    Par défaut
    Citation Envoyé par bacelar Voir le message
    Utilisez un analyseur de protocole pour lire les informations envoyées sur les files du port série.
    C'est déjà fait. Je sais ce qu'il faut que j'envoi mais mon problème c'est que le bit de parité doit être uniquement sur le premier byte du message. Il faut donc changer la parité a SPACE pour les autres bytes.

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Février 2006
    Messages : 565
    Par défaut
    Bonsoir, je ne connais le matériel sur quoi vous bossez, mais il ne faut pas confondre les parametres de communications qui sont propres a l'UART (c'est la puce qui permet de gérer le port série) comme la vitesse de transmission, la parité, le protocole de communication (XON/XOFF, RTS/CTS, ...), nb de bit stop, nb de bits de données, ... et le protocole de communication que votre board utilise pour dialoguer, il s'agit de trame spécifique.

  5. #5
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 19
    Par défaut
    Citation Envoyé par ddaime Voir le message
    Bonsoir, je ne connais le matériel sur quoi vous bossez, mais il ne faut pas confondre les parametres de communications qui sont propres a l'UART (c'est la puce qui permet de gérer le port série) comme la vitesse de transmission, la parité, le protocole de communication (XON/XOFF, RTS/CTS, ...), nb de bit stop, nb de bits de données, ... et le protocole de communication que votre board utilise pour dialoguer, il s'agit de trame spécifique.
    En effet. Ce qui arrive c'est que je dois passer un message composé de plusieurs bytes hexa. Le premier byte du protocole est l'adresse de la machine. Ce byte et uniquement lui doit avoir MARK comme parité et tous les autres SPACES sinon le board avec lequel je communique ne me repond pas. Ça c'est une particularité du protocole que j'utilise. Malheureusement, je ne suis pas capable de faire ça.

  6. #6
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    c'est que le premier bit (ou octet ?) du message que j'envoie, doit avoir un bit de parité MARK alors que le reste du message doit avoir une parité de SPACE.
    Je ne comprends pas : MARK et SPACE indiquent si le voltage en absence d'émission est à 0 ou 12 volts. C'est juste une inversion globale des tensions et c'est indépendant de la gestion du bit de parité.
    voir : http://www.wcscnet.com/Tutorials/SerialComm/Page1.htm

Discussions similaires

  1. Sum différents sur sur une même table ...
    Par Saloucious dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/10/2005, 15h51
  2. [Language] Aide sur mon premier programme Java?
    Par hash2zo dans le forum Langage
    Réponses: 15
    Dernier message: 27/09/2005, 19h26
  3. probleme avec les string sur ITA2 64 bits!
    Par vince3320 dans le forum SL & STL
    Réponses: 5
    Dernier message: 22/08/2005, 19h59
  4. Réponses: 2
    Dernier message: 11/01/2005, 14h10
  5. [Debutant] GROUP BY sur les premiers caracteres d'un champ
    Par seb-astien dans le forum Langage SQL
    Réponses: 8
    Dernier message: 09/11/2004, 14h53

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