Jump to content

RxUsbDataTransfer: Difference between revisions

From EDM2
W.m.brul (talk | contribs)
W.m.brul (talk | contribs)
 
Line 82: Line 82:


==Related Functions==
==Related Functions==
* [[RxUsbBulkRead]]
* [[RxUsbBulkWrite]]
* [[RxUsbIrqRead]]
* [[RxUsbIrqWrite]]
* [[RxUsbOpen]]


[[Category:USBCalls]]
[[Category:USBCalls]]

Latest revision as of 19:33, 12 February 2017

Description

Executes synchronous Bulk or Interrupt Transfer with a specific endpoint.

Syntax

rc = RxUsbDataTransfer(Handle,Endpoint,AltSetting,NumBytes,Data,Timeout,Flags)

Parameters

Handle
the Device Handle received from the previous RxUsbOpen.
Endpoint
the Endpoint Number appropriate for the data transfer.
AltSetting
the Alternate Setting of the interface having this endpoint.
Timeout
the timeout to wait for completion in milliseconds.
Flags
use 1 to transfer all data or 0 to allow less transferred.

For device-to-host data transfer:

NumBytes
the number of bytes to be transferred or 0 for no data transfer.
Data
the name of the variable to receive the data bytes transferred.

For host-to-device data transfer:

NumBytes
the name of the variable to receive the number of bytes transferred.
Data
the character string if any with the data bytes to be transferred.

Return Code

0x0000 - NO_ERROR

Errors

0x0006 - ERROR_INVALID_HANDLE
0x0008 - ERROR_NOT_ENOUGH_MEMORY
0x0057 - ERROR_INVALID_PARAMETER
0x005F - ERROR_INTERRUPT
0x0122 - ERROR_TOO_MANY_HANDLES
0x0280 - ERROR_TIMEOUT
0x1B58 - USB_NOT_INIT
0x1B5B - USB_ERROR_INVALID_ENDPOINT
0x1B5C - USB_ERROR_LESSTRANSFERED
0x4000 - USB_IORB_REQUEST
0x80XX - USB_IORB_FAILED
0xFF0D - ERROR_INVALID_DATA
0xFF13 - ERROR_I24_INVALID_PARAMETER
0xFF13 - USB_IDC_PARMERR
0xFF18 - USB_IDC_ADDRINV
0xFF37 - ERROR_DEV_NOT_EXIST
0xFF5D - EROR_NO_ITEMS
0xFFA7 - ERROR_LOCK_FAILED

Remarks

Example Code

/* add RxUsbDataTransfer */
rc = RxFuncAdd('RxUsbDataTransfer','usbcalls','RxUsbDataTransfer')
say '+RxUsbDataTransfer(),RC=0x'd2x(rc)

/* invoke RxUsbDataTransfer device-to-host */
drop Data /* receives string of data bytes read */
Endpoint=128+1; AltSetting=0; NumBytes=4096; Timeout=8000; Flags=0
rc = RxUsbDataTransfer(Handle,Endpoint,AltSetting,NumBytes,Data,Timeout,Flags)
say '*RxUsbDataTransfer(),RC=0x'd2x(rc)

/* invoke RxUsbDataTransfer host-to-device */
drop NumBytes /* receives number of data bytes written */
Endpoint=2; AltSetting=0; Data=copies(x2c(BD),4096); Timeout=8000; Flags=1
rc = RxUsbDataTransfer(Handle,Endpoint,AltSetting,NumBytes,Data,Timeout,Flags)
say '*RxUsbDataTransfer(),RC=0x'd2x(rc)

/* drop RxUsbDataTransfer */
rc = RxFuncDrop('RxUsbDataTransfer')
say '-RxUsbDataTransfer(),RC=0x'd2x

Related Functions