Private Sub MSComm1_OnComm()

sonataIII Messages postés 11 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 11 avril 2013 - 9 déc. 2009 à 13:51
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 9 déc. 2009 à 18:51
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

sonataIII Messages postés 11 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 11 avril 2013
9 déc. 2009 à 16:05
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)
0
sonataIII Messages postés 11 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 11 avril 2013
9 déc. 2009 à 16:11
je dirais meme plus
Dim lHighByte As Byte
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
9 déc. 2009 à 18:51
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)
0
Rejoignez-nous