MSComm VB6

capitaineING Messages postés 1 Date d'inscription samedi 17 novembre 2007 Statut Membre Dernière intervention 17 novembre 2007 - 17 nov. 2007 à 22:41
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 - 17 nov. 2007 à 23:01
Bonjour à tous !

Est ce que c'est possible d'envoyer le code ascii 255 avec MSComm?  Présentement, je suis capable d'envoyer de 0 jusqu'à 127 mais de 128 à 255, je ne suis pas capable de sortir les bons caractères. 

Voici le code utilisé :

        If text_togo.Text <= 255 Then
            TX_out = Chr$(text_togo.Text)
            MSComm1.Output = TX_out
        Else
            MsgBox "votre nombre est trop haut: 0 - 255"
        End If

Avec comme initialisation :

Private Function cfgport(ByRef objCom As MSComm)
    'reference : http://www.users.on.net/~cit/html/visual_basic_mscomm_control.html
    With objCom
        .Break = False
        .DTREnable = True
        .EOFEnable = False
        .Handshaking = comNone
        .InBufferCount = 0
        .InBufferSize = MAX_PACKETSIZE
        .InputLen = MAX_PACKETSIZE 
        .InputMode = comInputModeText
        '.InputMode = comInputModeBinary
        .NullDiscard = False
        .OutBufferCount = 0
        '.OutBufferSize = MAX_PACKETSIZE
        .ParityReplace = Chr(0)
        .RThreshold = 1
        .SThreshold = 0
        '.Settings = "9600,O,8,1"
        .Settings = Com_vitesse.Text & "," & Com_parité.Text & "," & Com_nb_bits.Text & "," & Com_stop_bits.Text
                                      
    End With
  
End Function

Merci de votre temps,

CapTaineING

1 réponse

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
17 nov. 2007 à 23:01
Oui tu peut envoyer le caractère 255 (et ceux > 127) à condition de configurer le nombre de bits sur 8.

Quand tu dis que tu n'es pas capable de sortir les bon caractères, vérifie que c'est la bonne valeur décimale ou hexadecimale que tu envoie et reçois, plutot que d'afficher le caractère reçu.
En effet les caractères à partir de 128 sont dit ASCII Etendu, ils ne sont pas normaliser et chaque système à tendance à les interpreter comme il veut.
Ainsi une même valeur de caratère >127 ne donnera pas le même caractère sous MSDos ou sous Windows.
Donc ne te fie pas au caratère qui pourrait etre affiché, mais vérifie plutot que sa valeur est correcte.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
Rejoignez-nous