minor rename

This commit is contained in:
hathach 2022-12-14 23:19:47 +07:00
parent f0c51eae44
commit f62f973956
4 changed files with 67 additions and 15 deletions

View File

@ -37,6 +37,7 @@
// MACRO CONSTANT TYPEDEF // MACRO CONSTANT TYPEDEF
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
typedef struct { typedef struct {
// uint8_t daddr;
uint8_t itf_num; uint8_t itf_num;
uint8_t itf_protocol; uint8_t itf_protocol;
@ -46,21 +47,42 @@ typedef struct {
cdc_acm_capability_t acm_capability; cdc_acm_capability_t acm_capability;
} cdch_data_t; // Bit 0: DTR (Data Terminal Ready), Bit 1: RTS (Request to Send)
// uint8_t line_state;
#if 0
// FIFO
tu_fifo_t rx_ff;
tu_fifo_t tx_ff;
uint8_t rx_ff_buf[CFG_TUH_CDC_RX_BUFSIZE];
uint8_t tx_ff_buf[CFG_TUH_CDC_TX_BUFSIZE];
#if CFG_FIFO_MUTEX
osal_mutex_def_t rx_ff_mutex;
osal_mutex_def_t tx_ff_mutex;
#endif
// Endpoint Transfer buffer
CFG_TUSB_MEM_ALIGN uint8_t epout_buf[CFG_TUH_CDC_EP_BUFSIZE];
CFG_TUSB_MEM_ALIGN uint8_t epin_buf[CFG_TUH_CDC_EP_BUFSIZE];
#endif
} cdch_interface_t;
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// INTERNAL OBJECT & FUNCTION DECLARATION // INTERNAL OBJECT & FUNCTION DECLARATION
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
static cdch_data_t cdch_data[CFG_TUH_DEVICE_MAX]; static cdch_interface_t cdch_data[CFG_TUH_DEVICE_MAX];
static inline cdch_data_t* get_itf(uint8_t dev_addr) static inline cdch_interface_t* get_itf(uint8_t dev_addr)
{ {
return &cdch_data[dev_addr-1]; return &cdch_data[dev_addr-1];
} }
bool tuh_cdc_mounted(uint8_t dev_addr) bool tuh_cdc_mounted(uint8_t dev_addr)
{ {
cdch_data_t* cdc = get_itf(dev_addr); cdch_interface_t* cdc = get_itf(dev_addr);
return cdc->ep_in && cdc->ep_out; return cdc->ep_in && cdc->ep_out;
} }
@ -68,7 +90,7 @@ bool tuh_cdc_is_busy(uint8_t dev_addr, cdc_pipeid_t pipeid)
{ {
if ( !tuh_cdc_mounted(dev_addr) ) return false; if ( !tuh_cdc_mounted(dev_addr) ) return false;
cdch_data_t const * p_cdc = get_itf(dev_addr); cdch_interface_t const * p_cdc = get_itf(dev_addr);
switch (pipeid) switch (pipeid)
{ {
@ -89,6 +111,17 @@ bool tuh_cdc_is_busy(uint8_t dev_addr, cdc_pipeid_t pipeid)
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// APPLICATION API (parameter validation needed) // APPLICATION API (parameter validation needed)
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
uint32_t tuh_cdc_write(uint8_t dev_addr, void const* buffer, uint32_t bufsize)
{
(void) dev_addr;
(void) buffer;
(void) bufsize;
return 0;
}
bool tuh_cdc_serial_is_mounted(uint8_t dev_addr) bool tuh_cdc_serial_is_mounted(uint8_t dev_addr)
{ {
// TODO consider all AT Command as serial candidate // TODO consider all AT Command as serial candidate
@ -122,7 +155,7 @@ bool tuh_cdc_receive(uint8_t dev_addr, void * p_buffer, uint32_t length, bool is
bool tuh_cdc_set_control_line_state(uint8_t dev_addr, bool dtr, bool rts, tuh_xfer_cb_t complete_cb) bool tuh_cdc_set_control_line_state(uint8_t dev_addr, bool dtr, bool rts, tuh_xfer_cb_t complete_cb)
{ {
cdch_data_t const * p_cdc = get_itf(dev_addr); cdch_interface_t const * p_cdc = get_itf(dev_addr);
tusb_control_request_t const request = tusb_control_request_t const request =
{ {
@ -164,7 +197,7 @@ void cdch_close(uint8_t dev_addr)
{ {
TU_VERIFY(dev_addr <= CFG_TUH_DEVICE_MAX, ); TU_VERIFY(dev_addr <= CFG_TUH_DEVICE_MAX, );
cdch_data_t * p_cdc = get_itf(dev_addr); cdch_interface_t * p_cdc = get_itf(dev_addr);
// Invoke application callback // Invoke application callback
if (tuh_cdc_umount_cb) if (tuh_cdc_umount_cb)
@ -175,7 +208,7 @@ void cdch_close(uint8_t dev_addr)
} }
} }
tu_memclr(p_cdc, sizeof(cdch_data_t)); tu_memclr(p_cdc, sizeof(cdch_interface_t));
} }
bool cdch_xfer_cb(uint8_t dev_addr, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes) bool cdch_xfer_cb(uint8_t dev_addr, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes)
@ -200,7 +233,7 @@ bool cdch_open(uint8_t rhport, uint8_t dev_addr, tusb_desc_interface_t const *it
CDC_COMM_SUBCLASS_ABSTRACT_CONTROL_MODEL == itf_desc->bInterfaceSubClass && CDC_COMM_SUBCLASS_ABSTRACT_CONTROL_MODEL == itf_desc->bInterfaceSubClass &&
0xFF != itf_desc->bInterfaceProtocol); 0xFF != itf_desc->bInterfaceProtocol);
cdch_data_t * p_cdc = get_itf(dev_addr); cdch_interface_t * p_cdc = get_itf(dev_addr);
p_cdc->itf_num = itf_desc->bInterfaceNumber; p_cdc->itf_num = itf_desc->bInterfaceNumber;
p_cdc->itf_protocol = itf_desc->bInterfaceProtocol; p_cdc->itf_protocol = itf_desc->bInterfaceProtocol;

View File

@ -34,19 +34,24 @@
#endif #endif
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// Application API // Class Driver Configuration
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
//------------- Application Callback -------------// //--------------------------------------------------------------------+
// Application API
//--------------------------------------------------------------------+
// Invoked when a device with CDC interface is mounted bool tuh_cdc_mounted(uint8_t dev_addr);
TU_ATTR_WEAK void tuh_cdc_mount_cb(uint8_t dev_addr);
// Invoked when a device with CDC interface is unmounted uint32_t tuh_cdc_write(uint8_t dev_addr, void const* buffer, uint32_t bufsize);
TU_ATTR_WEAK void tuh_cdc_umount_cb(uint8_t dev_addr); //uint32_t tuh_cdc_read(uint8_t dev_addr, void* buffer, uint32_t bufsize);
//--------------------------------------------------------------------+
// Control Endpoint (Request) API
//--------------------------------------------------------------------+
// Set Control Line State (DTR, RTS)
bool tuh_cdc_set_control_line_state(uint8_t dev_addr, bool dtr, bool rts, tuh_xfer_cb_t complete_cb); bool tuh_cdc_set_control_line_state(uint8_t dev_addr, bool dtr, bool rts, tuh_xfer_cb_t complete_cb);
static inline bool tuh_cdc_connect(uint8_t dev_addr, tuh_xfer_cb_t complete_cb) static inline bool tuh_cdc_connect(uint8_t dev_addr, tuh_xfer_cb_t complete_cb)
@ -59,6 +64,15 @@ static inline bool tuh_cdc_disconnect(uint8_t dev_addr, tuh_xfer_cb_t complete_c
return tuh_cdc_set_control_line_state(dev_addr, false, false, complete_cb); return tuh_cdc_set_control_line_state(dev_addr, false, false, complete_cb);
} }
//------------- Application Callback -------------//
// Invoked when a device with CDC interface is mounted
TU_ATTR_WEAK void tuh_cdc_mount_cb(uint8_t dev_addr);
// Invoked when a device with CDC interface is unmounted
TU_ATTR_WEAK void tuh_cdc_umount_cb(uint8_t dev_addr);
/** \brief Check if device support CDC Serial interface or not /** \brief Check if device support CDC Serial interface or not
* \param[in] dev_addr device address * \param[in] dev_addr device address
* \retval true if device supports * \retval true if device supports

View File

@ -62,6 +62,7 @@ typedef struct
hidh_interface_t instances[CFG_TUH_HID]; hidh_interface_t instances[CFG_TUH_HID];
} hidh_device_t; } hidh_device_t;
CFG_TUSB_MEM_SECTION
static hidh_device_t _hidh_dev[CFG_TUH_DEVICE_MAX]; static hidh_device_t _hidh_dev[CFG_TUH_DEVICE_MAX];
//------------- Internal prototypes -------------// //------------- Internal prototypes -------------//

View File

@ -256,6 +256,10 @@ typedef int make_iso_compilers_happy;
// For backward compatible // For backward compatible
#define TUSB_OPT_HOST_ENABLED CFG_TUH_ENABLED #define TUSB_OPT_HOST_ENABLED CFG_TUH_ENABLED
// highspeed support indicator
#define TUH_OPT_HIGH_SPEED (CFG_TUH_MAX_SPEED ? (CFG_TUH_MAX_SPEED & OPT_MODE_HIGH_SPEED) : TUP_RHPORT_HIGHSPEED)
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// TODO move later // TODO move later
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+