J'ai développé cette source pour lire les données que transmet mon contrôle MouseRemote X10. L'application livrée avec le contrôle ne me permettait pas d'avoir un lien direct avec mes applications de domotique.
Source / Exemple :
Private Sub Form_Load()
Form1.Caption = "ControlRemote X10"
With MSComm1
.CommPort = 2
.Handshaking = 2
.RThreshold = 6
.RTSEnable = True
.Settings = "1200,n,7,1"
.SThreshold = 6
.PortOpen = True
' Garde les valeurs par défaut de tous les autres paramètres.
End With
Text1.Text = ""
End Sub
Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False
End Sub
Private Sub MSComm1_OnComm()
Dim InBuff As String
Select Case MSComm1.CommEvent
Case comEvReceive ' Received RThreshold # of chars.
InBuff = MSComm1.Input
If Timer1.Interval = 0 Then
Timer1.Interval = 200 'Délai pour éviter les touches à répétition.
Call HandleInput(InBuff)
End If
End Select
End Sub
Sub HandleInput(InBuff As String)
Dim x As Integer, y As Integer, Data(10) As Byte
Dim Variable2(3) As String, Variable1 As String
InBuff = Mid(InBuff, 1, 5)
For x = 1 To Len(InBuff)
Data(x) = Asc(Mid(InBuff, x, 1))
If Data(x) = 63 Then y = 0
Variable2(y) = Data(x)
y = y + 1
If y = 3 Then x = Len(InBuff)
Next x
For x = 0 To 2
Variable1 = Variable1 & Variable2(x)
Next x
Select Case Variable1
Case "636815"
Text2.Text = Variable1
Text1.Text = Text1.Text & "Power" & vbCrLf
Case "636843"
Text2.Text = Variable1
Text1.Text = Text1.Text & "PC" & vbCrLf
Case "637011"
Text2.Text = Variable1
Text1.Text = Text1.Text & "Web" & vbCrLf
Case "637111"
Text2.Text = Variable1
Text1.Text = Text1.Text & "DVD" & vbCrLf
Case "636911"
Text2.Text = Variable1
Text1.Text = Text1.Text & "PHONE" & vbCrLf
Case "637043"
Text2.Text = Variable1
Text1.Text = Text1.Text & "CD" & vbCrLf
Case "63691"
Text2.Text = Variable1
Text1.Text = Text1.Text & 1 & vbCrLf
Case "63692"
Text2.Text = Variable1
Text1.Text = Text1.Text & 2 & vbCrLf
Case "63693"
Text2.Text = Variable1
Text1.Text = Text1.Text & 3 & vbCrLf
Case "63694"
Text2.Text = Variable1
Text1.Text = Text1.Text & 4 & vbCrLf
Case "63695"
Text2.Text = Variable1
Text1.Text = Text1.Text & 5 & vbCrLf
Case "63696"
Text2.Text = Variable1
Text1.Text = Text1.Text & 6 & vbCrLf
Case "63697"
Text2.Text = Variable1
Text1.Text = Text1.Text & 7 & vbCrLf
Case "63698"
Text2.Text = Variable1
Text1.Text = Text1.Text & 8 & vbCrLf
Case "63699"
Text2.Text = Variable1
Text1.Text = Text1.Text & 9 & vbCrLf
Case "63690"
Text2.Text = Variable1
Text1.Text = Text1.Text & 0 & vbCrLf
Case "636943"
Text2.Text = Variable1
Text1.Text = Text1.Text & "Shift" & vbCrLf
Case "636910"
Text2.Text = Variable1
Text1.Text = Text1.Text & "Enter" & vbCrLf
Case "63686"
Text2.Text = Variable1
Text1.Text = Text1.Text & "Vol+" & vbCrLf
Case "63687"
Text2.Text = Variable1
Text1.Text = Text1.Text & "Vol-" & vbCrLf
Case "63682"
Text2.Text = Variable1
Text1.Text = Text1.Text & "Ch+" & vbCrLf
Case "63683"
Text2.Text = Variable1
Text1.Text = Text1.Text & "Ch-" & vbCrLf
Case "63685"
Text2.Text = Variable1
Text1.Text = Text1.Text & "Mute" & vbCrLf
Case "636929"
Text2.Text = Variable1
Text1.Text = Text1.Text & "A.B" & vbCrLf
Case "636928"
Text2.Text = Variable1
Text1.Text = Text1.Text & "DISP" & vbCrLf
Case "636813"
Text2.Text = Variable1
Text1.Text = Text1.Text & "Play" & vbCrLf
Case "636828"
Text2.Text = Variable1
Text1.Text = Text1.Text & "Rew" & vbCrLf
Case "637019"
Text2.Text = Variable1
Text1.Text = Text1.Text & "Select" & vbCrLf
Case "636829"
Text2.Text = Variable1
Text1.Text = Text1.Text & "FF" & vbCrLf
Case "636814"
Text2.Text = Variable1
Text1.Text = Text1.Text & "Stop" & vbCrLf
Case "6371"
Text2.Text = Variable1
Text1.Text = Text1.Text & "REC" & vbCrLf
Case "636914"
Text2.Text = Variable1
Text1.Text = Text1.Text & "Pause" & vbCrLf
Case "636945"
Text2.Text = Variable1
Text1.Text = Text1.Text & "Guide" & vbCrLf
Case "691563"
Text2.Text = Variable1
Text1.Text = Text1.Text & "Last" & vbCrLf
Case Else
Text2.Text = Variable1
End Select
End Sub
Private Sub Timer1_Timer()
Timer1.Interval = 0
End Sub
Conclusion :
Pour plus d'info.
www.x10.com
www.martial.dynu.com
Merci à tous les personnes qui m'ont aidé à comprendre le contrôle MSComm.ocx, surtout sur ce site.
Martial Verreault
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.