Added serial input from stdin, removed uIP initialization since uIP is not used anyway, made stdout unbuffered

This commit is contained in:
adamdunkels 2008-01-08 08:08:57 +00:00
parent b7ab95499f
commit bd9230b4b3

View file

@ -29,22 +29,25 @@
* *
* This file is part of the Contiki OS * This file is part of the Contiki OS
* *
* $Id: contiki-main.c,v 1.6 2007/11/28 12:54:42 adamdunkels Exp $ * $Id: contiki-main.c,v 1.7 2008/01/08 08:08:57 adamdunkels Exp $
* *
*/ */
#include <stdio.h> #include <stdio.h>
#include <unistd.h>
#include <sys/select.h> #include <sys/select.h>
#include "contiki.h" #include "contiki.h"
#include "dev/serial.h"
#include "net/uip.h" #include "net/uip.h"
#include "dev/button-sensor.h" #include "dev/button-sensor.h"
#include "dev/pir-sensor.h" #include "dev/pir-sensor.h"
#include "dev/vib-sensor.h" #include "dev/vib-sensor.h"
PROCINIT(&etimer_process, &tcpip_process); PROCINIT(&etimer_process, &tcpip_process, &serial_process);
SENSORS(&pir_sensor, &vib_sensor, &button_sensor); SENSORS(&pir_sensor, &vib_sensor, &button_sensor);
@ -52,54 +55,54 @@ SENSORS(&pir_sensor, &vib_sensor, &button_sensor);
int int
main(void) main(void)
{ {
uip_ipaddr_t addr;
process_init(); process_init();
procinit_init(); procinit_init();
autostart_start((struct process **)autostart_processes); autostart_start((struct process **)autostart_processes);
/* Make standard output unbuffered. */
setvbuf(stdout, (char *)NULL, _IONBF, 0);
uip_ipaddr(&addr, 192,168,2,2); printf("Contiki started\n");
uip_sethostaddr(&addr);
uip_ipaddr(&addr, 192,168,2,1);
uip_setdraddr(&addr);
uip_ipaddr(&addr, 255,255,255,0);
uip_setnetmask(&addr);
printf("Contiki initiated, now starting process scheduling\n");
while(1) { while(1) {
fd_set fds;
int n; int n;
struct timeval tv; struct timeval tv;
n = process_run(); n = process_run();
tv.tv_sec = 0; tv.tv_sec = 0;
tv.tv_usec = 1; tv.tv_usec = 1;
select(0, NULL, NULL, NULL, &tv);
FD_ZERO(&fds);
FD_SET(STDIN_FILENO, &fds);
select(1, &fds, NULL, NULL, &tv);
if(FD_ISSET(STDIN_FILENO, &fds)) {
char c;
if(read(STDIN_FILENO, &c, 1) > 0) {
serial_input_byte(c);
}
}
etimer_request_poll(); etimer_request_poll();
} }
return 0; return 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void log_message(char *m1, char *m2) void
log_message(char *m1, char *m2)
{ {
printf("%s%s\n", m1, m2); printf("%s%s\n", m1, m2);
} }
/*---------------------------------------------------------------------------*/
void void
uip_log(char *m) uip_log(char *m)
{ {
printf("%s\n", m); printf("%s\n", m);
} }
/*---------------------------------------------------------------------------*/
/*unsigned short
sensors_light1(void)
{
static unsigned short count;
return count++;
}
*/