I need assistance converting the following C# code which works into VB code. The code detects when a specific type of USB device is connected and disconnected and writes the status to a status strip:
My attempt at converting the code to VB.net. The code compiles but does not detect when I add/remove the usb device:Code:App_PnP_Callback evHandler = new App_PnP_Callback(PnP_Event_Handler); usbDevices = new USBDeviceList(CyConst.DEVICES_HID, evHandler); public void PnP_Event_Handler(IntPtr pnpEvent, IntPtr hRemovedDevice) { if (pnpEvent.Equals(CyConst.DBT_DEVICEREMOVECOMPLETE)) { USBEventArgs e = new USBEventArgs(); usbDevices.Remove(hRemovedDevice, e); } if (pnpEvent.Equals(CyConst.DBT_DEVICEARRIVAL)) { usbDevices.Add(); } myHidDevice = usbDevices[VID, PID] as CyHidDevice; CyHidDevice myHidReport = myHidDevice as CyHidDevice; if (CheckGenericHidDevice()) { Status.Text = "Connected"; this.Refresh(); } else { Status.Text = "Disconnected"; this.Refresh(); } } private bool CheckGenericHidDevice() { myHidDevice = usbDevices[VID, PID] as CyHidDevice; //Get hold of Voltmeter Device if (myHidDevice == null) { return false; } else { return true; } }
Code:Dim evHandler As App_PnP_Callback = New App_PnP_Callback(AddressOf PnP_Event_Handler) usbDevices = New USBDeviceList(CyConst.DEVICES_HID, evHandler) End Sub Private Sub PnP_Event_Handler(ByVal pnpEvent As IntPtr, ByVal hRemovedDevice As IntPtr) If pnpEvent.Equals(CyConst.DBT_DEVICEREMOVECOMPLETE) Then Dim e As USBEventArgs = New USBEventArgs() usbDevices.Remove(hRemovedDevice, e) 'StatusStrip1.Text = "DisConnected" If pnpEvent.Equals(CyConst.DBT_DEVICEARRIVAL) Then usbDevices.Add() 'StatusStrip1.Text = "Connected" End If myHidDevice = usbDevices(VID, PID) Dim myHidReport As CyHidDevice = myHidDevice If CheckGenericHidDevice() Then StatusStrip1.Text = "Connected" Me.Refresh() Else StatusStrip1.Text = "Disconnected" Me.Refresh() End If End If End Sub Private Function CheckGenericHidDevice() As Boolean myHidDevice = usbDevices(VID, PID) 'as CyHidDevice If myHidDevice.Equals(Nothing) Then Return False Else Return True End If End Function


Reply With Quote
