From 6649286b2f4917b87ecdd790eba138aefcf2b210 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 12 Sep 2012 20:14:46 +0000 Subject: Add UDP discovery configuration for the STM3240G-EVAL (from Max Holtzberg) git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5138 42af7a65-404d-4744-a932-0658087f49c3 --- apps/examples/Kconfig | 100 +++++++++++++++++++++-------------------- apps/examples/Make.defs | 4 ++ apps/examples/Makefile | 14 +++--- apps/examples/README.txt | 2 +- apps/examples/discover/Kconfig | 7 ++- apps/examples/discover/main.c | 44 +++++++++--------- 6 files changed, 91 insertions(+), 80 deletions(-) (limited to 'apps/examples') diff --git a/apps/examples/Kconfig b/apps/examples/Kconfig index a20f7c2e7..786012593 100644 --- a/apps/examples/Kconfig +++ b/apps/examples/Kconfig @@ -3,115 +3,115 @@ # see misc/tools/kconfig-language.txt. # -menu "ADC example" +menu "ADC Example" source "$APPSDIR/examples/adc/Kconfig" endmenu -menu "Buttons example" +menu "Buttons Example" source "$APPSDIR/examples/buttons/Kconfig" endmenu -menu "CAN example" +menu "CAN Example" source "$APPSDIR/examples/can/Kconfig" endmenu -menu "USB CDC/ACM class driver example" +menu "USB CDC/ACM Class Driver Example" source "$APPSDIR/examples/cdcacm/Kconfig" endmenu -menu "USB composite class driver example" +menu "USB composite Class Driver Example" source "$APPSDIR/examples/composite/Kconfig" endmenu -menu "DHCP server example" +menu "DHCP Server Example" source "$APPSDIR/examples/dhcpd/Kconfig" endmenu -menu "FTP client example" +menu "FTP Client Example" source "$APPSDIR/examples/ftpc/Kconfig" endmenu -menu "FTP server example" +menu "FTP Server Example" source "$APPSDIR/examples/ftpd/Kconfig" endmenu -menu "\"Hello, World!\" example" +menu "\"Hello, World!\" Example" source "$APPSDIR/examples/hello/Kconfig" endmenu -menu "\"Hello, World!\" C++ example" +menu "\"Hello, World!\" C++ Example" source "$APPSDIR/examples/helloxx/Kconfig" endmenu -menu "USB HID keyboard example" +menu "USB HID Keyboard Example" source "$APPSDIR/examples/hidkbd/Kconfig" endmenu -menu "IGMP example" +menu "IGMP Example" source "$APPSDIR/examples/igmp/Kconfig" endmenu -menu "LCD read/write example" +menu "LCD Read/Write Example" source "$APPSDIR/examples/lcdrw/Kconfig" endmenu -menu "Memory management example" +menu "Memory Management Example" source "$APPSDIR/examples/mm/Kconfig" endmenu -menu "File system mount example" +menu "File System Mount Example" source "$APPSDIR/examples/mount/Kconfig" endmenu -menu "FreeModBus example" +menu "FreeModBus Example" source "$APPSDIR/examples/modbus/Kconfig" endmenu -menu "Network test example" +menu "Network Test Example" source "$APPSDIR/examples/nettest/Kconfig" endmenu -menu "NuttShell (NSH) example" +menu "NuttShell (NSH) Example" source "$APPSDIR/examples/nsh/Kconfig" endmenu -menu "NULL example" +menu "NULL Example" source "$APPSDIR/examples/null/Kconfig" endmenu -menu "NX graphics example" +menu "NX Graphics Example" source "$APPSDIR/examples/nx/Kconfig" endmenu -menu "NxConsole example" +menu "NxConsole Example" source "$APPSDIR/examples/nxconsole/Kconfig" endmenu -menu "NXFFS file system example" +menu "NXFFS File System Example" source "$APPSDIR/examples/nxffs/Kconfig" endmenu -menu "NXFLAT example" +menu "NXFLAT Example" source "$APPSDIR/examples/nxflat/Kconfig" endmenu -menu "NX graphics \"Hello, World!\" example" +menu "NX Graphics \"Hello, World!\" Example" source "$APPSDIR/examples/nxhello/Kconfig" endmenu -menu "NX graphics image example" +menu "NX Graphics image Example" source "$APPSDIR/examples/nximage/Kconfig" endmenu -menu "NX graphics lines example" +menu "NX Graphics lines Example" source "$APPSDIR/examples/nxlines/Kconfig" endmenu -menu "NX graphics text example" +menu "NX Graphics Text Example" source "$APPSDIR/examples/nxtext/Kconfig" endmenu -menu "OS test example" +menu "OS Test Example" source "$APPSDIR/examples/ostest/Kconfig" endmenu @@ -119,82 +119,86 @@ menu "Pascal \"Hello, World!\"example" source "$APPSDIR/examples/pashello/Kconfig" endmenu -menu "Pipe example" +menu "Pipe Example" source "$APPSDIR/examples/pipe/Kconfig" endmenu -menu "Poll example" +menu "Poll Example" source "$APPSDIR/examples/poll/Kconfig" endmenu -menu "Pulse width modulation (PWM) example" +menu "Pulse Width Modulation (PWM) Example" source "$APPSDIR/examples/pwm/Kconfig" endmenu -menu "Quadrature encoder example" +menu "Quadrature Encoder Example" source "$APPSDIR/examples/qencoder/Kconfig" endmenu -menu "RGMP example" +menu "RGMP Example" source "$APPSDIR/examples/rgmp/Kconfig" endmenu -menu "ROMFS example" +menu "ROMFS Example" source "$APPSDIR/examples/romfs/Kconfig" endmenu -menu "sendmail example" +menu "sendmail Example" source "$APPSDIR/examples/sendmail/Kconfig" endmenu -menu "Serial loopback example" +menu "Serial Loopback Example" source "$APPSDIR/examples/serloop/Kconfig" endmenu -menu "Telnet daemon example" +menu "Telnet Daemon Example" source "$APPSDIR/examples/telnetd/Kconfig" endmenu -menu "THTTPD web server example" +menu "THTTPD Web Server Example" source "$APPSDIR/examples/thttpd/Kconfig" endmenu -menu "TIFF generation example" +menu "TIFF Generation Example" source "$APPSDIR/examples/tiff/Kconfig" endmenu -menu "Touchscreen example" +menu "Touchscreen Example" source "$APPSDIR/examples/touchscreen/Kconfig" endmenu -menu "UDP example" +menu "UDP Example" source "$APPSDIR/examples/udp/Kconfig" endmenu -menu "uIP web server example" +menu "UDP Discovery Daemon Example" +source "$APPSDIR/examples/discover/Kconfig" +endmenu + +menu "uIP Web Server Example" source "$APPSDIR/examples/uip/Kconfig" endmenu -menu "USB serial test example" +menu "USB Serial Test Example" source "$APPSDIR/examples/usbserial/Kconfig" endmenu -menu "USB mass storage class example" +menu "USB Mass Storage Class Example" source "$APPSDIR/examples/usbstorage/Kconfig" endmenu -menu "USB serial terminal example" +menu "USB Serial Terminal Example" source "$APPSDIR/examples/usbterm/Kconfig" endmenu -menu "Watchdog timer example" +menu "Watchdog timer Example" source "$APPSDIR/examples/watchdog/Kconfig" endmenu -menu "wget example" +menu "wget Example" source "$APPSDIR/examples/wget/Kconfig" endmenu -menu "WLAN example" +menu "WLAN Example" source "$APPSDIR/examples/wlan/Kconfig" endmenu diff --git a/apps/examples/Make.defs b/apps/examples/Make.defs index aa8d83733..3bc72b52e 100644 --- a/apps/examples/Make.defs +++ b/apps/examples/Make.defs @@ -58,6 +58,10 @@ ifeq ($(CONFIG_EXAMPLES_DHCPD),y) CONFIGURED_APPS += examples/dhcpd endif +ifeq ($(CONFIG_EXAMPLE_DISCOVER),y) +CONFIGURED_APPS += examples/discover +endif + ifeq ($(CONFIG_EXAMPLES_FTPC),y) CONFIGURED_APPS += examples/ftpc endif diff --git a/apps/examples/Makefile b/apps/examples/Makefile index ad5be6497..453f99ce7 100644 --- a/apps/examples/Makefile +++ b/apps/examples/Makefile @@ -37,11 +37,12 @@ # Sub-directories -SUBDIRS = adc buttons can cdcacm composite dhcpd ftpc ftpd hello helloxx \ - hidkbd igmp lcdrw mm modbus mount nettest nsh null nx nxconsole nxffs \ - nxflat nxhello nximage nxlines nxtext ostest pashello pipe poll pwm \ - qencoder rgmp romfs serloop telnetd thttpd tiff touchscreen udp uip \ - usbserial sendmail usbstorage usbterm watchdog wget wlan +SUBDIRS = adc buttons can cdcacm composite dhcpd discover ftpc ftpd hello +SUBDIRS += helloxx hidkbd igmp lcdrw mm modbus mount nettest nsh null nx +SUBDIRS += nxconsole nxffs nxflat nxhello nximage nxlines nxtext ostest +SUBDIRS += pashello pipe poll pwm qencoder rgmp romfs serloop telnetd +SUBDIRS += thttpd tiff touchscreen udp uip usbserial sendmail usbstorage +SUBDIRS += usbterm watchdog wget wlan # Sub-directories that might need context setup. Directories may need # context setup for a variety of reasons, but the most common is because @@ -56,7 +57,8 @@ SUBDIRS = adc buttons can cdcacm composite dhcpd ftpc ftpd hello helloxx \ CNTXTDIRS = pwm ifeq ($(CONFIG_NSH_BUILTIN_APPS),y) -CNTXTDIRS += adc can cdcacm composite ftpd dhcpd modbus nettest qencoder telnetd watchdog +CNTXTDIRS += adc can cdcacm composite discover ftpd dhcpd modbus nettest +CNTXTDIRS += qencoder telnetd watchdog endif ifeq ($(CONFIG_EXAMPLES_HELLO_BUILTIN),y) diff --git a/apps/examples/README.txt b/apps/examples/README.txt index 0d327ebfb..8a7a94c3e 100644 --- a/apps/examples/README.txt +++ b/apps/examples/README.txt @@ -278,7 +278,7 @@ examples/dhcpd examples/discover ^^^^^^^^^^^^^^^^^ - This example execises netutils/discover utility. This example initializes + This example exercises netutils/discover utility. This example initializes and starts the UDP discover daemon. This daemon is useful for discovering devices in local networks, especially with DHCP configured devices. It listens for UDP broadcasts which also can include a device class so that diff --git a/apps/examples/discover/Kconfig b/apps/examples/discover/Kconfig index afdb9ff82..c867b56f3 100644 --- a/apps/examples/discover/Kconfig +++ b/apps/examples/discover/Kconfig @@ -3,7 +3,7 @@ # see misc/tools/kconfig-language.txt. # -config EXAMPLES_DISCOVER +config EXAMPLE_DISCOVER bool "UDP Discovery Example" default n depends on NET_UDP @@ -17,11 +17,13 @@ config EXAMPLES_DISCOVER It is also possible to address all classes with a kind of broadcast discover. -if EXAMPLES_DISCOVER +if EXAMPLE_DISCOVER config EXAMPLE_DISCOVER_DHCPC bool "DHCP Client" default n + select NETUTILS_DHCPC + select NETUTILS_RESOLV config EXAMPLE_DISCOVER_NOMAC bool "Use canned MAC address" @@ -30,6 +32,7 @@ config EXAMPLE_DISCOVER_NOMAC config EXAMPLE_DISCOVER_IPADDR hex "Target IP address" default 0x0a000002 + depends on !EXAMPLE_DISCOVER_DHCPC config EXAMPLE_DISCOVER_DRIPADDR hex "Router IP address" diff --git a/apps/examples/discover/main.c b/apps/examples/discover/main.c index b857e4f68..619995186 100644 --- a/apps/examples/discover/main.c +++ b/apps/examples/discover/main.c @@ -87,7 +87,6 @@ int discover_main(int argc, char *argv[]) { -#ifndef CONFIG_NSH_BUILTIN_APPS struct in_addr addr; #if defined(CONFIG_EXAMPLE_DISCOVER_DHCPC) || defined(CONFIG_EXAMPLE_DISCOVER_NOMAC) uint8_t mac[IFHWADDRLEN]; @@ -147,30 +146,29 @@ int discover_main(int argc, char *argv[]) printf("Getting IP address\n"); if (handle) { - struct dhcpc_state ds; - (void)dhcpc_request(handle, &ds); - uip_sethostaddr("eth1", &ds.ipaddr); - - if (ds.netmask.s_addr != 0) - { - uip_setnetmask("eth0", &ds.netmask); - } - - if (ds.default_router.s_addr != 0) - { - uip_setdraddr("eth0", &ds.default_router); - } - - if (ds.dnsaddr.s_addr != 0) - { - resolv_conf(&ds.dnsaddr); - } - - dhcpc_close(handle); - printf("IP: %s\n", inet_ntoa(ds.ipaddr)); + struct dhcpc_state ds; + (void)dhcpc_request(handle, &ds); + uip_sethostaddr("eth1", &ds.ipaddr); + + if (ds.netmask.s_addr != 0) + { + uip_setnetmask("eth0", &ds.netmask); + } + + if (ds.default_router.s_addr != 0) + { + uip_setdraddr("eth0", &ds.default_router); + } + + if (ds.dnsaddr.s_addr != 0) + { + resolv_conf(&ds.dnsaddr); + } + + dhcpc_close(handle); + printf("IP: %s\n", inet_ntoa(ds.ipaddr)); } #endif -#endif /* CONFIG_NSH_BUILTIN_APPS */ if (discover_start() < 0) { -- cgit v1.2.3