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

Windows Forms Discussion :

[C#]Problème d'envoi de caractères spéciaux vers RS232


Sujet :

Windows Forms

  1. #1
    Membre régulier Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Points : 93
    Points
    93
    Par défaut [C#]Problème d'envoi de caractères spéciaux vers RS232
    Bonjour a tous !!

    Alors j'ai un petit problème sur un programme qui est censé revevoir et envoyer des informations sur un port série et je suis tout ce qu'il y a de plus débutant dans ce domaine (comme dans bien d'autres )

    Je souhaite envoyer les caractères hexa suivants : 23 01 24 0D

    Le 23 et le 24 ne me posent pas de problèmes puisque ce sont les caractères # et $ mais par contre le caractère hexa 01 c'est SOH (Start of heading) et le 0D c'est CR (Carriage return, retour à la ligne) et la je ne sais pas comment les envoyer

    voila ce que j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    comPort.WriteLine("#" + 0x01 + "$" + 0x0D);
    comPort.WriteLine("#1$0D"); //on peut toutjours rêver lol
    Si par la même occasion vous avez des sites interessants qui causent du port RS232 et de son utilisation en C# je suis prenneur

    Merci d'avance

  2. #2
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    Utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Uri.HexEscape();
    Dixit MSDN :
    Convertit un caractère spécifié en son équivalent hexadécimal.

  3. #3
    Membre régulier Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Points : 93
    Points
    93
    Par défaut
    ca ne resoud pas mon problème car j'ai deja les codes hexa
    le soucis c'est de lui faire écrire SOH en un seul caractère et CR pareil

    en gros au lieu d'envoyer :
    #-SOH-$-CR donc 4 caractères,
    j'envoie :
    #-S-O-H-$-C-R donc pas du tout ce que je veux...

  4. #4
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    Donc ce que tu veux c'est le contraire ? partir des codes Hexa vers les caractères correspodant ? si c'est ça, ben c'est Unescape au lieu d'Escape, soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Uri.HexUnescape()
    Convertit une représentation hexadécimale spécifiée d'un caractère en ce caractère.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    string testString = "%75";
    int index = 0;
    if (Uri.IsHexEncoding(testString, 0))
         Console.WriteLine("The character is {0}", Uri.HexUnescape(testString, ref index));
    else
         Console.WriteLine("The character is not hexadecimal encoded");
    c'est ça ??

  5. #5
    Membre régulier Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Points : 93
    Points
    93
    Par défaut
    je n'ai pas réussi a faire fonctionner tes fonctions
    (enfin la conversion devait dans doute marcher mais ca ne passait pas dans l'envoi sur le RS232)
    mais en fait j'ai trouvé une solution toute simple (dans C# for dummies )
    j'ai tout simplement casté les valeurs décimales en char
    Je te remercie quand même pour tes réponses
    a bientot pour d'autres questions stupides

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [C#]Problème d'envoi de caractères spéciaux vers RS232
    Salut legillou !

    Je suis en train de développer une application qui permettrait d'envoyer des octets haxadécimaux sur une liaison rs232 en C++ et ton message sur les caractères hexa que tu devais envoyer m'a fait l'impression d'un déjà vu : je t'explique en fait je dois communiquer avec un moteur pas à pas de chez nanotec et les ' octets que tu as mentionnés correspondent à un status query.... Travaillerais-tu sur une même application ?

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

Discussions similaires

  1. problème d'encodage de caractères spéciaux
    Par anti-conformiste dans le forum Langage
    Réponses: 3
    Dernier message: 14/12/2006, 09h42
  2. Réponses: 3
    Dernier message: 24/10/2006, 11h05
  3. [SQL] Problème d'affichage de caractère spéciaux dans une variable chaîne
    Par Kryptonaute dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/08/2006, 08h40
  4. [Mail] Envoie de caractère spéciaux par mail() ?
    Par Oberown dans le forum Langage
    Réponses: 2
    Dernier message: 12/09/2005, 16h13
  5. Réponses: 3
    Dernier message: 11/10/2004, 17h26

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