/*
LUFA Library
- Copyright (C) Dean Camera, 2016.
+ Copyright (C) Dean Camera, 2021.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2016 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2021 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
#include "RNDISEthernet.h"
+/** Global to store the incoming frame from the host before it is processed by the device. */
+static Ethernet_Frame_Info_t FrameIN;
+
+/** Global to store the outgoing frame created in the device before it is sent to the host. */
+static Ethernet_Frame_Info_t FrameOUT;
+
/** Main program entry point. This routine configures the hardware required by the application, then
* enters a loop to run the application tasks in sequence.
*/
{
SetupHardware();
- /* Webserver Initialization */
- TCP_Init();
- Webserver_Init();
-
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
GlobalInterruptEnable();
for (;;)
{
Ethernet_Task();
- TCP_Task();
RNDIS_Task();
USB_USBTask();
}
*/
void EVENT_USB_Device_ControlRequest(void)
{
+ /* Send MS OS Compatibility descriptor if requested by the host. */
+ CheckIfMSCompatibilityDescriptorRequest();
+
/* Process RNDIS class commands */
switch (USB_ControlRequest.bRequest)
{
/* Indicate packet processing started */
LEDs_SetAllLEDs(LEDMASK_USB_BUSY);
- /* Process the ethernet frame - replace this with your own Ethernet handler code as desired */
- Ethernet_ProcessPacket();
+ // TODO: Process FrameIN here, and optionally fill FrameOUT.
/* Indicate packet processing complete */
LEDs_SetAllLEDs(LEDMASK_USB_READY);