WE310F5  39.00.000
m2mb_usb.h File Reference

Header file for USB CDC ACM. More...

Go to the source code of this file.

Data Structures

struct  M2MB_USB_CB_CFG
 
union  M2MB_USB_IOCTL
 

Typedefs

typedef VOID(* M2MB_USB_CB_T) (VOID *ctx, UINT32 num_bytes, VOID *data)
 
typedef enum M2MB_USB_CONN_STATUS_E M2MB_USB_CONN_STATUS
 
typedef struct M2MB_USB_CB_CFG M2MB_USB_CB_CFG_T
 
typedef enum M2MB_USB_IOCTL_REQUEST_E M2MB_USB_IOCTL_REQUEST
 
typedef union M2MB_USB_IOCTL M2MB_USB_IOCTL_T
 

Enumerations

enum  M2MB_USB_CONN_STATUS_E {
  M2MB_USB_STATUS_INIT = 0,
  M2MB_USB_STATUS_DETACHED,
  M2MB_USB_STATUS_ATTACHED
}
 
enum  M2MB_USB_IOCTL_REQUEST_E {
  M2MB_USB_IOCTL_SET_CFG = 0,
  M2MB_USB_IOCTL_GET_CFG,
  M2MB_USB_IOCTL_SET_RX_CB,
  M2MB_USB_IOCTL_GET_RX_CB,
  M2MB_USB_IOCTL_SET_TX_CB,
  M2MB_USB_IOCTL_GET_TX_CB,
  M2MB_USB_IOCTL_GET_STATUS,
  M2MB_USB_IOCTL_SET_READ_EXIT,
  M2MB_USB_IOCTL_SET_READ_TIMEOUT,
  M2MB_USB_IOCTL_GET_READ_TIMEOUT,
  M2MB_USB_IOCTL_NOF_REQ
}
 

Functions

INT32 m2mb_usb_open (HANDLE *pHandle, const char *path, int flags,...)
 m2mb_usb_open More...
 
SSIZE_T m2mb_usb_read (HANDLE pHandle, void *buf, size_t nbyte)
 m2mb_usb_read More...
 
SSIZE_T m2mb_usb_write (HANDLE pHandle, void *buf, size_t nbyte)
 m2mb_usb_write More...
 
INT32 m2mb_usb_close (HANDLE pHandle)
 m2mb_usb_close More...
 
INT32 m2mb_usb_ioctl (HANDLE fd, INT32 request, M2MB_USB_IOCTL_T *reqData)
 m2mb_usb_ioctl More...
 

Detailed Description

Header file for USB CDC ACM.

m2mb_usb.h

Note
Author
Ganesh G.
Date
26/08/2020

Definition in file m2mb_usb.h.

Typedef Documentation

◆ M2MB_USB_CB_CFG_T

◆ M2MB_USB_CB_T

typedef VOID(* M2MB_USB_CB_T) (VOID *ctx, UINT32 num_bytes, VOID *data)

Definition at line 27 of file m2mb_usb.h.

◆ M2MB_USB_CONN_STATUS

◆ M2MB_USB_IOCTL_REQUEST

◆ M2MB_USB_IOCTL_T

Enumeration Type Documentation

◆ M2MB_USB_CONN_STATUS_E

Enumerator
M2MB_USB_STATUS_INIT 
M2MB_USB_STATUS_DETACHED 
M2MB_USB_STATUS_ATTACHED 

Definition at line 29 of file m2mb_usb.h.

◆ M2MB_USB_IOCTL_REQUEST_E

Enumerator
M2MB_USB_IOCTL_SET_CFG 
M2MB_USB_IOCTL_GET_CFG 
M2MB_USB_IOCTL_SET_RX_CB 
M2MB_USB_IOCTL_GET_RX_CB 
M2MB_USB_IOCTL_SET_TX_CB 
M2MB_USB_IOCTL_GET_TX_CB 
M2MB_USB_IOCTL_GET_STATUS 
M2MB_USB_IOCTL_SET_READ_EXIT 
M2MB_USB_IOCTL_SET_READ_TIMEOUT 
M2MB_USB_IOCTL_GET_READ_TIMEOUT 
M2MB_USB_IOCTL_NOF_REQ 

Definition at line 42 of file m2mb_usb.h.

Function Documentation

◆ m2mb_usb_close()

INT32 m2mb_usb_close ( HANDLE  pHandle)

m2mb_usb_close

close a USB device

Parameters
[in]pHandleUSB handle used in the USB CDC ACM Operation
Returns
0 on SUCCESS -1 on FAILURE
Note

int main()
{
INT32 retVal;
M2MB_USB_HANDLE_T usb_cdc_acm;
m2mb_usb_open(&usb_cdc_acm, "/dev/USB0", 0);
//... use USB device ...
retVal = m2mb_usb_close( usb_cdc_acm );
if ( retVal != -1 )
printf( "m2mb_usb_close succeeded");
}

◆ m2mb_usb_ioctl()

INT32 m2mb_usb_ioctl ( HANDLE  fd,
INT32  request,
M2MB_USB_IOCTL_T reqData 
)

m2mb_usb_ioctl

configure a USB device

Parameters
[in]fdfile descriptor returned by m2mb_usb_open
[in]requestrequired operation (see M2MB_USB_IOCTL_REQUEST)
[in]cfg_ptrpointer to the configuration struct, casted to void*
Returns
0 on SUCCESS -1 on FAILURE
Note

static void USB_Cb( INT32 fd, M2MB_USB_IND_E usb_event, UINT16 resp_size, void *resp_struct, void *userdata )
{
//...
}
int main()
{
INT32 fd;
INT32 retVal;
M2MB_USB_CFG_T cfg;
fd = m2mb_usb_open("/dev/USB0", 0);
//...
if ( retVal != -1 )
printf( "m2mb_usb_ioctl: get cfg struct succeeded");
// modify some configuration structure fields...
cfg.m2mb_usb_app_cb_func = USB_Cb;
//...
if ( retVal != -1 )
printf( "m2mb_usb_ioctl: set cfg struct succeeded");
}

◆ m2mb_usb_open()

INT32 m2mb_usb_open ( HANDLE pHandle,
const char *  path,
int  flags,
  ... 
)

m2mb_usb_open

open a USB device

Parameters
[in]pHandleUSB handle used in the USB CDC ACM Operation
[in]path/dev/USB# where # is in decimal format
[in]flagif set to M2MB_USB_ASYNC_READ_CB, next argument will be read callback, and so on
[in]...
Returns
file descriptor on SUCCESS -1 on FAILURE
Note

int main()
{
INT32 ret;
M2MB_USB_HANDLE_T usb_cdc_acm;
ret = m2mb_usb_open(&usb_cdc_acm, "/dev/USB0", 0);
if ( ret != -1 )
printf( "m2mb_usb_open succeeded");
}

◆ m2mb_usb_read()

SSIZE_T m2mb_usb_read ( HANDLE  pHandle,
void *  buf,
size_t  nbyte 
)

m2mb_usb_read

read nbyte Bytes from a USB device into the array pointed to by buf

Parameters
[in]pHandleUSB handle used in the USB CDC ACM Operation
[in]bufdestination buffer, previously allocated
[in]nbytelength of destination buffer in Bytes
Returns
number of read Bytes on SUCCESS -1 on FAILURE
Note

#define BUF_LEN 32
int main()
{
INT32 rdBytes;
UINT8 dstBuf[BUF_LEN];
M2MB_USB_HANDLE_T usb_cdc_acm;
m2mb_usb_open(&usb_cdc_acm, "/dev/USB0", 0);
//...
rdBytes = m2mb_usb_read(usb_cdc_acm, dstBuf, BUF_LEN);
if ( rdBytes >= 0 )
printf( "m2mb_usb_read succeeded");
}

◆ m2mb_usb_write()

SSIZE_T m2mb_usb_write ( HANDLE  pHandle,
void *  buf,
size_t  nbyte 
)

m2mb_usb_write

write nbyte Bytes from the array pointed to by buf to a USB device

Parameters
[in]pHandleUSB handle used in the USB CDC ACM Operation
[in]bufsource buffer, previously allocated
[in]nbytelength of source buffer in Bytes
Returns
number of written Bytes on SUCCESS -1 on FAILURE
Note

#define BUF_LEN 32
#define WR_BYTE_VAL 0xAB
int main()
{
UINT8 srcBuf[BUF_LEN];
M2MB_USB_HANDLE_T usb_cdc_acm;
m2mb_usb_open(&usb_cdc_acm, "/dev/USB0", 0);
//...
memset(srcBuf, WR_BYTE_VAL, BUF_LEN);
m2mb_usb_write(usb_cdc_am, srcBuf, BUF_LEN);
}