diff options
Diffstat (limited to 'components/net/uip/doc/example-mainloop-without-arp.c')
| -rw-r--r-- | components/net/uip/doc/example-mainloop-without-arp.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/components/net/uip/doc/example-mainloop-without-arp.c b/components/net/uip/doc/example-mainloop-without-arp.c new file mode 100644 index 0000000000..85800e3ae4 --- /dev/null +++ b/components/net/uip/doc/example-mainloop-without-arp.c @@ -0,0 +1,62 @@ +#include "uip.h" +#include "uip_arp.h" +#include "network-device.h" +#include "httpd.h" +#include "timer.h" + +/*---------------------------------------------------------------------------*/ +int +main(void) +{ + int i; + uip_ipaddr_t ipaddr; + struct timer periodic_timer; + + timer_set(&periodic_timer, CLOCK_SECOND / 2); + + network_device_init(); + uip_init(); + + uip_ipaddr(ipaddr, 192,168,0,2); + uip_sethostaddr(ipaddr); + + httpd_init(); + + while(1) { + uip_len = network_device_read(); + if(uip_len > 0) { + uip_input(); + /* If the above function invocation resulted in data that + should be sent out on the network, the global variable + uip_len is set to a value > 0. */ + if(uip_len > 0) { + network_device_send(); + } + } else if(timer_expired(&periodic_timer)) { + timer_reset(&periodic_timer); + for(i = 0; i < UIP_CONNS; i++) { + uip_periodic(i); + /* If the above function invocation resulted in data that + should be sent out on the network, the global variable + uip_len is set to a value > 0. */ + if(uip_len > 0) { + network_device_send(); + } + } + +#if UIP_UDP + for(i = 0; i < UIP_UDP_CONNS; i++) { + uip_udp_periodic(i); + /* If the above function invocation resulted in data that + should be sent out on the network, the global variable + uip_len is set to a value > 0. */ + if(uip_len > 0) { + network_device_send(); + } + } +#endif /* UIP_UDP */ + } + } + return 0; +} +/*---------------------------------------------------------------------------*/ |
