ich habe hier einen IOW56 vor mir liegen und möchte diesen als "Fernsteuerung" mit Tastern für eine bestehende VB6-Anwendung nutzen. ( Über die Taster am IOW sollen einfach verschiedene command-buttons in meiner Anwendung "gedrückt" werden )
Also habe ich mal flott alle Ports des iow mit den Tastern verbunden und verusche nun diese in VB abzufragen.
Da ich nur VB-Grundkenntnisse besitze habe ich als Basis das simpleio-Projekt aus dem SDK verwendet.
Hier werden die Ports des iow auf "Knopfdruck" abgefragt. ( Private sub ReadButton_Click() )
Ich möchte aber, das meine Anwendung permanent prüft, ob eine Taste gedrückt wurde. Dafür habe ich die Abfrage des iow in einen Timer gepackt.
Code: Select all
Dim Res As Long
Dim N As Long
Dim Pid As Long
' Perform a read
Pid = IowKitGetProductId(iowHandles(0))
If Pid = IOWKIT_PID_IOW56 Then
N = 8
End If
'ReadLabel.Caption = "Reading from IOW"
ReadLabel.Refresh
' Read from IO-Warrior
Res = IowKitRead(iowHandles(0), 0, data(0), N)
' Check results
If Res <> N Then
ReadLabel.Caption = "Read from IOW wrong?"
Else
' Convert and set data
TextVal3.Text = ""
TextVal4.Text = ""
TextVal5.Text = ""
TextVal6.Text = ""
TextVal7.Text = ""
TextVal1.Text = Hex$(data(1))
TextVal2.Text = Hex$(data(2))
If N = 5 Or N = 8 Then
TextVal3.Text = Hex$(data(3))
TextVal4.Text = Hex$(data(4))
End If
If N = 8 Then
TextVal5.Text = Hex$(data(5))
TextVal6.Text = Hex$(data(6))
TextVal7.Text = Hex$(data(7))
End If
' ReadLabel.Caption = "Read from IOW complete"
End If
Funktioniert soweit wunderbar, jedoch habe ich damit folgende Probleme. Während der Timer läuft sind andere Eingabemöglichkeit ( zB. per Maus ) nicht möglich. Diese Eingabe werde erst erfasst nachdem eine beliebige Taste am iow gedrückt wurde. Ausserdem lässt sich der Timer, wenn er einmal läuft, nicht mehr deaktivieren und das Programm lässt sich nicht beenden.
Ich hoffe sehr, dass hier jemanden gibt der mir - mit meine, stümperhaften VB-Wissen - weiterhelfen kann !