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 :

Serial port specific format [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2012
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 14
    Par défaut Serial port specific format
    Bonjour,

    Je debute en c# et j'aimerais envoyer un message avec ce format:

    DEVICE [espace] val1 [espace] val2 CRLF

    avec [espace] qui represente un espace a inserer
    val1 un nombre de 0 a 3
    val2 un nb HEX avec le format XXX

    J'essaie d'utiliser comport.Write(msg) avec msg representant le message precedent, mais il y a une erreur...

    Est-ce que quelqu'un aurait une idee sur la facon de coder ca?

    Merci par avance..

  2. #2
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Par défaut
    Hello!!

    Pourrait on voir ton code, et connaitre les erreurs que comport.Write() produit??

  3. #3
    Membre averti
    Inscrit en
    Avril 2012
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 14
    Par défaut
    Salut,

    Alors en fait, je me suis compliquee la vie pour rien.. J'ai finalement trouve cette facon de faire qui marche. J'ecris tout dans un message de type string et je l'envoie sur le port:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    string message = "DEVICE" + " " + (val1.Value).ToString("X3") + " " + ((UInt16)val2.Value).ToString("X3");
     
    // Display the message onto the window terminal
    Log(LogMsgType.Outgoing, message);
     
    // Send the message through the port
    comport.Write(message + "\r\n");
    avec val1 un "comboboxItem" et val2 un "numericupdown" sur la face utilisateur.
    Mon probleme etait qu'il fallait que je rajoute "UInt16" pour la deuxieme valeur. Une erreur etait generee et j'ai fini par trouver cette solution.

    Par contre, je ne sais pas bien pourquoi il me faut preciser cela..Pour val1 ce n'est pas necessaire, mais ca l'est pour val2.
    Quelqu'un pourrait m'expliquer simplement?

    Merci!

  4. #4
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Par défaut
    Val 1 contient les nombres de 0 à 3 -> Entier
    Val 2 contient les nombres en Hexa -> 0x...
    Ton périphérique attendais une valeur du type UInt16 (Unsigned entier en 16bit : nombres de 0 à 65535) pour être ensuite converti de string en Hexa et être exploitable. Pourquoi ce format?? Il faut le demander à ta Doc
    Alors que ta val1 attendait un entier, donc aucun format à préciser.

  5. #5
    Membre averti
    Inscrit en
    Avril 2012
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 14
    Par défaut
    Afficher les valeurs en hexa est ce qui est attendu, c'est pour ca que je precise ce format. C'est juste bizarre qu'il faille preciser que la valeur du numericupdown est un UInt16 pour pouvoir convertir en string puis en hexa.

    En tout cas, merci Framebreak pour ta reponse!

+ Répondre à la discussion
Cette discussion est résolue.

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. insérer serial port dans une dll
    Par sdecorme dans le forum C++
    Réponses: 1
    Dernier message: 29/04/2009, 10h01
  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