Author Topic: VB.net front end for USB  (Read 11556 times)

andre_p

  • Member
  • ***
  • Posts: 1
VB.net front end for USB
« on: July 14, 2010, 02:58:51 pm »
Can any one please help i am new to USB and batteling with a USB interface to my pic the below mentioned code works well for receiving data from the pic but how to i send data to the pic i have used hidwrite but with no result, any help will be appreciated
Code: [Select]
Option Strict Off
Option Explicit On

Friend Class MainForm
    Inherits System.Windows.Forms.Form

    ' vendor and product IDs
    Private Const VendorID As Short = 6017
    Private Const ProductID As Short = 2000

    ' read and write buffers
    Private Const BufferInSize As Short = 8
    Private Const BufferOutSize As Short = 8
    Dim BufferIn(BufferInSize) As Byte
    Dim BufferOut(BufferOutSize) As Byte

    ' ****************************************************************
    ' when the form loads, connect to the HID controller - pass
    ' the form window handle so that you can receive notification
    ' events...
    '*****************************************************************
    Private Sub MainForm_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
        ' do not remove!
        ConnectToHID(Me.Handle.ToInt32)
    End Sub

    '*****************************************************************
    ' disconnect from the HID controller...
    '*****************************************************************
    Private Sub MainForm_FormClosed(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        DisconnectFromHID()
    End Sub

    '*****************************************************************
    ' a HID device has been plugged in...
    '*****************************************************************
    Public Sub OnPlugged(ByVal pHandle As Integer)
        If hidGetVendorID(pHandle) = VendorID And hidGetProductID(pHandle) = ProductID Then
            ' ** YOUR CODE HERE **
            TextBox1.Text = "plugged"
        End If
    End Sub

    '*****************************************************************
    ' a HID device has been unplugged...
    '*****************************************************************
    Public Sub OnUnplugged(ByVal pHandle As Integer)
        If hidGetVendorID(pHandle) = VendorID And hidGetProductID(pHandle) = ProductID Then
            hidSetReadNotify(hidGetHandle(VendorID, ProductID), False)
            TextBox1.Text = "unplugged"
        End If
    End Sub

    '*****************************************************************
    ' controller changed notification - called
    ' after ALL HID devices are plugged or unplugged
    '*****************************************************************
    Public Sub OnChanged()
        ' get the handle of the device we are interested in, then set
        ' its read notify flag to true - this ensures you get a read
        ' notification message when there is some data to read...
        Dim pHandle As Integer
        pHandle = hidGetHandle(VendorID, ProductID)
        hidSetReadNotify(hidGetHandle(VendorID, ProductID), True)
    End Sub

    '*****************************************************************
    ' on read event...
    '*****************************************************************
    Public Sub OnRead(ByVal pHandle As Integer)
        ' read the data (don't forget, pass the whole array)...
        If hidRead(pHandle, BufferIn(0)) Then
            ' ** YOUR CODE HERE **
            ' first byte is the report ID, e.g. BufferIn(0)
            ' the other bytes are the data from the microcontroller...
            TextBox2.Text = BufferIn(0)
            TextBox3.Text = BufferIn(1)
            TextBox4.Text = BufferIn(2)
            TextBox5.Text = BufferIn(3)
            TextBox6.Text = BufferIn(4)
            TextBox7.Text = BufferIn(5)
            TextBox8.Text = BufferIn(6)
            TextBox9.Text = BufferIn(7)
        End If
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim pHandle As Integer
        pHandle = hidGetHandle(VendorID, ProductID)
        BufferOut(0) = 1
        BufferOut(1) = 2
        BufferOut(2) = 3
        BufferOut(3) = 4
        BufferOut(4) = 5
        BufferOut(5) = 6
        BufferOut(6) = 7
        BufferOut(7) = 8
        hidWrite(pHandle, BufferOut(0))
    End Sub
End Class

Jan Axelson

  • Administrator
  • Frequent Contributor
  • *****
  • Posts: 3033
    • Lakeview Research
Re: VB.net front end for USB
« Reply #1 on: July 14, 2010, 05:09:56 pm »
My HID page has example .NET applications for HID communications:

www.Lvr.com/hidpage.htm

To write to the HID, the HID must support an Output report or OUT Feature report.

Jan
« Last Edit: July 14, 2010, 05:53:11 pm by Jan Axelson »