uint8_t backoffCount;
uint8_t neededFreeSamples;
message_t* sending = NULL;
+ bool transmitting = FALSE;
uint8_t sendingLength = 0;
int destNode;
delay = sim_csma_rxtx_delay();
delay *= (sim_ticks_per_sec() / sim_csma_symbols_per_sec());
evt->time += delay;
-
+ transmitting = TRUE;
evt->handle = send_transmit;
sim_queue_insert(evt);
}
void send_transmit_done(sim_event_t* evt) {
message_t* rval = sending;
sending = NULL;
+ transmitting = FALSE;
dbg("TossimPacketModelC", "PACKET: Signaling send done at %llu.\n", sim_time());
signal Packet.sendDone(rval, SUCCESS);
}
event void GainRadioModel.receive(message_t* msg) {
- if (running) {
+ if (running && !transmitting) {
signal Packet.receive(msg);
}
}