From c60511b6700377bcad6608c58ca79375f1f78932 Mon Sep 17 00:00:00 2001 From: idgay Date: Tue, 24 Jun 2008 17:56:02 +0000 Subject: [PATCH] rename --- .../LplBroadcastPeriodicDelivery/Makefile | 2 +- .../TestPeriodicAppC.nc | 76 ++++++++++ .../TestPeriodicC.nc | 111 ++++++++++---- .../TestPeriodicP.nc | 135 ------------------ .../LplUnicastPeriodicDelivery/Makefile | 2 +- .../TestPeriodicAppC.nc | 70 +++++++++ .../TestPeriodicC.nc | 105 ++++++++++---- .../TestPeriodicP.nc | 117 --------------- 8 files changed, 309 insertions(+), 309 deletions(-) create mode 100644 apps/tests/cc2420/LplBroadcastPeriodicDelivery/TestPeriodicAppC.nc delete mode 100644 apps/tests/cc2420/LplBroadcastPeriodicDelivery/TestPeriodicP.nc create mode 100644 apps/tests/cc2420/LplUnicastPeriodicDelivery/TestPeriodicAppC.nc delete mode 100644 apps/tests/cc2420/LplUnicastPeriodicDelivery/TestPeriodicP.nc diff --git a/apps/tests/cc2420/LplBroadcastPeriodicDelivery/Makefile b/apps/tests/cc2420/LplBroadcastPeriodicDelivery/Makefile index f2b95568..7953ee77 100644 --- a/apps/tests/cc2420/LplBroadcastPeriodicDelivery/Makefile +++ b/apps/tests/cc2420/LplBroadcastPeriodicDelivery/Makefile @@ -1,4 +1,4 @@ -COMPONENT=TestPeriodicC +COMPONENT=TestPeriodicAppC CFLAGS += -DACK_LOW_POWER_LISTENING #CFLAGS += -DNOACK_LOW_POWER_LISTENING diff --git a/apps/tests/cc2420/LplBroadcastPeriodicDelivery/TestPeriodicAppC.nc b/apps/tests/cc2420/LplBroadcastPeriodicDelivery/TestPeriodicAppC.nc new file mode 100644 index 00000000..412f5b56 --- /dev/null +++ b/apps/tests/cc2420/LplBroadcastPeriodicDelivery/TestPeriodicAppC.nc @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2005-2006 Rincon Research Corporation + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - 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. + * - Neither the name of the Rincon Research Corporation 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 COPYRIGHT HOLDERS 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 + * ARCHED ROCK OR ITS 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 app sends a message from Transmitter node to AM_BROADCAST_ADDR + * and waits 1000 ms between each delivery so the Rx mote's radio + * shuts back off and has to redetect to receive the next message. + * Receiver: TOS_NODE_ID != 1 + * Transmitter: TOS_NODE_ID == 1 + * + * @author David Moss + */ + +#include "TestPeriodic.h" + +configuration TestPeriodicAppC { +} + +implementation { + +#if defined(PLATFORM_MICA2) || defined(PLATFORM_MICA2DOT) + components CC1000ActiveMessageC as Lpl; +#elif defined(PLATFORM_MICAZ) || defined(PLATFORM_TELOSB) + components CC2420ActiveMessageC as Lpl; +#else +#error "LPL testing not supported on this platform" +#endif + + components TestPeriodicC, + MainC, + ActiveMessageC, + new TimerMilliC(), + new AMSenderC(AM_TESTPERIODICMSG), + new AMReceiverC(AM_TESTPERIODICMSG), + LedsC; + + TestPeriodicC.Boot -> MainC; + TestPeriodicC.SplitControl -> ActiveMessageC; + TestPeriodicC.LowPowerListening -> Lpl; + TestPeriodicC.AMPacket -> ActiveMessageC; + TestPeriodicC.AMSend -> AMSenderC; + TestPeriodicC.Receive -> AMReceiverC; + TestPeriodicC.Packet -> ActiveMessageC; + TestPeriodicC.Timer -> TimerMilliC; + TestPeriodicC.Leds -> LedsC; + +} + diff --git a/apps/tests/cc2420/LplBroadcastPeriodicDelivery/TestPeriodicC.nc b/apps/tests/cc2420/LplBroadcastPeriodicDelivery/TestPeriodicC.nc index 553bf844..59d6b0c1 100644 --- a/apps/tests/cc2420/LplBroadcastPeriodicDelivery/TestPeriodicC.nc +++ b/apps/tests/cc2420/LplBroadcastPeriodicDelivery/TestPeriodicC.nc @@ -38,39 +38,98 @@ * * @author David Moss */ - + #include "TestPeriodic.h" -configuration TestPeriodicC { +module TestPeriodicC { + uses { + interface Boot; + interface SplitControl; + interface LowPowerListening; + interface AMSend; + interface Receive; + interface AMPacket; + interface Packet; + interface Leds; + interface Timer; + } } implementation { + + uint8_t count; + message_t fullMsg; + bool transmitter; + + uint8_t lastCount; + + /**************** Prototypes ****************/ + task void send(); + + /**************** Boot Events ****************/ + event void Boot.booted() { + transmitter = (call AMPacket.address() == 1); + count = 0; + + call LowPowerListening.setLocalSleepInterval(1000); + call SplitControl.start(); + } + + event void SplitControl.startDone(error_t error) { + if(transmitter) { + post send(); + } + } + + event void SplitControl.stopDone(error_t error) { + } + + + /**************** Send Receive Events *****************/ + event void AMSend.sendDone(message_t *msg, error_t error) { + if(transmitter) { + count++; + call Timer.startOneShot(1000); + call Leds.led0Off(); + } + } + + event message_t *Receive.receive(message_t *msg, void *payload, uint8_t len) { + TestPeriodicMsg *periodicMsg = (TestPeriodicMsg *) payload; -#if defined(PLATFORM_MICA2) || defined(PLATFORM_MICA2DOT) - components CC1000ActiveMessageC as Lpl; -#elif defined(PLATFORM_MICAZ) || defined(PLATFORM_TELOSB) - components CC2420ActiveMessageC as Lpl; -#else -#error "LPL testing not supported on this platform" -#endif + if(!transmitter) { + if(lastCount == periodicMsg->count) { + call Leds.led0On(); + call Leds.led1Off(); + } else { + call Leds.led1On(); + call Leds.led0Off(); + } - components TestPeriodicP, - MainC, - ActiveMessageC, - new TimerMilliC(), - new AMSenderC(AM_TESTPERIODICMSG), - new AMReceiverC(AM_TESTPERIODICMSG), - LedsC; - - TestPeriodicP.Boot -> MainC; - TestPeriodicP.SplitControl -> ActiveMessageC; - TestPeriodicP.LowPowerListening -> Lpl; - TestPeriodicP.AMPacket -> ActiveMessageC; - TestPeriodicP.AMSend -> AMSenderC; - TestPeriodicP.Receive -> AMReceiverC; - TestPeriodicP.Packet -> ActiveMessageC; - TestPeriodicP.Timer -> TimerMilliC; - TestPeriodicP.Leds -> LedsC; + lastCount = periodicMsg->count; + call Leds.led2Toggle(); + } + return msg; + } + + /**************** Timer Events ****************/ + event void Timer.fired() { + if(transmitter) { + post send(); + } + } + + /**************** Tasks ****************/ + task void send() { + TestPeriodicMsg *periodicMsg = (TestPeriodicMsg *) call Packet.getPayload(&fullMsg, sizeof(TestPeriodicMsg)); + periodicMsg->count = count; + call LowPowerListening.setRxSleepInterval(&fullMsg, 1000); + if(call AMSend.send(AM_BROADCAST_ADDR, &fullMsg, sizeof(TestPeriodicMsg)) != SUCCESS) { + post send(); + } else { + call Leds.led0On(); + } + } } diff --git a/apps/tests/cc2420/LplBroadcastPeriodicDelivery/TestPeriodicP.nc b/apps/tests/cc2420/LplBroadcastPeriodicDelivery/TestPeriodicP.nc deleted file mode 100644 index 4fc623a8..00000000 --- a/apps/tests/cc2420/LplBroadcastPeriodicDelivery/TestPeriodicP.nc +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright (c) 2005-2006 Rincon Research Corporation - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - 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. - * - Neither the name of the Rincon Research Corporation 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 COPYRIGHT HOLDERS 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 - * ARCHED ROCK OR ITS 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 app sends a message from Transmitter node to AM_BROADCAST_ADDR - * and waits 1000 ms between each delivery so the Rx mote's radio - * shuts back off and has to redetect to receive the next message. - * Receiver: TOS_NODE_ID != 1 - * Transmitter: TOS_NODE_ID == 1 - * - * @author David Moss - */ - -#include "TestPeriodic.h" - -module TestPeriodicP { - uses { - interface Boot; - interface SplitControl; - interface LowPowerListening; - interface AMSend; - interface Receive; - interface AMPacket; - interface Packet; - interface Leds; - interface Timer; - } -} - -implementation { - - uint8_t count; - message_t fullMsg; - bool transmitter; - - uint8_t lastCount; - - /**************** Prototypes ****************/ - task void send(); - - /**************** Boot Events ****************/ - event void Boot.booted() { - transmitter = (call AMPacket.address() == 1); - count = 0; - - call LowPowerListening.setLocalSleepInterval(1000); - call SplitControl.start(); - } - - event void SplitControl.startDone(error_t error) { - if(transmitter) { - post send(); - } - } - - event void SplitControl.stopDone(error_t error) { - } - - - /**************** Send Receive Events *****************/ - event void AMSend.sendDone(message_t *msg, error_t error) { - if(transmitter) { - count++; - call Timer.startOneShot(1000); - call Leds.led0Off(); - } - } - - event message_t *Receive.receive(message_t *msg, void *payload, uint8_t len) { - TestPeriodicMsg *periodicMsg = (TestPeriodicMsg *) payload; - - if(!transmitter) { - if(lastCount == periodicMsg->count) { - call Leds.led0On(); - call Leds.led1Off(); - } else { - call Leds.led1On(); - call Leds.led0Off(); - } - - lastCount = periodicMsg->count; - - call Leds.led2Toggle(); - } - return msg; - } - - /**************** Timer Events ****************/ - event void Timer.fired() { - if(transmitter) { - post send(); - } - } - - /**************** Tasks ****************/ - task void send() { - TestPeriodicMsg *periodicMsg = (TestPeriodicMsg *) call Packet.getPayload(&fullMsg, sizeof(TestPeriodicMsg)); - periodicMsg->count = count; - call LowPowerListening.setRxSleepInterval(&fullMsg, 1000); - if(call AMSend.send(AM_BROADCAST_ADDR, &fullMsg, sizeof(TestPeriodicMsg)) != SUCCESS) { - post send(); - } else { - call Leds.led0On(); - } - } -} - diff --git a/apps/tests/cc2420/LplUnicastPeriodicDelivery/Makefile b/apps/tests/cc2420/LplUnicastPeriodicDelivery/Makefile index f2b95568..7953ee77 100644 --- a/apps/tests/cc2420/LplUnicastPeriodicDelivery/Makefile +++ b/apps/tests/cc2420/LplUnicastPeriodicDelivery/Makefile @@ -1,4 +1,4 @@ -COMPONENT=TestPeriodicC +COMPONENT=TestPeriodicAppC CFLAGS += -DACK_LOW_POWER_LISTENING #CFLAGS += -DNOACK_LOW_POWER_LISTENING diff --git a/apps/tests/cc2420/LplUnicastPeriodicDelivery/TestPeriodicAppC.nc b/apps/tests/cc2420/LplUnicastPeriodicDelivery/TestPeriodicAppC.nc new file mode 100644 index 00000000..8a290c65 --- /dev/null +++ b/apps/tests/cc2420/LplUnicastPeriodicDelivery/TestPeriodicAppC.nc @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2005-2006 Rincon Research Corporation + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - 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. + * - Neither the name of the Rincon Research Corporation 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 COPYRIGHT HOLDERS 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 + * ARCHED ROCK OR ITS 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 + */ + +/** + * @author David Moss + */ + +#include "TestPeriodic.h" + +configuration TestPeriodicAppC { +} + +implementation { + +#if defined(PLATFORM_MICA2) || defined(PLATFORM_MICA2DOT) + components CC1000ActiveMessageC as Lpl; +#elif defined(PLATFORM_MICAZ) || defined(PLATFORM_TELOSB) + components CC2420ActiveMessageC as Lpl; +#else +#error "LPL testing not supported on this platform" +#endif + + components TestPeriodicC, + MainC, + ActiveMessageC, + new TimerMilliC(), + new AMSenderC(AM_TESTPERIODICMSG), + new AMReceiverC(AM_TESTPERIODICMSG), + LedsC; + + TestPeriodicC.Boot -> MainC; + TestPeriodicC.SplitControl -> ActiveMessageC; + TestPeriodicC.LowPowerListening -> Lpl; + TestPeriodicC.AMPacket -> ActiveMessageC; + TestPeriodicC.AMSend -> AMSenderC; + TestPeriodicC.Receive -> AMReceiverC; + TestPeriodicC.Packet -> ActiveMessageC; + TestPeriodicC.Timer -> TimerMilliC; + TestPeriodicC.Leds -> LedsC; + +} + diff --git a/apps/tests/cc2420/LplUnicastPeriodicDelivery/TestPeriodicC.nc b/apps/tests/cc2420/LplUnicastPeriodicDelivery/TestPeriodicC.nc index 45808e0c..1aa728c3 100644 --- a/apps/tests/cc2420/LplUnicastPeriodicDelivery/TestPeriodicC.nc +++ b/apps/tests/cc2420/LplUnicastPeriodicDelivery/TestPeriodicC.nc @@ -31,40 +31,87 @@ /** * @author David Moss + * Rx == 0 + * Tx != 0 */ - + #include "TestPeriodic.h" -configuration TestPeriodicC { +module TestPeriodicC { + uses { + interface Boot; + interface SplitControl; + interface LowPowerListening; + interface AMSend; + interface Receive; + interface AMPacket; + interface Packet; + interface Leds; + interface Timer; + } } implementation { - -#if defined(PLATFORM_MICA2) || defined(PLATFORM_MICA2DOT) - components CC1000ActiveMessageC as Lpl; -#elif defined(PLATFORM_MICAZ) || defined(PLATFORM_TELOSB) - components CC2420ActiveMessageC as Lpl; -#else -#error "LPL testing not supported on this platform" -#endif - - components TestPeriodicP, - MainC, - ActiveMessageC, - new TimerMilliC(), - new AMSenderC(AM_TESTPERIODICMSG), - new AMReceiverC(AM_TESTPERIODICMSG), - LedsC; - - TestPeriodicP.Boot -> MainC; - TestPeriodicP.SplitControl -> ActiveMessageC; - TestPeriodicP.LowPowerListening -> Lpl; - TestPeriodicP.AMPacket -> ActiveMessageC; - TestPeriodicP.AMSend -> AMSenderC; - TestPeriodicP.Receive -> AMReceiverC; - TestPeriodicP.Packet -> ActiveMessageC; - TestPeriodicP.Timer -> TimerMilliC; - TestPeriodicP.Leds -> LedsC; - + + uint8_t count; + message_t fullMsg; + bool transmitter; + + /**************** Prototypes ****************/ + task void send(); + + /**************** Boot Events ****************/ + event void Boot.booted() { + transmitter = (call AMPacket.address() != 0); + count = 0; + + call LowPowerListening.setLocalSleepInterval(1000); + call SplitControl.start(); + } + + event void SplitControl.startDone(error_t error) { + if(transmitter) { + post send(); + } + } + + event void SplitControl.stopDone(error_t error) { + } + + + /**************** Send Receive Events *****************/ + event void AMSend.sendDone(message_t *msg, error_t error) { + if(transmitter) { + count++; + call Timer.startOneShot(1000); + call Leds.led0Off(); + } + } + + event message_t *Receive.receive(message_t *msg, void *payload, uint8_t len) { + if(!transmitter) { + call Leds.led1Toggle(); + } + return msg; + } + + /**************** Timer Events ****************/ + event void Timer.fired() { + if(transmitter) { + post send(); + } + } + + /**************** Tasks ****************/ + task void send() { + TestPeriodicMsg *periodicMsg = (TestPeriodicMsg *) call Packet.getPayload(&fullMsg, sizeof(TestPeriodicMsg)); + periodicMsg->count = count; + call LowPowerListening.setRxSleepInterval(&fullMsg, 1000); + if(call AMSend.send(0, &fullMsg, sizeof(TestPeriodicMsg)) != SUCCESS) { + post send(); + } else { + call Leds.led0On(); + } + } } diff --git a/apps/tests/cc2420/LplUnicastPeriodicDelivery/TestPeriodicP.nc b/apps/tests/cc2420/LplUnicastPeriodicDelivery/TestPeriodicP.nc deleted file mode 100644 index b6b33489..00000000 --- a/apps/tests/cc2420/LplUnicastPeriodicDelivery/TestPeriodicP.nc +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (c) 2005-2006 Rincon Research Corporation - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - 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. - * - Neither the name of the Rincon Research Corporation 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 COPYRIGHT HOLDERS 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 - * ARCHED ROCK OR ITS 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 - */ - -/** - * @author David Moss - * Rx == 0 - * Tx != 0 - */ - -#include "TestPeriodic.h" - -module TestPeriodicP { - uses { - interface Boot; - interface SplitControl; - interface LowPowerListening; - interface AMSend; - interface Receive; - interface AMPacket; - interface Packet; - interface Leds; - interface Timer; - } -} - -implementation { - - uint8_t count; - message_t fullMsg; - bool transmitter; - - /**************** Prototypes ****************/ - task void send(); - - /**************** Boot Events ****************/ - event void Boot.booted() { - transmitter = (call AMPacket.address() != 0); - count = 0; - - call LowPowerListening.setLocalSleepInterval(1000); - call SplitControl.start(); - } - - event void SplitControl.startDone(error_t error) { - if(transmitter) { - post send(); - } - } - - event void SplitControl.stopDone(error_t error) { - } - - - /**************** Send Receive Events *****************/ - event void AMSend.sendDone(message_t *msg, error_t error) { - if(transmitter) { - count++; - call Timer.startOneShot(1000); - call Leds.led0Off(); - } - } - - event message_t *Receive.receive(message_t *msg, void *payload, uint8_t len) { - if(!transmitter) { - call Leds.led1Toggle(); - } - return msg; - } - - /**************** Timer Events ****************/ - event void Timer.fired() { - if(transmitter) { - post send(); - } - } - - /**************** Tasks ****************/ - task void send() { - TestPeriodicMsg *periodicMsg = (TestPeriodicMsg *) call Packet.getPayload(&fullMsg, sizeof(TestPeriodicMsg)); - periodicMsg->count = count; - call LowPowerListening.setRxSleepInterval(&fullMsg, 1000); - if(call AMSend.send(0, &fullMsg, sizeof(TestPeriodicMsg)) != SUCCESS) { - post send(); - } else { - call Leds.led0On(); - } - } -} - -- 2.39.2