mirror of
https://github.com/hathach/tinyusb.git
synced 2025-04-10 12:44:55 +00:00
adding tuh_cdc_mount_cb/tuh_cdc_umount_cb
start adding cdc_app.c to example
This commit is contained in:
parent
159aa599be
commit
4f03695084
@ -14,8 +14,9 @@ add_executable(${PROJECT})
|
|||||||
|
|
||||||
# Example source
|
# Example source
|
||||||
target_sources(${PROJECT} PUBLIC
|
target_sources(${PROJECT} PUBLIC
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/src/hid_app.c
|
${CMAKE_CURRENT_SOURCE_DIR}/src/cdc_app.c
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/src/main.c
|
${CMAKE_CURRENT_SOURCE_DIR}/src/main.c
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/src/hid_app.c
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/src/msc_app.c
|
${CMAKE_CURRENT_SOURCE_DIR}/src/msc_app.c
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ INC += \
|
|||||||
|
|
||||||
# Example source
|
# Example source
|
||||||
EXAMPLE_SOURCE = \
|
EXAMPLE_SOURCE = \
|
||||||
|
src/cdc_app.c \
|
||||||
src/hid_app.c \
|
src/hid_app.c \
|
||||||
src/main.c \
|
src/main.c \
|
||||||
src/msc_app.c \
|
src/msc_app.c \
|
||||||
|
51
examples/host/cdc_msc_hid/src/cdc_app.c
Normal file
51
examples/host/cdc_msc_hid/src/cdc_app.c
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
/*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2022, Ha Thach (tinyusb.org)
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*
|
||||||
|
* This file is part of the TinyUSB stack.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "tusb.h"
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------+
|
||||||
|
// MACRO TYPEDEF CONSTANT ENUM DECLARATION
|
||||||
|
//--------------------------------------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
//------------- IMPLEMENTATION -------------//
|
||||||
|
|
||||||
|
void cdc_app_task(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void tuh_cdc_mount_cb(uint8_t dev_addr)
|
||||||
|
{
|
||||||
|
(void) dev_addr;
|
||||||
|
printf("A CDC device is mounted\r\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
void tuh_cdc_umount_cb(uint8_t dev_addr)
|
||||||
|
{
|
||||||
|
(void) dev_addr;
|
||||||
|
printf("A CDC device is unmounted\r\n");
|
||||||
|
}
|
@ -35,7 +35,7 @@
|
|||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
void led_blinking_task(void);
|
void led_blinking_task(void);
|
||||||
|
|
||||||
extern void cdc_task(void);
|
extern void cdc_app_task(void);
|
||||||
extern void hid_app_task(void);
|
extern void hid_app_task(void);
|
||||||
|
|
||||||
/*------------- MAIN -------------*/
|
/*------------- MAIN -------------*/
|
||||||
@ -52,9 +52,9 @@ int main(void)
|
|||||||
{
|
{
|
||||||
// tinyusb host task
|
// tinyusb host task
|
||||||
tuh_task();
|
tuh_task();
|
||||||
led_blinking_task();
|
|
||||||
|
|
||||||
cdc_task();
|
led_blinking_task();
|
||||||
|
cdc_app_task();
|
||||||
hid_app_task();
|
hid_app_task();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,11 +79,6 @@ void tuh_cdc_xfer_isr(uint8_t dev_addr, xfer_result_t event, cdc_pipeid_t pipe_i
|
|||||||
tuh_cdc_receive(dev_addr, serial_in_buffer, sizeof(serial_in_buffer), true); // waiting for next data
|
tuh_cdc_receive(dev_addr, serial_in_buffer, sizeof(serial_in_buffer), true); // waiting for next data
|
||||||
}
|
}
|
||||||
|
|
||||||
void cdc_task(void)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
// TinyUSB Callbacks
|
// TinyUSB Callbacks
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
@ -239,6 +239,8 @@ bool cdch_open(uint8_t rhport, uint8_t dev_addr, tusb_desc_interface_t const *it
|
|||||||
bool cdch_set_config(uint8_t dev_addr, uint8_t itf_num)
|
bool cdch_set_config(uint8_t dev_addr, uint8_t itf_num)
|
||||||
{
|
{
|
||||||
(void) dev_addr; (void) itf_num;
|
(void) dev_addr; (void) itf_num;
|
||||||
|
|
||||||
|
if (tuh_cdc_mount_cb) tuh_cdc_mount_cb(dev_addr);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -254,6 +256,16 @@ 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_data_t * p_cdc = get_itf(dev_addr);
|
||||||
|
|
||||||
|
// Invoke application callback
|
||||||
|
if (tuh_cdc_umount_cb)
|
||||||
|
{
|
||||||
|
if (p_cdc->ep_out || p_cdc->ep_in || p_cdc->ep_notif)
|
||||||
|
{
|
||||||
|
tuh_cdc_umount_cb(dev_addr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
tu_memclr(p_cdc, sizeof(cdch_data_t));
|
tu_memclr(p_cdc, sizeof(cdch_data_t));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,13 +34,18 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
// CDC APPLICATION PUBLIC API
|
// Application API
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
/** \ingroup ClassDriver_CDC Communication Device Class (CDC)
|
|
||||||
* \addtogroup CDC_Serial Serial
|
|
||||||
* @{
|
//------------- Application Callback -------------//
|
||||||
* \defgroup CDC_Serial_Host Host
|
|
||||||
* @{ */
|
// 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);
|
||||||
|
|
||||||
|
|
||||||
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);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user