71 lines
1.4 KiB
C
71 lines
1.4 KiB
C
#include "main.h"
|
|
#include "board.h"
|
|
|
|
int connected = 0;
|
|
|
|
FILE USBSerialStream;
|
|
|
|
USB_ClassInfo_CDC_Device_t VirtualSerial_CDC_Interface =
|
|
{
|
|
.Config =
|
|
{
|
|
.ControlInterfaceNumber = INTERFACE_ID_CDC_CCI,
|
|
.DataINEndpoint =
|
|
{
|
|
.Address = CDC_TX_EPADDR,
|
|
.Size = CDC_TXRX_EPSIZE,
|
|
.Banks = 1,
|
|
},
|
|
.DataOUTEndpoint =
|
|
{
|
|
.Address = CDC_RX_EPADDR,
|
|
.Size = CDC_TXRX_EPSIZE,
|
|
.Banks = 1,
|
|
},
|
|
.NotificationEndpoint =
|
|
{
|
|
.Address = CDC_NOTIFICATION_EPADDR,
|
|
.Size = CDC_NOTIFICATION_EPSIZE,
|
|
.Banks = 1,
|
|
},
|
|
},
|
|
};
|
|
|
|
void EVENT_USB_Device_Connect(void)
|
|
{
|
|
}
|
|
|
|
void EVENT_USB_Device_Disconnect(void)
|
|
{
|
|
SysLedOff();
|
|
connected = 0;
|
|
}
|
|
|
|
void EVENT_USB_Device_ConfigurationChanged(void)
|
|
{
|
|
bool ConfigSuccess = true;
|
|
|
|
ConfigSuccess &= CDC_Device_ConfigureEndpoints(&VirtualSerial_CDC_Interface);
|
|
|
|
if (ConfigSuccess) {
|
|
SysLedOn();
|
|
}
|
|
}
|
|
|
|
void EVENT_USB_Device_ControlRequest(void)
|
|
{
|
|
CDC_Device_ProcessControlRequest(&VirtualSerial_CDC_Interface);
|
|
}
|
|
|
|
void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t *const CDCInterfaceInfo)
|
|
{
|
|
bool HostReady = (CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR) != 0;
|
|
connected = HostReady;
|
|
if (connected) {
|
|
SysLedOn();
|
|
} else {
|
|
SysLedOff();
|
|
}
|
|
}
|
|
|