added check that outgoing packet was not discarded from simulator

This commit is contained in:
fros4943 2007-05-29 12:53:49 +00:00
parent 6aafd5582d
commit 7ec1a4f7aa
2 changed files with 14 additions and 9 deletions

View File

@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $Id: cooja-radio.c,v 1.3 2007/05/28 15:47:07 fros4943 Exp $ * $Id: cooja-radio.c,v 1.4 2007/05/29 12:53:49 fros4943 Exp $
*/ */
#include <string.h> #include <string.h>
@ -43,14 +43,14 @@
const struct simInterface radio_interface; const struct simInterface radio_interface;
// COOJA variables // COOJA variables
char simTransmitting; char simTransmitting = 0;
char simReceiving; char simReceiving = 0;
char simInDataBuffer[COOJA_RADIO_BUFSIZE]; char simInDataBuffer[COOJA_RADIO_BUFSIZE];
int simInSize; int simInSize = 0;
char simInPolled; char simInPolled = 0;
char simOutDataBuffer[COOJA_RADIO_BUFSIZE]; char simOutDataBuffer[COOJA_RADIO_BUFSIZE];
int simOutSize; int simOutSize = 0;
char simRadioHWOn = 1; char simRadioHWOn = 1;
int simSignalStrength = -200; int simSignalStrength = -200;
@ -232,6 +232,11 @@ radio_send(const u8_t *payload, u16_t payload_len)
return COOJA_RADIO_DROPPED; return COOJA_RADIO_DROPPED;
} }
if(simOutSize <= 0) {
inSendFunction = 0;
return COOJA_RADIO_DROPPED;
}
// - Initiate transmission - // - Initiate transmission -
simTransmitting = 1; simTransmitting = 1;

View File

@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $Id: ContikiRadio.java,v 1.13 2007/04/23 11:58:20 fros4943 Exp $ * $Id: ContikiRadio.java,v 1.14 2007/05/29 12:53:49 fros4943 Exp $
*/ */
package se.sics.cooja.contikimote.interfaces; package se.sics.cooja.contikimote.interfaces;
@ -348,13 +348,13 @@ public class ContikiRadio extends Radio implements ContikiMoteInterface,
if (!isTransmitting && myMoteMemory.getByteValueOf("simTransmitting") == 1) { if (!isTransmitting && myMoteMemory.getByteValueOf("simTransmitting") == 1) {
int size = myMoteMemory.getIntValueOf("simOutSize"); int size = myMoteMemory.getIntValueOf("simOutSize");
if (size <= 0) { if (size <= 0) {
logger.warn("Skipping zero sized Contiki packet"); logger.warn("Skipping zero sized Contiki packet (no size)");
myMoteMemory.setByteValueOf("simTransmitting", (byte) 0); myMoteMemory.setByteValueOf("simTransmitting", (byte) 0);
return; return;
} }
packetFromMote = myMoteMemory.getByteArray("simOutDataBuffer", size); packetFromMote = myMoteMemory.getByteArray("simOutDataBuffer", size);
if (packetFromMote == null || packetFromMote.length == 0) { if (packetFromMote == null || packetFromMote.length == 0) {
logger.warn("Skipping zero sized Contiki packet"); logger.warn("Skipping zero sized Contiki packet (no buffer)");
myMoteMemory.setByteValueOf("simTransmitting", (byte) 0); myMoteMemory.setByteValueOf("simTransmitting", (byte) 0);
return; return;
} }