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 }