static bool udi_cdc_comm_enable_common(uint8_t port) { // Initialize control signal management udi_cdc_state[PORT] = CPU_TO_LE16(0); uid_cdc_state_msg[PORT].header.bmRequestType = USB_REQ_DIR_IN | USB_REQ_TYPE_CLASS | USB_REQ_RECIP_INTERFACE, uid_cdc_state_msg[PORT].header.bNotification = USB_REQ_CDC_NOTIFY_SERIAL_STATE, uid_cdc_state_msg[PORT].header.wValue = LE16(0), uid_cdc_state_msg[PORT].header.wIndex = LE16(UDI_CDC_COMM_IFACE_NUMBER), uid_cdc_state_msg[PORT].header.wLength = LE16(2), uid_cdc_state_msg[PORT].value = CPU_TO_LE16(0); udi_cdc_line_coding[PORT].dwDTERate = CPU_TO_LE32(UDI_CDC_DEFAULT_RATE); udi_cdc_line_coding[PORT].bCharFormat = UDI_CDC_DEFAULT_STOPBITS; udi_cdc_line_coding[PORT].bParityType = UDI_CDC_DEFAULT_PARITY; udi_cdc_line_coding[PORT].bDataBits = UDI_CDC_DEFAULT_DATABITS; // Call application callback // to initialize memories or indicate that interface is enabled #if UDI_CDC_PORT_NB == 1 UDI_CDC_SET_CODING_EXT((&udi_cdc_line_coding[0])); return UDI_CDC_ENABLE_EXT(); #else UDI_CDC_SET_CODING_EXT(port,(&udi_cdc_line_coding[port])); return UDI_CDC_ENABLE_EXT(port); #endif }
static void udi_cdc_line_coding_received_common(uint8_t port) { // Send line coding to component associated to CDC #if UDI_CDC_PORT_NB == 1 UDI_CDC_SET_CODING_EXT((&udi_cdc_line_coding[0])); #else UDI_CDC_SET_CODING_EXT(port, (&udi_cdc_line_coding[port])); #endif }
static void udi_cdc_line_coding_received(void) { uint8_t port = udi_cdc_setup_to_port(); UNUSED(port); UDI_CDC_SET_CODING_EXT(port, (&udi_cdc_line_coding[port])); }
bool udi_cdc_comm_enable(void) { uint8_t port; uint8_t iface_comm_num; #if UDI_CDC_PORT_NB == 1 // To optimize code port = 0; udi_cdc_nb_comm_enabled = 0; #else if (udi_cdc_nb_comm_enabled > UDI_CDC_PORT_NB) { udi_cdc_nb_comm_enabled = 0; } port = udi_cdc_nb_comm_enabled; #endif // Initialize control signal management udi_cdc_state[port] = CPU_TO_LE16(0); uid_cdc_state_msg[port].header.bmRequestType = USB_REQ_DIR_IN | USB_REQ_TYPE_CLASS | USB_REQ_RECIP_INTERFACE; uid_cdc_state_msg[port].header.bNotification = USB_REQ_CDC_NOTIFY_SERIAL_STATE; uid_cdc_state_msg[port].header.wValue = LE16(0); switch (port) { #define UDI_CDC_PORT_TO_IFACE_COMM(index, unused) \ case index: \ iface_comm_num = UDI_CDC_COMM_IFACE_NUMBER_##index; \ break; MREPEAT(UDI_CDC_PORT_NB, UDI_CDC_PORT_TO_IFACE_COMM, ~) #undef UDI_CDC_PORT_TO_IFACE_COMM default: iface_comm_num = UDI_CDC_COMM_IFACE_NUMBER_0; break; } uid_cdc_state_msg[port].header.wIndex = LE16(iface_comm_num); uid_cdc_state_msg[port].header.wLength = LE16(2); uid_cdc_state_msg[port].value = CPU_TO_LE16(0); udi_cdc_line_coding[port].dwDTERate = CPU_TO_LE32(UDI_CDC_DEFAULT_RATE); udi_cdc_line_coding[port].bCharFormat = UDI_CDC_DEFAULT_STOPBITS; udi_cdc_line_coding[port].bParityType = UDI_CDC_DEFAULT_PARITY; udi_cdc_line_coding[port].bDataBits = UDI_CDC_DEFAULT_DATABITS; // Call application callback // to initialize memories or indicate that interface is enabled UDI_CDC_SET_CODING_EXT(port,(&udi_cdc_line_coding[port])); if (!UDI_CDC_ENABLE_EXT(port)) { return false; } udi_cdc_nb_comm_enabled++; return true; }
bool udi_cdc_comm_enable(void) { // Initialize control signal management udi_cdc_state = CPU_TO_LE16(0); uid_cdc_state_msg.value = CPU_TO_LE16(0); udi_cdc_line_coding.dwDTERate = CPU_TO_LE32(UDI_CDC_DEFAULT_RATE); udi_cdc_line_coding.bCharFormat = UDI_CDC_DEFAULT_STOPBITS; udi_cdc_line_coding.bParityType = UDI_CDC_DEFAULT_PARITY; udi_cdc_line_coding.bDataBits = UDI_CDC_DEFAULT_DATABITS; UDI_CDC_SET_CODING_EXT((&udi_cdc_line_coding)); // Call application callback // to initialize memories or indicate that interface is enabled return UDI_CDC_ENABLE_EXT(); }
void udi_cdc_line_coding_received(void) { // Send line coding to component associated to CDC UDI_CDC_SET_CODING_EXT((&udi_cdc_line_coding)); }