63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#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;
 | 
						|
}
 | 
						|
/*---------------------------------------------------------------------------*/
 |