Probleme port com en visual basic 2008 données ascii ou binaires! [Résolu]

Signaler
Messages postés
4
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
5 novembre 2010
-
aey0friw
Messages postés
4
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
5 novembre 2010
-
bonjour
celà fait quelques jours que je cherche une solution à un probleme que je ne comprends pas
mon port com est paramétré dans la fenetre propriété (8bits sans parité un bit de stop), et je me contente de l'ouvrir et d'y écrire des caracteres
tout se passe bien jusqu'au caractere ascii 127, pour les valeurs au dessus, il m'envoi toujours le code ascii 63 (observation à l'oscillo)
la vitesse de transmission est sans influence, un port virtuel sur USB ou le port RS232 dispo sur mon PC équipé de XP pro donnent le même résultat.
J'utilise les instructions suivantes:
for nt=120 to 135
ok = Chr(nt)
SerialPort2.Write(ok)
next
à l'oscillo, le bit de poids fort (le 8ieme après start sur la trame)reste toujours à 0

l'instruction writeline donne le même résultat
avec visual basic 6 je n'avais pas ce problème , pouvant définir si le port fonctionne en binaire, ascii, ou ...
merci sincerement à celui qui me donnera l'explication et la solution

5 réponses

Messages postés
4
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
5 novembre 2010

bonsoir
je pense que vous avez compris mon probleme, mais qu'entendez vous par flux sous-jacent, s'il sagit d'une propriété qui n'apparait pas dans la fenetre, comment s'appelle-t-elle, et quelle valeur faut-il lui donner ?
j'ai en effet absolument besoin de transmettre toutes les valeurs.
merci beaucoup pour votre aide
Messages postés
4
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
5 novembre 2010

Bonsoir
excusez moi, je n'avais pas compris
après observation des raccourcis que vous m'avez conseillé, je retrouve une instruction sans doute clef pour laquelle je ne comprends pas les parametres X Y et Z :
SerialPort1.Write(X,Y,Z)
habituellement je n'utilise qu'un parametre : les données à transmettre !
merci pour vos explications
à bientôt
Messages postés
14621
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
24 janvier 2020
138
Bonjour,

De rien :)
Si ta question est résolue, merci de mettre "Réponse acceptée" sur la ou les réponses qui t'ont aidées, merci :)

Mon site
Messages postés
4
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
5 novembre 2010

merci, le tout est de comprendre que les caracteres de textes sont maintenant codés sur 16 bits lors des échanges avec l'environnement, et que quand on veut faire transiter des données d'un octet, binaires, on ne peut plus utiliser les principe de transmission de texte. C'est bien dommage car c'était plus simple avant et depuis longtemps (VB6-5-4-Qbasic-basica!!!!!)
bien des choses changent entre VB6 et VB2008, basic se voulait etre un systeme de programmation simple !!!! quand toutes les instructions changent, je pense que si microsoft s'amusait à faire celà avec excel et word, ils n'auraient plus qu'à déposer leur bilan. c'est honteux de proposer à ses clients d'avoir tout à réapprendre tous les 5 ans (visualbasic)

encore merci, et j'ai eu l'occasion d'apprendre que l'aide directe sur le site MSDN etait beaucoup plus efficace que l'aide locale de VB2008
Messages postés
14621
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
24 janvier 2020
138
Bonjour,

L'encodage utilisé est vraisemblablement ASCII7 donc tout caractères >127 est remplacé par un ?

Essaye plutôt de taper directement dans le flux sous-jacent (Voir les propriétés de l'objet) et là tu aura tout le contrôle que tu veux.

Ou change l'encodage si tu veux faire du texte.

Mon site