Private Sub MSComm1_OnComm()

Signaler
Messages postés
11
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
11 avril 2013
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Hello
Voila je suis un noub en VB
Je viens de faire un soft pour ma télécommande Pinnacle
J'ai un petit souci avec MScomm.
Comment faire pour récupérer des données brute ??
je m'explique : pour l'instant voilà ce que je récupere de ma télécommande je vous met un bout du code :

MSCommInput = MSComm1.Input
Text3.Text = MSCommInput
Select Case Mid(MSCommInput, 1, 2)

Case "ÿY"
CmdVolumeDown_Click

Case "ÿ^"
ecran

Je cherche à recupérer mieux que ca ! car des fois je récupere des retours chariot et c'est pas simple à gérer
Je cherche depuis une semaine une source mais je trouve rien :-(
Si quelqu'un pouvait me dire comment récupérer des entiers par exemple
Merci d'avance.

3 réponses

Messages postés
11
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
11 avril 2013

J'ai trouvé


Dim sData As String
Dim lHighByte As Integer

' If comEvReceive Event then get data and display
If MSComm1.CommEvent = comEvReceive Then

sData = MSComm1.Input
lHighByte = Asc(Mid$(sData, 1, 1))
Text3.Text = lHighByte

End If

Select Case CStr(lHighByte)
Messages postés
11
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
11 avril 2013

je dirais meme plus
Dim lHighByte As Byte
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Pour préciser ta pensée :
Un Byte, c'est un caractère, simplement représenté par un chiffre, son code ASCII.
Alors, plutôt que d'utiliser la lecture de type String, mieux vaut lire la valeur numérique, plus parlante.
D'après la table ASCII :
- le ÿ serait 255 (valeur maxi d'un Byte)
- le Y serait 89
- le ^ serait 94
A toi de voir dans la doc à quoi cela peut correspondre

Il va de soi que la technique suggérée ne lit qu'un seul Byte à la fois.
Il te faudra donc répéter la manoeuvre jusqu'à épuisement du Buffer.
Peut-être même mémoriser un Byte lu pour l'associer aux suivants.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)