Better checking of whether a packet is received in the RNDISEthernetHost Class driver demo - show busy LED status while packets are being printed out.

This commit is contained in:
Dean Camera 2009-11-27 06:32:26 +00:00
parent e5057fec8e
commit 958d28d05d
4 changed files with 16 additions and 13 deletions

View file

@ -159,18 +159,21 @@ int main(void)
/** Prints incomming packets from the attached RNDIS device to the serial port. */
void PrintIncommingPackets(void)
{
uint16_t PacketLength;
RNDIS_Host_ReadPacket(&Ethernet_RNDIS_Interface, &PacketBuffer, &PacketLength);
if (PacketLength)
if (RNDIS_Host_IsPacketReceived(&Ethernet_RNDIS_Interface))
{
LEDs_SetAllLEDs(LEDMASK_USB_BUSY);
uint16_t PacketLength;
RNDIS_Host_ReadPacket(&Ethernet_RNDIS_Interface, &PacketBuffer, &PacketLength);
printf("***PACKET (Size %d)***\r\n", PacketLength);
for (uint16_t i = 0; i < PacketLength; i++)
printf("%02x ", PacketBuffer[i]);
printf("\r\n\r\n");
printf("\r\n\r\n");
LEDs_SetAllLEDs(LEDMASK_USB_READY);
}
}

View file

@ -63,6 +63,9 @@
/** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */
#define LEDMASK_USB_ERROR (LEDS_LED1 | LEDS_LED3)
/** LED mask for the library LED driver, to indicate that the USB interface is busy. */
#define LEDMASK_USB_BUSY (LEDS_LED2)
/* Function Prototypes: */
void SetupHardware(void);
void PrintIncommingPackets(void);