Public Class Form1
Dim VendorID As Short ' Variable que contiene el ID del vendedor del producto USB.
Dim ProductID As Short ' Variable que contiene el ID del producto USB.
Dim phandle As Integer
' Declaración de Buffers de lectura / escritura.
Dim BufferInSize As Short ' Declaramos el tamaño del buffer de entrada.
Dim BufferOutSize As Short ' Declaramos el tamaño del buffer de salida.
Dim BufferIn(BufferInSize) As Byte ' Variable que contiene los datos de salida cuyo tamaño lo designa BufferInSize.
Dim BufferOut(BufferOutSize) As Byte ' Variable que contiene los datos de salida cuyo tamaño lo designa BufferOutSize
Private Sub Hora_windows_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Hora_windows.Tick
StatusStrip1.Items(0).Text = DateTime.Now.ToLongTimeString() ' Mostramos la hora de Windows.
End Sub
Private Sub SalirToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SalirToolStripMenuItem.Click
Close() ' Cerramos la aplicación al presionar salir. DisconnectFromHID() ' Desconectamos el dispositivo USB.
End Sub
Private Sub AutorToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AutorToolStripMenuItem.Click
MessageBox.Show("Pograma de ejemplo Nº1 HID usando mcHID.dll" & vbLf & vbLf & "Autor: Moyano Jonathan." & vbLf & "Contacto: jonathan215@hotmail.com " & vbLf & vbLf & "http://www.forosdeelectronica.com" & vbLf & vbLf & "LICENCIA: FREEWARE", "", MessageBoxButtons.OK, MessageBoxIcon.Information) ' Leeme para el usuario.
End Sub
Private Sub LeemeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LeemeToolStripMenuItem.Click
MessageBox.Show("Programa de ejemplo Nº1 HID:" & vbLf & "Muestra una pantalla de configuración del puerto USB y" & vbLf & "también dentro de un cuadro nos muestra si el" & vbLf & "dispositivo está conectado o no.", "", MessageBoxButtons.OK, MessageBoxIcon.Information) ' Leeme para el usuario.
End Sub
Private Sub Conectar_dispositivo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Conectar_dispositivo.Click
If Conectar_dispositivo.Text = "DESCONECTAR DISPOSITIVO" Then
Conectar_dispositivo.Text = "CONECTAR DISPOSITIVO"
DisconnectFromHID() ' Desconectamos el dispositivo USB de la aplicación.
USB_estado.BackColor = Color.Red
debug.Items.Add("Dispositivo desconetado por el usuario.")
debug.Items.Add("Se puede deconectar el dispositivo del host de forma segura")
ElseIf Conectar_dispositivo.Text = "CONECTAR DISPOSITIVO" Then
ConnectToHID(Me) ' Enlazamos el dispositivo al programa de aplicación.
debug.Items.Add("Dispositivo:")
debug
.Items.Add("VID:" & Hex(VendorID
)) debug
.Items.Add("PID:" & Hex(ProductID
)) debug.Items.Add("IN_BUFFER: " & BufferInSize.ToString & " bytes.")
debug.Items.Add("IN_BUFFER: " & BufferOutSize.ToString & " bytes.")
Conectar_dispositivo.Text = "DESCONECTAR DISPOSITIVO"
End If
End Sub
'**********************************************************************
' En caso de que el formulario se cierre el dispositivo se desconecta.
'**********************************************************************
Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
DisconnectFromHID()
End Sub
'*****************************************************************
' Un dispositivo USB ha sido conectado.
'*****************************************************************
Public Sub OnPlugged(ByVal pHandle As Integer)
If hidGetVendorID(pHandle) = VendorID And hidGetProductID(pHandle) = ProductID Then
USB_estado.BackColor = Color.Green
debug.Items.Add("El dispositivo ha sido conectado")
End If
End Sub
'*****************************************************************
' Un dispositivo USB ha sido desconectado.
'*****************************************************************
Public Sub OnUnplugged(ByVal pHandle As Integer)
If hidGetVendorID(pHandle) = VendorID And hidGetProductID(pHandle) = ProductID Then
hidSetReadNotify(hidGetHandle(VendorID, ProductID), False)
USB_estado.BackColor = Color.Red
debug.Items.Add("El dispositivo ha sido desconectado")
End If
End Sub
'***********************************************************************
' Llamada a Notificación de cambios en el controlador en caso
' de que todos los dispositivos hallan sido conectados o desconectados.
'***********************************************************************
Public Sub OnChanged()
' Toma el manejador del dispositivo en el cuál estemos interasados, luego
' luego setea esta notificación a 1 - esto asegura que tengamos una lectura.
' Se recibirán notificaciones siempre y cuando hayan datos para leer.
pHandle = hidGetHandle(VendorID, ProductID)
hidSetReadNotify(hidGetHandle(VendorID, ProductID), True)
End Sub
'*****************************************************************
' En un evento de lectura....
'*****************************************************************
Public Sub OnRead(ByVal pHandle As Integer)
If hidRead(pHandle, BufferIn(0)) Then
' Primero leemos el reportID, BufferIn(0)
' Luego los demás bytes son los datos del microcontrolador...
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
USB_estado.BackColor = Color.Blue
debug.Items.Clear() ' Limpiamos la pantalla de debug.
debug.Items.Add("Dispositivo aún no conectado")
End Sub
Private Sub Vid_dispositivo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Vid_dispositivo.TextChanged
VendorID
= (Val(Vid_dispositivo
.Text)) End Sub
Private Sub Pid_dispositivo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Pid_dispositivo.TextChanged
ProductID
= (Val(Pid_dispositivo
.Text)) End Sub
Private Sub In_USB_buffer_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles In_USB_buffer.TextChanged
BufferInSize
= (Val(In_USB_buffer
.Text)) End Sub
Private Sub Out_USB_Buffer_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Out_USB_Buffer.TextChanged
BufferOutSize
= (Val(Out_USB_Buffer
.Text)) End Sub
Public Sub WriteSomeData() ' Si hay un dato listo para enviar...
hidWriteEx(VendorID, ProductID, BufferOut(0))
End Sub
End Class