diff --git a/platform/esb/net/tr1001-rime.c b/platform/esb/net/tr1001-rime.c deleted file mode 100644 index a13e3ef91..000000000 --- a/platform/esb/net/tr1001-rime.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: tr1001-rime.c,v 1.2 2007/05/22 21:08:24 adamdunkels Exp $ - */ - -#include "contiki-esb.h" -#include "net/rime.h" - -#include -#include - -PROCESS(tr1001_rime_process, "TR1001 driver"); - -/*---------------------------------------------------------------------------*/ -PROCESS_THREAD(tr1001_rime_process, ev, data) -{ - PROCESS_BEGIN(); - - tr1001_init(&tr1001_rime_process); - - rime_set_output(rime_driver_send); - - while(1) { - int len; - - PROCESS_WAIT_EVENT_UNTIL(ev == PROCESS_EVENT_POLL); - - rimebuf_clear(); - - len = tr1001_poll(rimebuf_dataptr(), RIMEBUF_SIZE); - - if(len > 0) { - rimebuf_set_datalen(len); - rime_input(); - } - } - PROCESS_END(); -} -/*---------------------------------------------------------------------------*/ -void -rime_driver_send(void) -{ - tr1001_send(rimebuf_hdrptr(), rimebuf_totlen()); -} -/*---------------------------------------------------------------------------*/ diff --git a/platform/esb/net/tr1001-rime.h b/platform/esb/net/tr1001-rime.h deleted file mode 100644 index b2683a54a..000000000 --- a/platform/esb/net/tr1001-rime.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: tr1001-rime.h,v 1.1 2007/03/15 21:56:16 adamdunkels Exp $ - */ -#ifndef __TR1001_RIME_H__ -#define __TR1001_RIME_H__ - -#include "contiki.h" - -PROCESS_NAME(tr1001_rime_process); - -#endif /* __TR1001_RIME_H__ */ diff --git a/platform/esb/net/tr1001-uip.c b/platform/esb/net/tr1001-uip.c index 7e1ad7708..de0297074 100644 --- a/platform/esb/net/tr1001-uip.c +++ b/platform/esb/net/tr1001-uip.c @@ -28,40 +28,38 @@ * * This file is part of the Contiki operating system. * - * @(#)$Id: tr1001-uip.c,v 1.1 2007/03/15 21:55:59 adamdunkels Exp $ + * @(#)$Id: tr1001-uip.c,v 1.2 2007/08/07 11:14:39 nifi Exp $ */ #include "contiki-esb.h" #include "net/hc.h" -PROCESS(tr1001_uip_process, "TR1001 driver"); - /*---------------------------------------------------------------------------*/ -PROCESS_THREAD(tr1001_uip_process, ev, data) +static void +tr1001_uip_callback(const struct radio_driver *driver) { - PROCESS_BEGIN(); - - tr1001_init(&tr1001_uip_process); - - while(1) { - - PROCESS_WAIT_EVENT_UNTIL(ev == PROCESS_EVENT_POLL); - - uip_len = tr1001_poll(&uip_buf[UIP_LLH_LEN], UIP_BUFSIZE - UIP_LLH_LEN); - - if(uip_len > 0) { - uip_len = hc_inflate(&uip_buf[UIP_LLH_LEN], uip_len); - tcpip_input(); - } + uip_len = driver->read(&uip_buf[UIP_LLH_LEN], UIP_BUFSIZE - UIP_LLH_LEN); + if(uip_len > 0) { + uip_len = hc_inflate(&uip_buf[UIP_LLH_LEN], uip_len); + tcpip_input(); } - - PROCESS_END(); +} +/*---------------------------------------------------------------------------*/ +void +tr1001_uip_init() +{ + tr1001_init(); + tr1001_driver.set_receive_function(tr1001_uip_callback); } /*---------------------------------------------------------------------------*/ u8_t tr1001_uip_send(void) { uip_len = hc_compress(&uip_buf[UIP_LLH_LEN], uip_len); - return tr1001_send(&uip_buf[UIP_LLH_LEN], uip_len); + if (tr1001_driver.send(&uip_buf[UIP_LLH_LEN], uip_len) == 0) { + return UIP_FW_OK; + } else { + return UIP_FW_DROPPED; + } } /*---------------------------------------------------------------------------*/ diff --git a/platform/esb/net/tr1001-uip.h b/platform/esb/net/tr1001-uip.h index d1d7857be..4c46fd19f 100644 --- a/platform/esb/net/tr1001-uip.h +++ b/platform/esb/net/tr1001-uip.h @@ -28,12 +28,12 @@ * * This file is part of the Contiki operating system. * - * @(#)$Id: tr1001-uip.h,v 1.1 2007/03/15 21:55:59 adamdunkels Exp $ + * @(#)$Id: tr1001-uip.h,v 1.2 2007/08/07 11:14:39 nifi Exp $ */ #ifndef __TR1001_UIP_H__ #define __TR1001_UIP_H__ -PROCESS_NAME(tr1001_uip_process); +void tr1001_uip_init(); u8_t tr1001_uip_send(void); #endif /* __TR1001_UIP_H__ */