Microchip® Advanced Software Framework

common/services/usb/class/composite/device/example2/main.c File Reference

Main functions for USB composite example.

Copyright (c) 2009-2018 Microchip Technology Inc. and its subsidiaries.

#include <asf.h>
#include "conf_usb.h"
#include "ui.h"
#include "uart.h"

Functions

int main (void)
 Main function. Execution starts here. More...
 
void main_cdc_disable (uint8_t port)
 Closes the communication port This is called by CDC interface when USB Host disable it. More...
 
bool main_cdc_enable (uint8_t port)
 Opens the communication port This is called by CDC interface when USB Host enable it. More...
 
void main_cdc_set_dtr (uint8_t port, bool b_enable)
 Save new DTR state to change led behavior. The DTR notify that the terminal have open or close the communication port. More...
 
bool main_extra_string (void)
 Example of extra USB string management This feature is available for single or composite device which want implement additional USB string than Manufacture, Product and serial number ID. More...
 
void main_keyboard_disable (void)
 Called by HID interface Callback running when USB Host disable keyboard interface. More...
 
bool main_keyboard_enable (void)
 Called by HID interface Callback running when USB Host enable keyboard interface. More...
 
void main_mouse_disable (void)
 Called by HID interface Callback running when USB Host disable mouse interface. More...
 
bool main_mouse_enable (void)
 Called by HID interface Callback running when USB Host enable mouse interface. More...
 
void main_msc_disable (void)
 Called by MSC interface Callback running when USB Host disable MSC interface. More...
 
bool main_msc_enable (void)
 Called by MSC interface Callback running when USB Host enable MSC interface. More...
 
void main_remotewakeup_disable (void)
 Called by UDC when USB Host request to disable remote wakeup. More...
 
void main_remotewakeup_enable (void)
 Called by UDC when USB Host request to enable remote wakeup. More...
 
void main_resume_action (void)
 Called by UDD when the USB line exit of suspend state. More...
 
void main_sof_action (void)
 Called when a start of frame is received on USB line. More...
 
void main_suspend_action (void)
 Enters the application in low power mode Callback called when USB host sets USB line in suspend state. More...
 

Variables

static volatile bool main_b_cdc_enable = false
 
static volatile bool main_b_keyboard_enable = false
 
static volatile bool main_b_mouse_enable = false
 
static volatile bool main_b_msc_enable = false
 

void main_cdc_disable ( uint8_t  port)

Closes the communication port This is called by CDC interface when USB Host disable it.

References main_b_cdc_enable, and uart_close().

bool main_cdc_enable ( uint8_t  port)

Opens the communication port This is called by CDC interface when USB Host enable it.

Called by CDC interface Callback running when USB Host enable CDC interface.

Return values
trueif cdc startup is successfully done

References main_b_cdc_enable, and uart_open().

void main_cdc_set_dtr ( uint8_t  port,
bool  b_enable 
)

Save new DTR state to change led behavior. The DTR notify that the terminal have open or close the communication port.

References ui_com_close(), and ui_com_open().

bool main_extra_string ( void  )

Example of extra USB string management This feature is available for single or composite device which want implement additional USB string than Manufacture, Product and serial number ID.

Called by UDC when USB Host request a extra string different of this specified in USB device descriptor.

return true, if the string ID requested is know and managed by this functions

References cpu_to_le16, header, i, Max, udd_ctrl_request_t::payload, udd_ctrl_request_t::payload_size, udd_ctrl_request_t::req, str, UDC_DESC_STORAGE, udd_g_ctrlreq, UDI_CDC_IAD_STRING_ID, UDI_HID_KBD_STRING_ID, UDI_HID_MOUSE_STRING_ID, UDI_MSC_STRING_ID, USB_DT_STRING, usb_setup_req_t::wLength, and usb_setup_req_t::wValue.

void main_keyboard_disable ( void  )

Called by HID interface Callback running when USB Host disable keyboard interface.

References main_b_keyboard_enable.

bool main_keyboard_enable ( void  )

Called by HID interface Callback running when USB Host enable keyboard interface.

Return values
trueif keyboard startup is ok

References main_b_keyboard_enable, and main_b_keyboard_enumerated.

void main_mouse_disable ( void  )

Called by HID interface Callback running when USB Host disable mouse interface.

References main_b_mouse_enable.

bool main_mouse_enable ( void  )

Called by HID interface Callback running when USB Host enable mouse interface.

Return values
trueif mouse startup is ok

References main_b_mouse_enable.

void main_msc_disable ( void  )

Called by MSC interface Callback running when USB Host disable MSC interface.

References main_b_msc_enable.

bool main_msc_enable ( void  )

Called by MSC interface Callback running when USB Host enable MSC interface.

Return values
trueif MSC startup is ok

References main_b_msc_enable.

void main_remotewakeup_disable ( void  )

Called by UDC when USB Host request to disable remote wakeup.

References ui_wakeup_disable().

void main_remotewakeup_enable ( void  )

Called by UDC when USB Host request to enable remote wakeup.

References ui_wakeup_enable().

void main_resume_action ( void  )

Called by UDD when the USB line exit of suspend state.

Turn on a led to notify active mode Called when the USB line is resumed from the suspend state.

References ui_wakeup().

void main_sof_action ( void  )

Called when a start of frame is received on USB line.

Manages the leds behaviors Called when a start of frame is received on USB line each 1ms.

References main_b_cdc_enable, main_b_keyboard_enable, main_b_mouse_enable, main_b_msc_enable, udd_get_frame_number(), and ui_process().

void main_suspend_action ( void  )

Enters the application in low power mode Callback called when USB host sets USB line in suspend state.

References ui_powerdown().

volatile bool main_b_cdc_enable = false
static
volatile bool main_b_keyboard_enable = false
static
volatile bool main_b_mouse_enable = false
static
volatile bool main_b_msc_enable = false
static