From b832479e345f81d2ecfc581ec6075ce83abcdf0b Mon Sep 17 00:00:00 2001 From: fros4943 Date: Wed, 3 Feb 2010 19:30:32 +0000 Subject: [PATCH] wrapping tr1001 custom data byte delivery in MspMoteTimeEvent --- .../cooja/mspmote/interfaces/TR1001Radio.java | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/TR1001Radio.java b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/TR1001Radio.java index 78c2d7bfa..0ef0d43e7 100644 --- a/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/TR1001Radio.java +++ b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/TR1001Radio.java @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: TR1001Radio.java,v 1.18 2010/02/03 19:15:56 fros4943 Exp $ + * $Id: TR1001Radio.java,v 1.19 2010/02/03 19:30:32 fros4943 Exp $ */ package se.sics.cooja.mspmote.interfaces; @@ -183,13 +183,20 @@ public class TR1001Radio extends Radio implements USARTListener, CustomDataRadio receivedByte = isInterfered ? CORRUPTED_DATA : (Byte) data; - if (radioUSART.isReceiveFlagCleared()) { - /*logger.info("----- TR1001 RECEIVED BYTE -----");*/ - radioUSART.byteReceived(receivedByte); - } else { - logger.warn(mote.getSimulation().getSimulationTime() + ": ----- TR1001 RECEIVED BYTE DROPPED -----"); - } - mote.requestImmediateWakeup(); + final byte finalByte = receivedByte; + mote.getSimulation().scheduleEvent(new MspMoteTimeEvent(mote, 0) { + public void execute(long t) { + super.execute(t); + + if (radioUSART.isReceiveFlagCleared()) { + /*logger.info("----- TR1001 RECEIVED BYTE -----");*/ + radioUSART.byteReceived(finalByte); + } else { + logger.warn(mote.getSimulation().getSimulationTime() + ": ----- TR1001 RECEIVED BYTE DROPPED -----"); + } + mote.requestImmediateWakeup(); + } + }, mote.getSimulation().getSimulationTime()); } /* USART listener support */