Online Development Notebook > Index > U4x1 Application Notes > App0: Cmd Test > App0: VB Implementation with USBm.dll

App0: VB Implementation with USBm.dll


VB Project

The VB project includes the file USBmAPI.bas. This file acts as the interface between the VB project code and the USBm.dll. Each function in the DLL has a corresponding declaration in this basic file, so that the VB compiler can correctly match the called parameters. This application uses the USBm.dll interface, but uses the DLL commands USBm_ReadDevice and USBm_WriteDevice to send the raw commands.

Discover Devices

    ' Discover device(s)
    USBm_FindDevices

    ' First U4xx device
    If USBm_DeviceValid(0) Then

        DeviceStatus.Caption = "USB Device Found"
        DeviceStatus.BackColor = &H1FF00

        result = USBm_DeviceMfr(0, workstr)
        Manufact.Caption = "Made by: " & Hex$(USBm_DeviceVID(0)) & ": " & workstr

        result = USBm_DeviceProd(0, workstr)
        Device.Caption = Hex$(USBm_DevicePID(0)) + ": " + workstr

        DevVersion.Caption = Hex$(USBm_DeviceDID(0))

        result = USBm_DeviceSer(0, workstr)
        Serial.Caption = workstr

    Else

        DeviceStatus.Caption = "USB Device Not Found"
        DeviceStatus.BackColor = &H1FF

    End If

USBm_FindDevices is called to have the DLL find the U4x1 devices attached to all USB buses. The devices are found and assigned to an internal table. The device table starts at 0, so the first U4x1 device found would be device 0. The second USB device would be device 1, and so on.

The sample application addresses a single U4x1 device, the first (0) device. If a valid device 0 is found, then get some general information from e device, such as the serial number.

Send a command to the U4x1

' Send a command to the device
Private Sub Cmd_Click()

    ' Get bytes from input boxes
    OutBuffer(0) = ReturnHexByte(Byte0.Text)
    OutBuffer(1) = ReturnHexByte(Byte1.Text)
    OutBuffer(2) = ReturnHexByte(Byte2.Text)
    OutBuffer(3) = ReturnHexByte(Byte3.Text)
    OutBuffer(4) = ReturnHexByte(Byte4.Text)
    OutBuffer(5) = ReturnHexByte(Byte5.Text)
    OutBuffer(6) = ReturnHexByte(Byte6.Text)
    OutBuffer(7) = ReturnHexByte(Byte7.Text)

    ' Copy data to display box
    StatusBox.AddItem "> " + _
                      TwoHexCharacters$(OutBuffer(0)) + "  " + _
                      TwoHexCharacters$(OutBuffer(1)) + "  " + _
                      TwoHexCharacters$(OutBuffer(2)) + "  " + _
                      TwoHexCharacters$(OutBuffer(3)) + "  " + _
                      TwoHexCharacters$(OutBuffer(4)) + "  " + _
                      TwoHexCharacters$(OutBuffer(5)) + "  " + _
                      TwoHexCharacters$(OutBuffer(6)) + "  " + _
                      TwoHexCharacters$(OutBuffer(7))

    ' Write command to device, and get reply
    Call WriteReadUSB

    ' Copy data to display box
    StatusBox.AddItem "  " + _
                      TwoHexCharacters$(InBuffer(0)) + "  " + _
                      TwoHexCharacters$(InBuffer(1)) + "  " + _
                      TwoHexCharacters$(InBuffer(2)) + "  " + _
                      TwoHexCharacters$(InBuffer(3)) + "  " + _
                      TwoHexCharacters$(InBuffer(4)) + "  " + _
                      TwoHexCharacters$(InBuffer(5)) + "  " + _
                      TwoHexCharacters$(InBuffer(6)) + "  " + _
                      TwoHexCharacters$(InBuffer(7))

    StatusBox.AddItem "  "


End Sub




' USB Transfer
Public Sub WriteReadUSB()

    USBm_WriteDevice 0, OutBuffer(0)
    USBm_ReadDevice 0, InBuffer(0)

End Sub

This code shows what is done when the command button is pressed. First, the bytes that are in the input boxes (take a look at the form) are copied to an array. Those command bytes are then copied to the display.

The call to WriteReadUSB is the communication with the U4x1 device. WriteReadUSB transfers the command to the USB device, and gets the reply from the device. The device reply is then copied to the display.

Download Code

Download all application files: (all application files)


Hardware:  U401 USB Interface    U421 USB Interface   U451 USB Interface

Programming:  USBm DLL Programming    Download Files

Application Notes:  U4x1 Application Notes    Misc Applications and Information    FAQ

While every effort has been made to make sure that the information posted on this site is correct, the author can not be held liable for any damages whatsoever for losses as a result of the application of this information. Use this information at your own risk.

USBmicro can design your custom and semi-custom USB product. Email about USB design can be directed to " Robert " at usbmicro.com.

Copyright © USBmicro, L.L.C., 2002-2010

Previous  |  Next ]     [ Up  |  First  |  Last ]     (Article 89 of 126)

This page is created with TreePad