Envoyer commande sur port série

Résolu
mcferson
Messages postés
33
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
1 juin 2012
- 30 août 2010 à 12:11
 vb95 - 7 févr. 2020 à 14:31
Bonjour ici.
Voilà, ne connaissant pas bien la classe SerialPort, je ne sais pas comment envoyer une commande sur un port COM.
Par exemple, sur hyperterminal, j'écris ma commande, à destination d'un module GPS, dans son langage d'instruction. Je cherche à faire ça, par l'intermédiaire d'un programme personnel en C#, qui va envoyer la commande saisie sous forme d'une string (en réalité un peu plus complexe que ça, mais la commande est, au final bien envoyée en string, puisque chaque composant est récupéré d'un fichier xml).
il y a bien SerialPort.Write() mais manifestement, ça n'a pas l'air d'être ça (ou bien c'est ma récupération de la réponse qui est foireuse).

29 réponses

cs_casy
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
31 août 2010 à 16:22
C'est bien Write qu'il faut utiliser

Mais Write à la particularité de faire par défaut les envois en ASCIIEncoding, donc tous les caractères dont le code ascii est supérieur à 127 seront remplacer par ?

Pour pouvoir envoyer ces caractères correctement, il faut passer sur un encoding UTF8, UTF32 ou Unicode, mais alors chaque caractère sera représenté par 2 à 4 octets.

Sinon, (de mémoire d'après divers messages vus sur les forums) il faut convertir la chaine de caractère en tableau de byte et envoyer ce tableau.


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
1