//go:build baremetal package cdc import ( "machine/usb" ) const ( cdcEndpointACM = usb.CDC_ENDPOINT_ACM cdcEndpointOut = usb.CDC_ENDPOINT_OUT cdcEndpointIn = usb.CDC_ENDPOINT_IN ) // New returns USBCDC struct. func New() *USBCDC { if USB == nil { USB = &USBCDC{} } return USB } const ( // bmRequestType usb_REQUEST_HOSTTODEVICE = 0x00 usb_REQUEST_DEVICETOHOST = 0x80 usb_REQUEST_DIRECTION = 0x80 usb_REQUEST_STANDARD = 0x00 usb_REQUEST_CLASS = 0x20 usb_REQUEST_VENDOR = 0x40 usb_REQUEST_TYPE = 0x60 usb_REQUEST_DEVICE = 0x00 usb_REQUEST_INTERFACE = 0x01 usb_REQUEST_ENDPOINT = 0x02 usb_REQUEST_OTHER = 0x03 usb_REQUEST_RECIPIENT = 0x1F usb_REQUEST_DEVICETOHOST_CLASS_INTERFACE = (usb_REQUEST_DEVICETOHOST | usb_REQUEST_CLASS | usb_REQUEST_INTERFACE) usb_REQUEST_HOSTTODEVICE_CLASS_INTERFACE = (usb_REQUEST_HOSTTODEVICE | usb_REQUEST_CLASS | usb_REQUEST_INTERFACE) usb_REQUEST_DEVICETOHOST_STANDARD_INTERFACE = (usb_REQUEST_DEVICETOHOST | usb_REQUEST_STANDARD | usb_REQUEST_INTERFACE) // CDC Class requests usb_CDC_SET_LINE_CODING = 0x20 usb_CDC_GET_LINE_CODING = 0x21 usb_CDC_SET_CONTROL_LINE_STATE = 0x22 usb_CDC_SEND_BREAK = 0x23 usb_CDC_V1_10 = 0x0110 usb_CDC_COMMUNICATION_INTERFACE_CLASS = 0x02 usb_CDC_CALL_MANAGEMENT = 0x01 usb_CDC_ABSTRACT_CONTROL_MODEL = 0x02 usb_CDC_HEADER = 0x00 usb_CDC_ABSTRACT_CONTROL_MANAGEMENT = 0x02 usb_CDC_UNION = 0x06 usb_CDC_CS_INTERFACE = 0x24 usb_CDC_CS_ENDPOINT = 0x25 usb_CDC_DATA_INTERFACE_CLASS = 0x0A usb_CDC_LINESTATE_DTR = 0x01 usb_CDC_LINESTATE_RTS = 0x02 )