Contiki 2.6

contiki-client-main.c

00001 /*
00002  * Copyright (c) 2007, Takahide Matsutsuka.
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  * 1. Redistributions of source code must retain the above copyright
00009  *    notice, this list of conditions and the following disclaimer.
00010  * 2. Redistributions in binary form must reproduce the above
00011  *    copyright notice, this list of conditions and the following
00012  *    disclaimer in the documentation and/or other materials provided
00013  *    with the distribution.
00014  * 3. The name of the author may not be used to endorse or promote
00015  *    products derived from this software without specific prior
00016  *    written permission.
00017  *
00018  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
00019  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
00020  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00021  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
00022  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00023  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
00024  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00025  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00026  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00027  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00028  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00029  *
00030  * $Id: contiki-client-main.c,v 1.2 2007/11/28 06:14:11 matsutsuka Exp $
00031  *
00032  */
00033 
00034 /*
00035  * \file
00036  *      This is a sample main file with slip network.
00037  * \author
00038  *      Takahide Matsutsuka <markn@markn.org>
00039  */
00040 
00041 //#define WITH_LOADER_ARCH              1
00042 
00043 #include "contiki.h"
00044 
00045 /* devices */
00046 #include "net/uip.h"
00047 #include "net/uip-fw-drv.h"
00048 #include "dev/slip.h"
00049 #include "dev/rs232.h"
00050 #include "sys/process.h"
00051 
00052 /* desktop programs */
00053 #include "program-handler.h"
00054 //#include "process-list-dsc.h"
00055 
00056 /* network programs */
00057 #include "netconf-dsc.h"
00058 #include "www-dsc.h"
00059 #include "telnet-dsc.h"
00060 //#include "dhcp-dsc.h"
00061 #include "email-dsc.h"
00062 #include "ftp-dsc.h"
00063 #include "irc-dsc.h"
00064 
00065 
00066 /*---------------------------------------------------------------------------*/
00067 /* inteface */
00068 static struct uip_fw_netif slipif =
00069   {UIP_FW_NETIF(0, 0, 0, 0,  0, 0, 0, 0, slip_send)};
00070 
00071 /* ip address of contiki */
00072 const uip_ipaddr_t hostaddr = { { 10, 0, 1, 10 } };
00073 
00074 PROCESS_NAME(netconf_process);
00075 PROCESS_NAME(email_process);
00076 PROCESS_NAME(www_process);
00077 PROCESS_NAME(simpletelnet_process);
00078 PROCESS_NAME(ftp_process);
00079 PROCESS_NAME(irc_process);
00080 
00081 /*---------------------------------------------------------------------------*/
00082 int
00083 main(void)
00084 {
00085   /* initialize process manager. */
00086   process_init();
00087 
00088   uip_init();
00089   uip_sethostaddr(&hostaddr);
00090   uip_fw_default(&slipif);
00091 
00092   /* start services */
00093   process_start(&etimer_process, NULL);
00094   process_start(&ctk_process, NULL);
00095 //  process_start(&program_handler_process, NULL);
00096   process_start(&tcpip_process, NULL);
00097   process_start(&slip_process, NULL);
00098   process_start(&uip_fw_process, NULL);
00099   process_start(&rs232_process, NULL);
00100 
00101 //  process_start(&email_process, NULL);
00102 //  process_start(&www_process, NULL);
00103 //  process_start(&ftp_process, NULL);
00104 //  process_start(&irc_process, NULL);
00105 
00106 //  process_start(&netconf_process, NULL);
00107   process_start(&simpletelnet_process, NULL);
00108 
00109 #if 0
00110   /* register programs to the program handler */
00111   program_handler_add(&processes_dsc, "Processes", 1);
00112   program_handler_add(&netconf_dsc, "Network conf", 1);
00113   program_handler_add(&email_dsc, "E-mail", 1);
00114   program_handler_add(&irc_dsc, "IRC", 1);
00115   program_handler_add(&vnc_dsc, "VNC client", 1);
00116   program_handler_add(&dhcp_dsc, "DHCP client", 1);
00117 #endif
00118   while(1) {
00119     process_run();
00120     etimer_request_poll();
00121   }
00122 }