/*---------------------------------------------------------------------------*/ PROCESS_THREAD(eth64_drv_process, ev, data) { PROCESS_POLLHANDLER(pollhandler()); PROCESS_BEGIN(); uip_setethaddr(addr); init_eth64(); lan91c96_init(); ctk_window_new(&window, DUMP_WIDTH, DUMP_HEIGHT, "RR-Net dump"); CTK_WIDGET_ADD(&window, &dumplabel); ctk_window_open(&window); SERVICE_REGISTER(eth64_drv_service); process_poll(ð64_drv_process); while(1) { PROCESS_WAIT_EVENT_UNTIL(ev == PROCESS_EVENT_EXIT); } ctk_window_close(&window); PROCESS_END(); }
PROCESS_THREAD(adc_read_process, ev, data) { PROCESS_POLLHANDLER(pollhandler()); PROCESS_BEGIN(); PROCESS_PAUSE(); process_poll(&adc_read_process); while(1) { PROCESS_YIELD(); } PROCESS_END(); }
/*---------------------------------------------------------------------------*/ PROCESS_THREAD(cc1101_process, ev, data) { PROCESS_POLLHANDLER(pollhandler()); PROCESS_BEGIN(); #if 0 while(1) { static struct etimer et; uint8_t rxbytes, txbytes; etimer_set(&et, CLOCK_SECOND * 4); PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et)); // cc1101_rx_interrupt(); burst_read(CC1101_RXBYTES, &rxbytes, 1); burst_read(CC1101_TXBYTES, &txbytes, 1); printf("state 0x%02x rxbytes 0x%02x txbytes 0x%02x\n", state(), rxbytes, txbytes); on(); } #endif /* 0 */ PROCESS_YIELD_UNTIL(ev == PROCESS_EVENT_EXIT); PROCESS_END(); }
PROCESS_THREAD(drvr_process, ev, data) { PROCESS_POLLHANDLER(pollhandler()); PROCESS_BEGIN(); // kick off the pollhandler process_poll(&drvr_process); while (1) { PROCESS_YIELD(); } PROCESS_END(); }
PROCESS_THREAD(raven_relay_process, ev, data) { uip_ipaddr_t ipaddr; PROCESS_POLLHANDLER(pollhandler()); PROCESS_EXITHANDLER(exithandler()); // see: http://senstools.gforge.inria.fr/doku.php?id=contiki:examples PROCESS_BEGIN(); PRINTF("Relay process startup.\r\n"); // wait 3 second, in order to have the IP addresses well configured etimer_set(&udp_periodic_timer, CLOCK_CONF_SECOND*3); // wait until the timer has expired PROCESS_WAIT_EVENT_UNTIL(ev == PROCESS_EVENT_TIMER); // Define Address of the server that receives our heartbeats. // TODO: Make this dynamic #ifdef UDP_ADDR_A uip_ip6addr(&ipaddr, UDP_ADDR_A,UDP_ADDR_B,UDP_ADDR_C,UDP_ADDR_D, UDP_ADDR_E,UDP_ADDR_F,UDP_ADDR_G,UDP_ADDR_H); #else /* UDP_ADDR_A */ uip_ip6addr(&ipaddr,0xbbbb,0,0,0,0xd69a,0x20ff,0xfe07,0x7664); #endif /* UDP_ADDR_A */ udpconn = udp_new(NULL, HTONS(0), NULL); //udpconn = udp_new(&ipaddr, HTONS(0xF0B0+1), NULL); udp_bind(udpconn, HTONS(0xF0B0)); // udp_attach(udpconn, NULL); PRINTF("Created connection with remote peer "); PRINT6ADDR(&udpconn->ripaddr); PRINTF("\r\nlocal/remote port %u/%u\r\n", HTONS(udpconn->lport),HTONS(udpconn->rport)); print_local_addresses(); etimer_set(&udp_periodic_timer, 60*CLOCK_SECOND); while(1){ PRINTF("--- Relay: Waiting for events.\r\n"); // tcpip_poll_udp(udpconn); PROCESS_WAIT_EVENT(); // PROCESS_YIELD(); udphandler(ev, data); } PROCESS_END(); }
/*---------------------------------------------------------------------------*/ PROCESS_THREAD(ethernet_process, ev, data) { PROCESS_POLLHANDLER(pollhandler()); PROCESS_BEGIN(); ethernet_init((struct ethernet_config *)data); tcpip_set_outputfunc(ethernet_output); process_poll(ðernet_process); PROCESS_WAIT_UNTIL(ev == PROCESS_EVENT_EXIT); ethernet_exit(); PROCESS_END(); }
/*---------------------------------------------------------------------------*/ PROCESS_THREAD(rtl8019_process, ev, data) { PROCESS_POLLHANDLER(pollhandler()); PROCESS_BEGIN(); RTL8019dev_init(); tcpip_set_outputfunc(rtl8019_output); process_poll(&rtl8019_process); PROCESS_WAIT_UNTIL(ev == PROCESS_EVENT_EXIT); RTL8019dev_exit(); PROCESS_END(); }
/*---------------------------------------------------------------------------*/ PROCESS_THREAD(ssfire_process, ev, data) { PROCESS_POLLHANDLER(pollhandler()); PROCESS_BEGIN(); ctk_mode_set(CTK_MODE_SCREENSAVER); ctk_mouse_hide(); fire_init(); PROCESS_WAIT_EVENT_UNTIL(ev == ctk_signal_screensaver_stop || ev == PROCESS_EVENT_EXIT); ctk_draw_init(); ctk_desktop_redraw(NULL); PROCESS_END(); }
/*---------------------------------------------------------------------------*/ PROCESS_THREAD(slip_drv_process, ev, data) { PROCESS_POLLHANDLER(pollhandler()); PROCESS_EXITHANDLER(rs232dev_unload()); PROCESS_BEGIN(); rs232dev_init(); SERVICE_REGISTER(slip_drv_service); process_poll(&slip_drv_process); while(1) { PROCESS_YIELD(); } PROCESS_END(); }
/*---------------------------------------------------------------------------*/ PROCESS_THREAD(tapdev_process, ev, data) { PROCESS_POLLHANDLER(pollhandler()); PROCESS_BEGIN(); tapdev_init(); #if !UIP_CONF_IPV6 tcpip_set_outputfunc(tapdev_output); #else tcpip_set_outputfunc(tapdev_send); #endif process_poll(&tapdev_process); PROCESS_WAIT_UNTIL(ev == PROCESS_EVENT_EXIT); tapdev_exit(); PROCESS_END(); }
/*---------------------------------------------------------------------------*/ PROCESS_THREAD(rrnet_drv_process, ev, data) { PROCESS_POLLHANDLER(pollhandler()); PROCESS_BEGIN(); uip_setethaddr(addr); init_rrnet(); cs8900a_init(); SERVICE_REGISTER(rrnet_drv_service); process_poll(&rrnet_drv_process); while(1) { PROCESS_YIELD(); } PROCESS_END(); }
/*---------------------------------------------------------------------------*/ PROCESS_THREAD(wpcap_process, ev, data) { PROCESS_POLLHANDLER(pollhandler()); PROCESS_BEGIN(); wpcap_init(); #if !UIP_CONF_IPV6 tcpip_set_outputfunc(wpcap_output); #else #if !FALLBACK_HAS_ETHERNET_HEADERS tcpip_set_outputfunc(wpcap_send); #endif #endif /* !UIP_CONF_IPV6 */ process_poll(&wpcap_process); PROCESS_WAIT_UNTIL(ev == PROCESS_EVENT_EXIT); wpcap_exit(); PROCESS_END(); }
/*---------------------------------------------------------------------------*/ PROCESS_THREAD(cgterm_process, ev, data) { u16_t *ipaddr; char *cptr; PROCESS_POLLHANDLER(pollhandler()); PROCESS_BEGIN(); ctk_window_new(&window, 38, 5, "C/G term"); CTK_WIDGET_ADD(&window, &hostlabel); CTK_WIDGET_ADD(&window, &hostentry); CTK_WIDGET_ADD(&window, &portlabel); CTK_WIDGET_ADD(&window, &portentry); CTK_WIDGET_ADD(&window, &connectbutton); CTK_WIDGET_ADD(&window, &switchbutton); CTK_WIDGET_ADD(&window, &helplabel); ctk_window_open(&window); while(1) { PROCESS_WAIT_EVENT(); if(ev == tcpip_event) { appcall(data); } else if(ev == ctk_signal_widget_activate) { if(data == &switchbutton) { textmode(); } else if(data == &connectbutton) { serverport = 0; for(cptr = port; *cptr != ' ' && *cptr != 0; ++cptr) { if(*cptr < '0' || *cptr > '9') { continue; } serverport = 10 * serverport + *cptr - '0'; } ipaddr = serveraddr; if(uiplib_ipaddrconv(host, (u8_t *)serveraddr) == 0) { ipaddr = resolv_lookup(host); if(ipaddr == NULL) { resolv_query(host); } else { uip_ipaddr_copy(serveraddr, ipaddr); } } if(ipaddr != NULL) { conn = connect(serveraddr, serverport); if(conn != NULL) { memset((char *)0x0400, 0x20, 40*25); memset((char *)0xd800, 0x01, 40*25); textmode(); } } } } else if(ev == resolv_event_found) { ipaddr = resolv_lookup(host); if(ipaddr != NULL) { uip_ipaddr_copy(serveraddr, ipaddr); conn = connect(serveraddr, serverport); if(conn != NULL) { memset((char *)0x0400, 0x20, 40*25); memset((char *)0xd800, 0x01, 40*25); textmode(); } } } else if(ev == PROCESS_EVENT_EXIT || ev == ctk_signal_window_close) { break; } } ctk_window_close(&window); PROCESS_END(); }