diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt index 0ef0fbc95d..cdffd3c47b 100644 --- a/LUFA/ManPages/ChangeLog.txt +++ b/LUFA/ManPages/ChangeLog.txt @@ -16,6 +16,7 @@ * for PDI and TPI programming * - Increased the speed of both software and hardware TPI/PDI programming modes of the AVRISP project * - Added a timeout value to the TWI_StartTransmission() function, within which the addressed device must respond + * - Webserver project now uses the board LEDs to indicate the current IP configuration state * * Fixed: * - Fixed software PDI/TPI programming mode in the AVRISP project not correctly toggling just the clock pin diff --git a/LUFA/ManPages/LUFAPoweredProjects.txt b/LUFA/ManPages/LUFAPoweredProjects.txt index 9fd0c5faa1..2d6feac35d 100644 --- a/LUFA/ManPages/LUFAPoweredProjects.txt +++ b/LUFA/ManPages/LUFAPoweredProjects.txt @@ -24,6 +24,7 @@ * - Micropendous, an open design/source set of AVR USB development boards: http://micropendous.org/ * - Nanduino, a do-it-yourself AT90USB162 board: http://www.makestuff.eu/wordpress/?page_id=569 * - Teensy and Teensy++, two other AVR USB development boards: http://www.pjrc.com/teensy/index.html + * - U2DIL/U4DIL, a set of DIP layout USB AVR boards: http://www.reworld.eu/re/en/products/u2dil/ * - USB10 AKA "The Ferret", a AT90USB162 development board: http://www.soc-machines.com * - USBFoo, an AT90USB162 based development board: http://shop.kernelconcepts.de/product_info.php?products_id=102 * diff --git a/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/diskio.c b/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/diskio.c index bcf1674f98..c0393dd84c 100644 --- a/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/diskio.c +++ b/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/diskio.c @@ -41,8 +41,6 @@ DRESULT disk_readp ( ErrorCode = RES_NOTRDY; else if (MS_Host_ReadDeviceBlocks(&DiskHost_MS_Interface, 0, sector, 1, 512, BlockTemp)) ErrorCode = RES_ERROR; - - MS_Host_ReadDeviceBlocks(&DiskHost_MS_Interface, 0, sector, 1, 512, BlockTemp); #endif } else diff --git a/Projects/Webserver/Lib/DHCPClientApp.c b/Projects/Webserver/Lib/DHCPClientApp.c index cf512734e5..01cbb7e264 100644 --- a/Projects/Webserver/Lib/DHCPClientApp.c +++ b/Projects/Webserver/Lib/DHCPClientApp.c @@ -156,7 +156,10 @@ void DHCPClientApp_Callback(void) uip_setnetmask((uip_ipaddr_t*)&AppState->DHCPClient.DHCPOffer_Data.Netmask); uip_setdraddr((uip_ipaddr_t*)&AppState->DHCPClient.DHCPOffer_Data.GatewayIP); - AppState->DHCPClient.CurrentState = DHCP_STATE_AddressLeased; + /* Indicate to the user that we now have a valid IP configuration */ + HaveIPConfiguration = true; + + AppState->DHCPClient.CurrentState = DHCP_STATE_AddressLeased; } break; diff --git a/Projects/Webserver/Lib/HTTPServerApp.c b/Projects/Webserver/Lib/HTTPServerApp.c index 4e00952f36..1a1d2c4bf6 100644 --- a/Projects/Webserver/Lib/HTTPServerApp.c +++ b/Projects/Webserver/Lib/HTTPServerApp.c @@ -77,7 +77,7 @@ const MIME_Type_t MIMETypes[] = {.Extension = "pdf", .MIMEType = "application/pdf"}, }; -/** FAT Fs structure to hold the internal state of the FAT driver for the dataflash contents. */ +/** FATFs structure to hold the internal state of the FAT driver for the dataflash contents. */ FATFS DiskFATState; diff --git a/Projects/Webserver/Lib/uIPManagement.c b/Projects/Webserver/Lib/uIPManagement.c index bd7804e6e7..3a9db3462e 100644 --- a/Projects/Webserver/Lib/uIPManagement.c +++ b/Projects/Webserver/Lib/uIPManagement.c @@ -46,6 +46,7 @@ struct timer ARPTimer; /** MAC address of the RNDIS device, when enumerated */ struct uip_eth_addr MACAddress; +bool HaveIPConfiguration; /** Configures the uIP stack ready for network traffic. */ void uIPManagement_Init(void) @@ -62,8 +63,10 @@ void uIPManagement_Init(void) /* DHCP/Server IP Settings Initialization */ #if defined(ENABLE_DHCP_CLIENT) + HaveIPConfiguration = false; DHCPClientApp_Init(); #else + HaveIPConfiguration = true; uip_ipaddr_t IPAddress, Netmask, GatewayIPAddress; uip_ipaddr(&IPAddress, DEVICE_IP_ADDRESS[0], DEVICE_IP_ADDRESS[1], DEVICE_IP_ADDRESS[2], DEVICE_IP_ADDRESS[3]); uip_ipaddr(&Netmask, DEVICE_NETMASK[0], DEVICE_NETMASK[1], DEVICE_NETMASK[2], DEVICE_NETMASK[3]); @@ -169,7 +172,7 @@ static void uIPManagement_ProcessIncomingPacket(void) } } - LEDs_SetAllLEDs(LEDMASK_USB_READY); + LEDs_SetAllLEDs(LEDMASK_USB_READY | ((HaveIPConfiguration) ? LEDMASK_UIP_READY : LEDMASK_UIP_READY_NOCONFIG)); } /** Manages the currently open network connections, including TCP and (if enabled) UDP. */ diff --git a/Projects/Webserver/Lib/uIPManagement.h b/Projects/Webserver/Lib/uIPManagement.h index 90b47ede9b..ed02374f50 100644 --- a/Projects/Webserver/Lib/uIPManagement.h +++ b/Projects/Webserver/Lib/uIPManagement.h @@ -63,6 +63,8 @@ /* External Variables: */ extern struct uip_eth_addr MACAddress; + extern bool HaveIPConfiguration; + /* Function Prototypes: */ void uIPManagement_Init(void); void uIPManagement_ManageNetwork(void); diff --git a/Projects/Webserver/Webserver.h b/Projects/Webserver/Webserver.h index a9621e32fa..f1351d8913 100644 --- a/Projects/Webserver/Webserver.h +++ b/Projects/Webserver/Webserver.h @@ -53,19 +53,25 @@ /* Macros: */ /** LED mask for the library LED driver, to indicate that the USB interface is not ready. */ - #define LEDMASK_USB_NOTREADY LEDS_LED1 + #define LEDMASK_USB_NOTREADY LEDS_LED1 /** LED mask for the library LED driver, to indicate that the USB interface is enumerating. */ - #define LEDMASK_USB_ENUMERATING (LEDS_LED2 | LEDS_LED3) + #define LEDMASK_USB_ENUMERATING (LEDS_LED1 | LEDS_LED2) /** LED mask for the library LED driver, to indicate that the USB interface is ready. */ - #define LEDMASK_USB_READY (LEDS_LED2 | LEDS_LED4) + #define LEDMASK_USB_READY LEDS_LED2 /** 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) + #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 + #define LEDMASK_USB_BUSY (LEDS_LED1 | LEDS_LED3 | LEDS_LED4) + + /** LED mask for the uIP stack idling with no IP configuration */ + #define LEDMASK_UIP_READY_NOCONFIG LEDS_LED3 + + /** LED mask for the uIP stack idling with a valid IP configuration */ + #define LEDMASK_UIP_READY_CONFIG LEDS_LED4 /* Function Prototypes: */ void SetupHardware(void); diff --git a/makefile b/makefile index 2c7aeeed63..421c077486 100644 --- a/makefile +++ b/makefile @@ -13,18 +13,14 @@ # "make doxygen" to document everything with DoxyGen (if installed) and # "make clean_doxygen" to remove generated Doxygen documentation from everything. -# It is suggested that for the master build, the --quiet switch is passed to make, -# to remove all the commands from the output. This gives a much easier to read -# report of the entire build process. - all: %: @echo Executing \"make $@\" on all LUFA library elements. @echo - make -C LUFA/ $@ - make -C Demos/ $@ - make -C Projects/ $@ - make -C Bootloaders/ $@ + make -C LUFA/ $@ -s + make -C Demos/ $@ -s + make -C Projects/ $@ -s + make -C Bootloaders/ $@ -s @echo @echo LUFA \"make $@\" operation complete.