Upload files to ''

This commit is contained in:
Adema 2022-02-03 13:50:19 +01:00
parent bea157d064
commit aa1e236404
4 changed files with 1537 additions and 0 deletions

BIN
README.md

Binary file not shown.

34
comlinepar.bas Normal file
View File

@ -0,0 +1,34 @@
Dim As String t_param, param(Any) ' temp.-string | string array
Dim As Long num = 1 ' start index for Command()
ReDim param(0) ' initialize dynamic array (start size = 1 element)
t_param = Command(num) ' get first parameter
If t_param = "" Then ' if first = 'empty' set ERROR
param(num-1) = "no parameter(s) given!"
Else ' no ERROR (aka: OK), store current, get mext
While t_param <> "" ' run until temp.-string = 'empty'
ReDim Preserve param(num-1) ' increase array size (keep data)
param(num-1) = t_param ' assign temporary string to array
num += 1 ' increase param number (to next)
t_param = Command(num) ' get next param (or 'empty')
Wend
End If
' now we have all parameters in the string array: param()
' just in case, we need a certain number of mandatory param's:
If UBound(param) < 3 Then ' assume: min.-parameters = 4
' give user a relevant message and, quit the prog. here
End If
' show it's content to user ... (even if only: ERROR-MSG)
For i As UInteger = 0 To UBound(param)
? "array param("; i; ") = "; param(i)
Next
If (num>1) then
Vendor = valint("&h" + param(0))
Product = valint("&h" + param(1))
End If
If (num>3) then
sup_out = valint(param(2))
End If

140
hidlib.bas Normal file
View File

@ -0,0 +1,140 @@
Type multireturn
As long A,B,C
End Type
'dim as uinteger Vendor = &h154B
'dim as uinteger Product = &hF009
'dim shared as uinteger Vendor = &h152A
'dim as uinteger Product = &h841d
dim shared as uinteger Vendor = &h04B4
dim as uinteger Product = &h00F1
'dim as uinteger Vendor = &h16C0
'dim as uinteger Product = &h0486
dim as libusb_device_handle ptr DHandle(10)
dim shared as libusb_device_descriptor desc
dim as libusb_transfer_cb_fn call_back
dim as libusb_config_descriptor ptr Dconfig
dim as integer conf
dim as libusb_device ptr pDevice
dim as libusb_device ptr ptr ppList
dim as integer cnt = 0
dim as Long returnvalue
dim as Const libusb_interface Ptr inter
dim as Const libusb_interface_descriptor Ptr interdesc
dim shared as Const libusb_endpoint_descriptor Ptr epdesc
dim as libusb_transfer Ptr xfr
dim as uinteger size = 2048
dim as Ubyte databuffer(size)
dim as Ubyte databuffer_oud1 = 0
dim as Ubyte databuffer_oud2 = 0
dim as Ubyte databuffer_oud3 = 0
dim as Ubyte databuffer_oud4 = 0
dim as Ubyte ptr dbuf = @databuffer(0)
dim as Ubyte in_endpoint(10)
dim as uinteger in_packsize(10)
dim as Ubyte in_cnt = 0
dim as Ubyte out_cnt = 0
dim as Ubyte out_endpoint(10)
dim as uinteger out_packsize(10)
dim as Ubyte counter
dim as multireturn returnvalues
dim as String key
dim as uinteger countbytes = 0
dim as Ubyte sup_out = 1
Declare Function open_device(device as libusb_device ptr) as libusb_device_handle ptr
Declare Function close_device(handle as libusb_device_handle ptr) as long
Declare Function exit_prog(ppList as libusb_device ptr ptr) as long
Declare Function transfer_data(handle as libusb_device_handle ptr, endp as UByte, databuf As UByte Ptr, number as long, timeout As ULong, suppress as UByte) as multireturn
Declare Function bulk_tranfer(handle as libusb_device_handle ptr, endp as UByte, databuf As UByte Ptr, number as long, timeout As ULong, suppress as UByte) as multireturn
Function open_device(device as libusb_device ptr) as libusb_device_handle ptr
dim as long returnvalue
dim as libusb_device_handle ptr Handle
returnvalue = libusb_open(device, @Handle)
? "dev_handle "; Handle
? "Error Detail "; returnvalue
? *(libusb_error_name(returnvalue))
returnvalue = libusb_reset_device(Handle)
? "Error Reset Device "; returnvalue
?
If Handle > 0 Then
returnvalue = libusb_kernel_driver_active(Handle, 0) ''check if kernel has attached a driver
? "Check attached "; returnvalue
If returnvalue > 0 Then ''if so
returnvalue = libusb_detach_kernel_driver(Handle, 0) ''detach it
? "Detached "; returnvalue
End If
returnvalue = libusb_claim_interface(Handle, 0) ''now we can claim the interface
? "Claim "; returnvalue
?
End If
return Handle
End Function
Function close_device(handle as libusb_device_handle ptr) as long
dim as long returnvalue
returnvalue = libusb_release_interface(handle, 0)
?
? "release :"; returnvalue
libusb_close(handle)
return returnvalue
End Function
Function exit_prog(ppList as libusb_device ptr ptr) as long
? "ok"
libusb_free_device_list(ppList, 1)
libusb_exit(NULL)
? "end"
return 1
End Function
Function print_info()as long
return 1
End Function
Function transfer_data(handle as libusb_device_handle ptr, endp as UByte, databuf As UByte Ptr, number as long, timeout As ULong, suppress as UByte) as multireturn
Dim As multireturn returnvalues
dim as long returnvalue
dim as long length = 0
returnvalue = libusb_interrupt_transfer(handle, endp, databuf, number, @length, timeout)
If (suppress = 0) then
?
? "returnvalue "; returnvalue
? *(libusb_error_name(returnvalue))
End if
returnvalues.A = length
returnvalues.B = returnvalue
return returnvalues
End Function
Function bulk_tranfer(handle as libusb_device_handle ptr, endp as UByte, databuf As UByte Ptr, number as long, timeout As ULong, suppress as UByte) as multireturn
Dim As multireturn returnvalues
dim as long returnvalue
dim as long length = 0
returnvalue = libusb_bulk_transfer(handle, endp, databuf, number, @length, timeout)
If (suppress = 0) then
'?
'? "returnvalue "; returnvalue
'? *(libusb_error_name(returnvalue))
End if
returnvalues.A = length
returnvalues.B = returnvalue
return returnvalues
End Function

1363
libusb-1.0.bi Normal file

File diff suppressed because it is too large Load Diff