Hallo freunde der Sonne;)
ich bin nun besitzer einer USB I/O karte mit je 32 ein und ausgängen. Die Dokumentation ist leider etwas sehr knapp bemessen. Hier die Produktseite
Mein Problem ist nun, die Eingänge der Karte abzufragen. Beim Starten des Timers funktioniert es einmal die Werte abzufragen. Theoretisch sollte dies ja bei jeden Tick des Timers gehen, die Werte ändern sich aber nicht (ich stecke einfach ein kabel an/aus)
Die Ausgänge zu beschalten funktioniert dagegen problemlos.
Anbei mal mein aktueller Quellcode (bissle unsauber, aber zum testen reichts allemal.)
Spoiler anzeigen
Die dazugehörige DLL steck ich einfach mal als anhang rein. Dazu noch ne kleine beschreibung die ich im inet gefunden habe.
Wäre echt super wenn mir jemand helfen könnte
ich bin nun besitzer einer USB I/O karte mit je 32 ein und ausgängen. Die Dokumentation ist leider etwas sehr knapp bemessen. Hier die Produktseite
Mein Problem ist nun, die Eingänge der Karte abzufragen. Beim Starten des Timers funktioniert es einmal die Werte abzufragen. Theoretisch sollte dies ja bei jeden Tick des Timers gehen, die Werte ändern sich aber nicht (ich stecke einfach ein kabel an/aus)
Die Ausgänge zu beschalten funktioniert dagegen problemlos.
Anbei mal mein aktueller Quellcode (bissle unsauber, aber zum testen reichts allemal.)
VB.NET-Quellcode
- Imports USB
- Public Class Form1
- Dim devicenum
- Dim deviceID
- Dim myIOs As New clsUSB32IO
- Dim deviceErr
- Dim cardID
- Dim Err_0
- Dim outarray(5) As Byte
- Dim _InReg(5) As Byte
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- devicenum = 255
- '1st card
- Dim iCardCounter As Integer = 0
- Dim usbDD As USB.UsbDeviceDescriptor
- usbDD = New USB.UsbDeviceDescriptor()
- For i As Byte = 0 To 31
- deviceID = myIOs.OpenDevice(i, "EZUSB", "", "")
- deviceErr = myIOs.GetDeviceError(i)
- For j As Integer = 0 To 31
- cardID = 512 + j
- If deviceErr = Err_0 Then
- If cardID = deviceID Then
- devicenum = i
- iCardCounter += 1
- myIOs.SetDeviceEnabled(devicenum, MC_Modi.IMode_1)
- myIOs.GetDeviceDescriptor(devicenum, usbDD)
- cboxDevice.Items.Add("Karten-Nr.: " & (deviceID).ToString())
- cboxDevice.SelectedIndex = 0
- Exit For
- End If
- End If
- Next
- Next
- If devicenum = 255 Then
- MessageBox.Show("no USB devices found.")
- Exit Sub
- End If
- myIOs.SetDeviceEnabled(devicenum, MC_Modi.IMode_1)
- deviceErr = myIOs.GetDeviceError(devicenum)
- If deviceErr <> 0 Then
- MessageBox.Show("err=" & deviceErr)
- End If
- Timer1.Interval = 50
- Timer1.Start()
- testoausgsenge()
- MessageBox.Show("gesendet!!" & vbCrLf & "Fehler: " & myIOs.GetDeviceError(devicenum))
- End Sub
- Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
- myIOs.PB_ReadInc(devicenum, 0, _InReg)
- Label1.Text = _InReg(0)
- Label2.Text = _InReg(1)
- Label3.Text = _InReg(2)
- Label4.Text = _InReg(3)
- Label5.Text = _InReg(4)
- Dim lolz = myIOs.GetDeviceError(devicenum)
- If lolz <> 0 Then
- Timer1.Stop()
- MessageBox.Show("Fehler: " & lolz)
- End If
- End Sub
- Private Sub testoausgsenge()
- Dim outarray(5) As Byte
- outarray(0) = 0
- outarray(1) = 0
- outarray(2) = 0
- outarray(3) = 0
- For i As Integer = 0 To 10
- outarray(0) = i
- myIOs.PB_WriteInc(devicenum, 0, outarray)
- Threading.Thread.Sleep(50)
- Next
- End Sub
- End Class
Die dazugehörige DLL steck ich einfach mal als anhang rein. Dazu noch ne kleine beschreibung die ich im inet gefunden habe.
Wäre echt super wenn mir jemand helfen könnte