Jump to content

RxUsbDataTransfer

From EDM2
Revision as of 23:18, 20 January 2017 by Martini (talk | contribs) (Created page with "==Description== Executes synchronous Bulk or Interrupt Transfer with a specific endpoint. ==Syntax== <pre> rc = RxUsbDataTransfer(Handle,Endpoint,AltSetting,NumBytes,Data,Ti...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

Errors

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