Open FFBoard
Open source force feedback firmware
usbtmc_device.c File Reference

Go to the source code of this file.

Classes

struct  usbtmc_interface_state_t
 

Typedefs

typedef usbtmc_response_capabilities_488_t usbtmc_capabilities_specific_t
 

Enumerations

enum  usbtmcd_state_enum {
  STATE_CLOSED , STATE_NAK , STATE_IDLE , STATE_RCV ,
  STATE_TX_REQUESTED , STATE_TX_INITIATED , STATE_TX_SHORTED , STATE_CLEARING ,
  STATE_ABORTING_BULK_IN , STATE_ABORTING_BULK_IN_SHORTED , STATE_ABORTING_BULK_IN_ABORTED , STATE_ABORTING_BULK_OUT ,
  STATE_NUM_STATES
}
 

Functions

 TU_VERIFY_STATIC (USBTMCD_BUFFER_SIZE >=32u,"USBTMC dev buffer size too small")
 
static bool handle_devMsgOutStart (uint8_t rhport, void *data, size_t len)
 
static bool handle_devMsgOut (uint8_t rhport, void *data, size_t len, size_t packetLen)
 
static OSAL_MUTEX_DEF (usbtmcLockBuffer)
 
bool atomicChangeState (usbtmcd_state_enum expectedState, usbtmcd_state_enum newState)
 
bool tud_usbtmc_transmit_dev_msg_data (const void *data, size_t len, bool endOfMessage, bool usingTermChar)
 
bool tud_usbtmc_transmit_notification_data (const void *data, size_t len)
 
void usbtmcd_init_cb (void)
 
bool usbtmcd_deinit (void)
 
uint16_t usbtmcd_open_cb (uint8_t rhport, tusb_desc_interface_t const *itf_desc, uint16_t max_len)
 
bool tud_usbtmc_start_bus_read (void)
 
void usbtmcd_reset_cb (uint8_t rhport)
 
static bool handle_devMsgIn (void *data, size_t len)
 
bool usbtmcd_xfer_cb (uint8_t rhport, uint8_t ep_addr, xfer_result_t result, uint32_t xferred_bytes)
 
bool usbtmcd_control_xfer_cb (uint8_t rhport, uint8_t stage, tusb_control_request_t const *request)
 

Variables

tu_static char logMsg [150]
 
CFG_TUD_MEM_SECTION tu_static usbtmc_interface_state_t usbtmc_state
 
tu_static uint8_t termChar
 
tu_static uint8_t termCharRequested = false
 
osal_mutex_t usbtmcLock
 

Typedef Documentation

◆ usbtmc_capabilities_specific_t

Enumeration Type Documentation

◆ usbtmcd_state_enum

Enumerator
STATE_CLOSED 
STATE_NAK 
STATE_IDLE 
STATE_RCV 
STATE_TX_REQUESTED 
STATE_TX_INITIATED 
STATE_TX_SHORTED 
STATE_CLEARING 
STATE_ABORTING_BULK_IN 
STATE_ABORTING_BULK_IN_SHORTED 
STATE_ABORTING_BULK_IN_ABORTED 
STATE_ABORTING_BULK_OUT 
STATE_NUM_STATES 

Definition at line 99 of file usbtmc_device.c.

Function Documentation

◆ atomicChangeState()

bool atomicChangeState ( usbtmcd_state_enum  expectedState,
usbtmcd_state_enum  newState 
)

Definition at line 179 of file usbtmc_device.c.

◆ handle_devMsgIn()

static bool handle_devMsgIn ( void *  data,
size_t  len 
)
static

Definition at line 464 of file usbtmc_device.c.

◆ handle_devMsgOut()

static bool handle_devMsgOut ( uint8_t  rhport,
void *  data,
size_t  len,
size_t  packetLen 
)
static

Definition at line 432 of file usbtmc_device.c.

◆ handle_devMsgOutStart()

static bool handle_devMsgOutStart ( uint8_t  rhport,
void *  data,
size_t  len 
)
static

Definition at line 415 of file usbtmc_device.c.

◆ OSAL_MUTEX_DEF()

static OSAL_MUTEX_DEF ( usbtmcLockBuffer  )
static

◆ TU_VERIFY_STATIC()

TU_VERIFY_STATIC ( USBTMCD_BUFFER_SIZE >=  32u,
"USBTMC dev buffer size too small"   
)

◆ tud_usbtmc_start_bus_read()

bool tud_usbtmc_start_bus_read ( void  )

Definition at line 383 of file usbtmc_device.c.

◆ tud_usbtmc_transmit_dev_msg_data()

bool tud_usbtmc_transmit_dev_msg_data ( const void *  data,
size_t  len,
bool  endOfMessage,
bool  usingTermChar 
)

Definition at line 203 of file usbtmc_device.c.

◆ tud_usbtmc_transmit_notification_data()

bool tud_usbtmc_transmit_notification_data ( const void *  data,
size_t  len 
)

Definition at line 250 of file usbtmc_device.c.

◆ usbtmcd_control_xfer_cb()

bool usbtmcd_control_xfer_cb ( uint8_t  rhport,
uint8_t  stage,
tusb_control_request_t const *  request 
)

Definition at line 620 of file usbtmc_device.c.

◆ usbtmcd_deinit()

bool usbtmcd_deinit ( void  )

Definition at line 283 of file usbtmc_device.c.

◆ usbtmcd_init_cb()

void usbtmcd_init_cb ( void  )

Definition at line 263 of file usbtmc_device.c.

◆ usbtmcd_open_cb()

uint16_t usbtmcd_open_cb ( uint8_t  rhport,
tusb_desc_interface_t const *  itf_desc,
uint16_t  max_len 
)

Definition at line 290 of file usbtmc_device.c.

◆ usbtmcd_reset_cb()

void usbtmcd_reset_cb ( uint8_t  rhport)

Definition at line 403 of file usbtmc_device.c.

◆ usbtmcd_xfer_cb()

bool usbtmcd_xfer_cb ( uint8_t  rhport,
uint8_t  ep_addr,
xfer_result_t  result,
uint32_t  xferred_bytes 
)

Definition at line 487 of file usbtmc_device.c.

Variable Documentation

◆ logMsg

tu_static char logMsg[150]

Definition at line 81 of file usbtmc_device.c.

◆ termChar

tu_static uint8_t termChar

Definition at line 165 of file usbtmc_device.c.

◆ termCharRequested

tu_static uint8_t termCharRequested = false

Definition at line 168 of file usbtmc_device.c.

◆ usbtmc_state

CFG_TUD_MEM_SECTION tu_static usbtmc_interface_state_t usbtmc_state
Initial value:
=
{
.itf_id = 0xFF,
}

Definition at line 153 of file usbtmc_device.c.

◆ usbtmcLock

osal_mutex_t usbtmcLock

Definition at line 173 of file usbtmc_device.c.