public void setMoteID(int newID) { moteID = newID; moteMem.setIntValueOf("simMoteID", moteID); moteMem.setByteValueOf("simMoteIDChanged", (byte) 1); moteMem.setIntValueOf("simRandomSeed", (int) (mote.getSimulation().getRandomSeed() + newID)); setChanged(); notifyObservers(); }
protected void handleTransmit(byte val) { if (len == 0) { lastEventTime = mote.getSimulation().getSimulationTime(); lastEvent = RadioEvent.TRANSMISSION_STARTED; if (DEBUG) logger.debug("----- 802.15.4 TRANSMISSION STARTED -----"); setChanged(); notifyObservers(); } /* send this byte to all nodes */ lastOutgoingByte = new RadioByte(val); lastEventTime = mote.getSimulation().getSimulationTime(); lastEvent = RadioEvent.CUSTOM_DATA_TRANSMITTED; setChanged(); notifyObservers(); buffer[len++] = val; // System.out.println("## 802.15.4: " + (val&0xff) + " transmitted..."); if (len == 6) { // System.out.println("## CC2420 Packet of length: " + val + " expected..."); expLen = val + 6; } if (len == expLen) { if (DEBUG) logger.debug("----- 802.15.4 CUSTOM DATA TRANSMITTED -----"); lastOutgoingPacket = Radio802154PacketConverter.fromCC2420ToCooja(buffer); lastEventTime = mote.getSimulation().getSimulationTime(); lastEvent = RadioEvent.PACKET_TRANSMITTED; if (DEBUG) logger.debug("----- 802.15.4 PACKET TRANSMITTED -----"); setChanged(); notifyObservers(); // System.out.println("## CC2420 Transmission finished..."); lastEventTime = mote.getSimulation().getSimulationTime(); /*logger.debug("----- SKY TRANSMISSION FINISHED -----");*/ lastEvent = RadioEvent.TRANSMISSION_FINISHED; setChanged(); notifyObservers(); len = 0; } }
/* need to add a few more methods later??? */ public void signalReceptionStart() { isReceiving = true; // cc2420.setCCA(true); // hasFailedReception = mode == CC2420.MODE_TXRX_OFF; /* TODO cc2420.setSFD(true); */ lastEventTime = mote.getSimulation().getSimulationTime(); lastEvent = RadioEvent.RECEPTION_STARTED; if (DEBUG) logger.debug("----- 802.15.4 RECEPTION STARTED -----"); setChanged(); notifyObservers(); }
public void interfereAnyReception() { isInterfered = true; isReceiving = false; // hasFailedReception = false; lastIncomingPacket = null; // cc2420.setCCA(true); /* is this ok ?? */ handleEndOfReception(); // recv.nextByte(false, (byte)0); lastEventTime = mote.getSimulation().getSimulationTime(); lastEvent = RadioEvent.RECEPTION_INTERFERED; /*logger.debug("----- SKY RECEPTION INTERFERED -----");*/ setChanged(); notifyObservers(); }
public void signalReceptionEnd() { /* Deliver packet data */ isReceiving = false; // hasFailedReception = false; isInterfered = false; // cc2420.setCCA(false); /* tell the receiver that the packet is ended */ handleEndOfReception(); lastEventTime = mote.getSimulation().getSimulationTime(); lastEvent = RadioEvent.RECEPTION_FINISHED; if (DEBUG) logger.debug("----- 802.15.4 RECEPTION FINISHED -----"); // Exception e = new IllegalStateException("Why finished?"); // e.printStackTrace(); setChanged(); notifyObservers(); }
public MoteTracker(Mote mote) { this.simulation = mote.getSimulation(); this.mote = mote; this.radio = mote.getInterfaces().getRadio(); radioWasOn = radio.isRadioOn(); if (radio.isTransmitting()) { lastRadioState = RadioState.TRANSMITTING; } else if (radio.isReceiving()) { lastRadioState = RadioState.RECEIVING; } else if (radio.isInterfered()) { lastRadioState = RadioState.INTERFERED; } else { lastRadioState = RadioState.IDLE; } lastUpdateTime = simulation.getSimulationTime(); radio.addObserver(this); }