Provide the required means to establish WiFi connections to any network.
Requirements
[x] Connect to known WiFi networks
[x] IPv4
IPv6 Removed from initial implementation, moved to #14
[x] Accept network configuration by DHCP
Provide static network configurationRemoved from initial implementation, moved to #13
[x] Try to connect to a (reachable) known network x times
[x] Make x configurable (at build time)
Store credentials/configuration for up to x different networksDesign Decision: Initial implementation will only provide WiFi settings for the actual current use!
Make x configurable (at build time)
[x] Make the credentials/configurations configurable (by web interface, see #7)
[x] Launch access point, if no known WiFi is reachable
[x] Provide SSID / PSK (at build time)
Make SSID / PSK configurable (by web interface)
[x] Provide network configuration by DHCP to connecting clients
Provide DNS for connecting clients (resolve all requests to AP's IP)Removed from initial implementation, moved to #11
[x] IPv4
IPv6?Design Decision: Access Point mode does not need IPv6 (for now)!
Make credentials/configuration for networks configurable (by web interface, see #7)Credentials/configuration for the access point mode are only configurable during build time (by sdkconfig / menuconfig)
[x] Keep the access point available for x seconds
[x] Make x configurable (at build time)
[x] Shutdown the access point and poweroff the wifi after x seconds, if no connection to a known network could be established (save energy)
[x] connections to the access point should reset this timer or active connections should prohibit shutdown
trigger restart of the access point by some means of input (e.g. GPIO-based button, RFID, ...)This is easily possible by calling networking_start() again.
Publish WiFi status to other components of the application (e.g. display, GPIO-driven LEDs, #7, ...)Removed from initial implementation, moved to #16
Provide the required means to establish WiFi connections to any network.
Requirements
Provide static network configurationRemoved from initial implementation, moved to #13x
timesx
configurable (at build time)Store credentials/configuration for up toDesign Decision: Initial implementation will only provide WiFi settings for the actual current use!x
different networksMakex
configurable (at build time)Make SSID / PSK configurable (by web interface)Provide DNS for connecting clients (resolve all requests to AP's IP)Removed from initial implementation, moved to #11IPv6?Design Decision: Access Point mode does not need IPv6 (for now)!Make credentials/configuration for networks configurable (by web interface, see #7)Credentials/configuration for the access point mode are only configurable during build time (bysdkconfig
/menuconfig
)x
secondsx
configurable (at build time)x
seconds, if no connection to a known network could be established (save energy)trigger restart of the access point by some means of input (e.g. GPIO-based button, RFID, ...)This is easily possible by callingnetworking_start()
again.Publish WiFi status to other components of the application (e.g. display, GPIO-driven LEDs, #7, ...)Removed from initial implementation, moved to #16Resources