diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2009-11-17 10:32:17 +0000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2009-11-17 10:32:17 +0000 |
commit | 9b2011455585885748164ab76dfaae76fffb0ff9 (patch) | |
tree | 793afb8d681b07fc84582828735e23e90465d7d7 /Demos/Host | |
parent | 79e54580ae0ce192f6c66a11880136eac483fc29 (diff) | |
download | lufa-9b2011455585885748164ab76dfaae76fffb0ff9.tar.gz lufa-9b2011455585885748164ab76dfaae76fffb0ff9.tar.bz2 lufa-9b2011455585885748164ab76dfaae76fffb0ff9.zip |
Make RNDISHost demo validate the set Packet Filter to ensure that it is being sent correctly.
Add new (incomplete) StandaloneProgrammer project, using the ELM Petite FAT library to read files stored on the board's dataflash by the host.
Diffstat (limited to 'Demos/Host')
3 files changed, 20 insertions, 2 deletions
diff --git a/Demos/Host/Incomplete/RNDISEthernetHost/Lib/RNDISCommands.c b/Demos/Host/Incomplete/RNDISEthernetHost/Lib/RNDISCommands.c index 4802bedb9..b1966142a 100644 --- a/Demos/Host/Incomplete/RNDISEthernetHost/Lib/RNDISCommands.c +++ b/Demos/Host/Incomplete/RNDISEthernetHost/Lib/RNDISCommands.c @@ -72,7 +72,7 @@ uint8_t RNDIS_GetEncapsulatedResponse(void* Buffer, uint16_t Length) return USB_Host_SendControlRequest(Buffer);
}
-uint8_t RNDIS_KeepAlive(void)
+uint8_t RNDIS_SendKeepAlive(void)
{
uint8_t ErrorCode;
diff --git a/Demos/Host/Incomplete/RNDISEthernetHost/Lib/RNDISCommands.h b/Demos/Host/Incomplete/RNDISEthernetHost/Lib/RNDISCommands.h index af3e7cc92..429b4c535 100644 --- a/Demos/Host/Incomplete/RNDISEthernetHost/Lib/RNDISCommands.h +++ b/Demos/Host/Incomplete/RNDISEthernetHost/Lib/RNDISCommands.h @@ -203,7 +203,7 @@ uint8_t RNDIS_SendEncapsulatedCommand(void* Buffer, uint16_t Length);
uint8_t RNDIS_GetEncapsulatedResponse(void* Buffer, uint16_t Length);
- uint8_t RNDIS_KeepAlive(void);
+ uint8_t RNDIS_SendKeepAlive(void);
uint8_t RNDIS_InitializeDevice(uint16_t HostMaxPacketSize, uint16_t* DeviceMaxPacketSize);
uint8_t RNDIS_SetRNDISProperty(uint32_t Oid, void* Buffer, uint16_t Length);
uint8_t RNDIS_QueryRNDISProperty(uint32_t Oid, void* Buffer, uint16_t MaxLength);
diff --git a/Demos/Host/Incomplete/RNDISEthernetHost/RNDISEthernetHost.c b/Demos/Host/Incomplete/RNDISEthernetHost/RNDISEthernetHost.c index c84f0c00c..f3252cd87 100644 --- a/Demos/Host/Incomplete/RNDISEthernetHost/RNDISEthernetHost.c +++ b/Demos/Host/Incomplete/RNDISEthernetHost/RNDISEthernetHost.c @@ -247,6 +247,24 @@ void RNDIS_Host_Task(void) break;
}
+ uint32_t RetrievedPacketFilter;
+ if ((ErrorCode = RNDIS_QueryRNDISProperty(OID_GEN_CURRENT_PACKET_FILTER,
+ &RetrievedPacketFilter, sizeof(RetrievedPacketFilter))) != HOST_SENDCONTROL_Successful)
+ {
+ printf_P(PSTR(ESC_FG_RED "Error Getting Packet Filter.\r\n"
+ " -- Error Code: %d\r\n" ESC_FG_WHITE), ErrorCode);
+
+ /* Indicate error via status LEDs */
+ LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+
+ /* Wait until USB device disconnected */
+ USB_HostState = HOST_STATE_WaitForDeviceRemoval;
+ break;
+ }
+
+ if (RetrievedPacketFilter != PacketFilter)
+ printf("ERROR: Retrieved Packet Filter %08lx != Set Packet Filter %08lx!\r\n", RetrievedPacketFilter, PacketFilter);
+
uint32_t VendorID;
if ((ErrorCode = RNDIS_QueryRNDISProperty(OID_GEN_VENDOR_ID,
&VendorID, sizeof(VendorID))) != HOST_SENDCONTROL_Successful)
|