Emission à partir d'un port série avec MSComm32

Signaler
Messages postés
10
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
27 septembre 2005
-
Messages postés
10
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
27 septembre 2005
-
Je voudrai envoyer un octet 0x00 et des octets dont les valeurs sont dans la plage 0x80 à 0xFF. Pour envoyer les autres octets je passe par la commande qui suit :


sprintf(&ctrame_envoi_ascii,"%c",cTrameEnvoyee[octet_num]);
axMSComm1->Output = Convert::ToString(String::Concat(S"",__box(ctrame_envoi_ascii));

Cette commande fonctionne bien pour les octets compris entre 0x01 et 0x7F. Comment faire pour envoyer correctement les autres octets.

4 réponses

Messages postés
933
Date d'inscription
dimanche 1 avril 2001
Statut
Modérateur
Dernière intervention
9 janvier 2012
2
Sur ce site tu trouveras de nombreux exemples qui n'utilisent pas MSComm32 et qui travaillent avec le port série.

http://www.cppfrance.com/gma/source/rs232

@+
Arnotic,
Admin CS, MVP Visual C++
Messages postés
10
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
27 septembre 2005

Je viens de regarder
ce que je voudrait savoir, c est pourquoi lorsque je veut envoyer 0x00, il n envoie rien ( aucune activitée sur le port comm).
Mais aussi pour 0x84 , il me donne le caractère( " )au lieu de ( ä )
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
Il faut vérifier les settings DCB, en particulier :
fBinary -> TRUE autoriser du binaire et pas seulement l'ASCII
fNull -> FALSE, autoriser l'octet 0x00
Messages postés
10
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
27 septembre 2005

Pour le paramètrage de l'ocx, j'ai mis InputMode en mode binaire et NullDiscard = false
Ca ne marche toujours pas