PicoScope 7 Software
Available on Windows, Mac and Linux
Code: Select all
Module modPT104A
Declare Function UsbPt104OpenUnit Lib "C:\Program Files (x86)\Pico Technology\SDK\lib\USBPT104.dll" _
(ByRef handle As Int16, ByVal serial As UInt32) As PICO_STATUS
Declare Function UsbPt104Enumerate Lib "C:\temp\USBPT104.dll" _
(ByRef devices As String, ByRef stringLength As Integer, CommunicationType As Integer) As Integer
Declare Function UsbPt104CloseUnit Lib "C:\Program Files (x86)\Pico Technology\SDK\lib\USBPT104.dll" _
(ByVal handle As Int16) As PICO_STATUS
Declare Function UsbPt104GetUnitInfo Lib "C:\Program Files (x86)\Pico Technology\SDK\lib\USBPT104.dll" _
(ByVal handle As Int16, ByRef str As StringBuilder, ByVal stringLength As Int16, ByRef requiredSize As Int16, ByVal info As PICO_INFO) As PICO_STATUS
Declare Function UsbPt104SetChannel Lib "C:\Program Files (x86)\Pico Technology\SDK\lib\USBPT104.dll" _
(ByVal handle As Int16, ByVal channel As UInt32, ByVal measurementType As UInt32, ByVal noOfWires As UInt16) As PICO_STATUS
Declare Function UsbPt104GetValue Lib "C:\Program Files (x86)\Pico Technology\SDK\lib\USBPT104.dll" _
(ByVal handle As Int16, ByVal channel As UInt32, ByRef value As UInt32, ByVal filtered As Integer) As PICO_STATUS
Enum PICO_STATUS As UInt32
PICO_OK = &H0
PICO_MAX_UNITS_OPENED = &H1
PICO_MEMORY_FAIL = &H2
PICO_NOT_FOUND = &H3
PICO_FW_FAIL = &H4
PICO_OPEN_OPERATION_IN_PROGRESS = &H5
PICO_OPERATION_FAILED = &H6
PICO_NOT_RESPONDING = &H7
PICO_CONFIG_FAIL = &H8
PICO_KERNEL_DRIVER_TOO_OLD = &H9
PICO_EEPROM_CORRUPT = &HA
PICO_OS_NOT_SUPPORTED = &HB
PICO_INVALID_HANDLE = &HC
PICO_INVALID_PARAMETER = &HD
PICO_INVALID_TIMEBASE = &HE
PICO_INVALID_VOLTAGE_RANGE = &HF
PICO_INVALID_CHANNEL = &H10
PICO_INVALID_TRIGGER_CHANNEL = &H11
PICO_INVALID_CONDITION_CHANNEL = &H12
PICO_NO_SIGNAL_GENERATOR = &H13
PICO_STREAMING_FAILED = &H14
PICO_BLOCK_MODE_FAILED = &H15
PICO_NULL_PARAMETER = &H16
PICO_ETS_MODE_SET = &H17
PICO_DATA_NOT_AVAILABLE = &H18
PICO_STRING_BUFFER_TO_SMALL = &H19
PICO_ETS_NOT_SUPPORTED = &H1A
PICO_AUTO_TRIGGER_TIME_TO_SHORT = &H1B
PICO_BUFFER_STALL = &H1C
PICO_TOO_MANY_SAMPLES = &H1D
PICO_TOO_MANY_SEGMENTS = &H1E
PICO_PULSE_WIDTH_QUALIFIER = &H1F
PICO_DELAY = &H20
PICO_SOURCE_DETAILS = &H21
PICO_CONDITIONS = &H22
PICO_USER_CALLBACK = &H23
PICO_DEVICE_SAMPLING = &H24
PICO_NO_SAMPLES_AVAILABLE = &H25
PICO_SEGMENT_OUT_OF_RANGE = &H26
PICO_BUSY = &H27
PICO_STARTINDEX_INVALID = &H28
PICO_INVALID_INFO = &H29
PICO_INFO_UNAVAILABLE = &H2A
PICO_INVALID_SAMPLE_INTERVAL = &H2B
PICO_TRIGGER_ERROR = &H2C
PICO_MEMORY = &H2D
PICO_SIG_GEN_PARAM = &H2E
PICO_SHOTS_SWEEPS_WARNING = &H2F
PICO_SIGGEN_TRIGGER_SOURCE = &H30
PICO_AUX_OUTPUT_CONFLICT = &H31
PICO_AUX_OUTPUT_ETS_CONFLICT = &H32
PICO_WARNING_EXT_THRESHOLD_CONFLICT = &H33
PICO_WARNING_AUX_OUTPUT_CONFLICT = &H34
PICO_SIGGEN_OUTPUT_OVER_VOLTAGE = &H35
PICO_DELAY_NULL = &H36
PICO_INVALID_BUFFER = &H37
PICO_SIGGEN_OFFSET_VOLTAGE = &H38
PICO_SIGGEN_PK_TO_PK = &H39
PICO_CANCELLED = &H3A
PICO_SEGMENT_NOT_USED = &H3B
PICO_INVALID_CALL = &H3C
PICO_GET_VALUES_INTERRUPTED = &H3D
PICO_NOT_USED = &H3F
PICO_INVALID_SAMPLERATIO = &H40
PICO_INVALID_STATE = &H41
PICO_NOT_ENOUGH_SEGMENTS = &H42
PICO_DRIVER_FUNCTION = &H43
PICO_RESERVED = &H44
PICO_INVALID_COUPLING = &H45
PICO_BUFFERS_NOT_SET = &H46
PICO_RATIO_MODE_NOT_SUPPORTED = &H47
PICO_RAPID_NOT_SUPPORT_AGGREGATION = &H48
PICO_INVALID_TRIGGER_PROPERTY = &H49
PICO_INTERFACE_NOT_CONNECTED = &H4A
PICO_RESISTANCE_AND_PROBE_NOT_ALLOWED = &H4B
PICO_POWER_FAILED = &H4C
PICO_SIGGEN_WAVEFORM_SETUP_FAILED = &H4D
PICO_FPGA_FAIL = &H4E
PICO_POWER_MANAGER = &H4F
PICO_INVALID_ANALOGUE_OFFSET = &H50
PICO_PLL_LOCK_FAILED = &H51
PICO_ANALOG_BOARD = &H52
PICO_CONFIG_FAIL_AWG = &H53
PICO_INITIALISE_FPGA = &H54
PICO_EXTERNAL_FREQUENCY_INVALID = &H56
PICO_CLOCK_CHANGE_ERROR = &H57
PICO_TRIGGER_AND_EXTERNAL_CLOCK_CLASH = &H58
PICO_PWQ_AND_EXTERNAL_CLOCK_CLASH = &H59
PICO_UNABLE_TO_OPEN_SCALING_FILE = &H5A
PICO_MEMORY_CLOCK_FREQUENCY = &H5B
PICO_I2C_NOT_RESPONDING = &H5C
PICO_NO_CAPTURES_AVAILABLE = &H5D
PICO_NOT_USED_IN_THIS_CAPTURE_MODE = &H5E
PICO_GET_DATA_ACTIVE = &H103
PICO_IP_NETWORKED = &H104
PICO_INVALID_IP_ADDRESS = &H105
PICO_IPSOCKET_FAILED = &H106
PICO_IPSOCKET_TIMEDOUT = &H107
PICO_SETTINGS_FAILED = &H108
PICO_NETWORK_FAILED = &H109
PICO_WS2_32_DLL_NOT_LOADED = &H10A
PICO_INVALID_IP_PORT = &H10B
PICO_COUPLING_NOT_SUPPORTED = &H10C
PICO_BANDWIDTH_NOT_SUPPORTED = &H10D
PICO_INVALID_BANDWIDTH = &H10E
PICO_AWG_NOT_SUPPORTED = &H10F
PICO_ETS_NOT_RUNNING = &H110
PICO_SIG_GEN_WHITENOISE_NOT_SUPPORTED = &H111
PICO_SIG_GEN_WAVETYPE_NOT_SUPPORTED = &H112
PICO_INVALID_DIGITAL_PORT = &H113
PICO_INVALID_DIGITAL_CHANNEL = &H114
PICO_INVALID_DIGITAL_TRIGGER_DIRECTION = &H115
PICO_SIG_GEN_PRBS_NOT_SUPPORTED = &H116
PICO_ETS_NOT_AVAILABLE_WITH_LOGIC_CHANNELS = &H117
PICO_WARNING_REPEAT_VALUE = &H118
PICO_POWER_SUPPLY_CONNECTED = &H119
PICO_POWER_SUPPLY_NOT_CONNECTED = &H11A
PICO_POWER_SUPPLY_REQUEST_INVALID = &H11B
PICO_POWER_SUPPLY_UNDERVOLTAGE = &H11C
End Enum
Enum PICO_INFO As UInt32
PICO_DRIVER_VERSION = 0
PICO_USB_VERSION = 1
PICO_HARDWARE_VERSION = 2
PICO_VARIANT_INFO = 3
PICO_BATCH_AND_SERIAL = 4
PICO_CAL_DATE = 5
PICO_KERNEL_DRIVER_VERSION = 6
PICO_DIGITAL_HARDWARE_VERSION = 7
PICO_ANALOGUE_HARDWARE_VERSION = 8
PICO_FIRMWARE_VERSION_1 = 9
PICO_FIRMWARE_VERSION_2 = 10
PICO_MAC_ADDRESS = 11
End Enum
End Module
Code: Select all
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim requiredSize As Int16
Dim PT104A_status As PICO_STATUS
Dim PT104A_handle As Int16
Dim PT104A_serial As String = ""
Dim S As New StringBuilder
Try
PT104A_status = UsbPt104OpenUnit(PT104A_handle, 0)
Catch ex As Exception
MsgBox(ex.Message, vbInformation)
End Try
If PT104A_status <> 0 Then
MsgBox("Unit not opened, returned " & PT104A_status.ToString, vbOKOnly, "Error")
Exit Sub
End If
Try
PT104A_status = UsbPt104GetUnitInfo(PT104A_handle, S, 255S, requiredSize, 4) ' <-- Immediately exits sub after this function call
Catch ex As Exception
MsgBox(ex.Message, vbInformation)
End Try
MsgBox(S.ToString)
PT104A_status = UsbPt104CloseUnit(PT104A_handle)
End Sub