[Tinyos-2-commits] CVS: tinyos-2.x/tos/lib/tossim CpmModelC.nc, 1.12, 1.13 TossimPacketModelC.nc, 1.8, 1.9 GainRadioModel.nc, 1.5, 1.6
SunHee Yoon
sunheeyoon at users.sourceforge.net
Mon Jun 15 17:49:45 PDT 2009
Update of /cvsroot/tinyos/tinyos-2.x/tos/lib/tossim
In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv10749
Modified Files:
CpmModelC.nc TossimPacketModelC.nc GainRadioModel.nc
Log Message:
Address concurrent RX/TX
Index: CpmModelC.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tos/lib/tossim/CpmModelC.nc,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** CpmModelC.nc 26 May 2009 06:11:51 -0000 1.12
--- CpmModelC.nc 16 Jun 2009 00:49:43 -0000 1.13
***************
*** 51,54 ****
--- 51,56 ----
bool requestAck;
bool receiving = 0; // Whether or not I think I'm receiving a packet
+ bool transmitting = 0; // Whether or not I think I'm tranmitting a packet
+ sim_time_t TransmissionEndTime; // to check pending transmission
struct receive_message;
typedef struct receive_message receive_message_t;
***************
*** 393,396 ****
--- 395,402 ----
rcv->lost = 1;
}
+ else if (transmitting && (rcv->start < TransmissionEndTime) && (TransmissionEndTime <= rcv->end)) {
+ dbg("CpmModelC,SNRLoss", "Lost packet from %i due to %i being mid-transmission, TransmissionEndTime %llu\n", source, sim_node(), TransmissionEndTime);
+ rcv->lost = 1;
+ }
else {
receiving = 1;
***************
*** 422,428 ****
--- 428,436 ----
command void Model.putOnAirTo(int dest, message_t* msg, bool ack, sim_time_t endTime, double power, double reversePower) {
+ receive_message_t* list;
gain_entry_t* neighborEntry = sim_gain_first(sim_node());
requestAck = ack;
outgoing = msg;
+ TransmissionEndTime = endTime;
dbg("CpmModelC", "Node %i transmitting to %i, finishes at %llu.\n", sim_node(), dest, endTime);
***************
*** 432,439 ****
neighborEntry = sim_gain_next(neighborEntry);
}
}
!
default event void Model.receive(message_t* msg) {}
--- 440,458 ----
neighborEntry = sim_gain_next(neighborEntry);
}
+
+ list = outstandingReceptionHead;
+ while (list != NULL) {
+ list->lost = 1;
+ dbg("CpmModelC,SNRLoss", "Lost packet from %i because %i has outstanding reception, startTime %llu endTime %llu\n", list->source, sim_node(), list->start, list->end);
+ list = list->next;
+ }
}
! command void Model.checkPendingTransmission(bool isTransmitting) {
! transmitting = isTransmitting;
! dbg("CpmModelC", "checkPendingTransmission: transmitting %i @ %s\n", transmitting, sim_time_string());
! }
!
default event void Model.receive(message_t* msg) {}
Index: TossimPacketModelC.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tos/lib/tossim/TossimPacketModelC.nc,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** TossimPacketModelC.nc 19 Feb 2008 19:51:08 -0000 1.8
--- TossimPacketModelC.nc 16 Jun 2009 00:49:43 -0000 1.9
***************
*** 215,218 ****
--- 215,219 ----
evt->time += delay;
transmitting = TRUE;
+ call GainRadioModel.checkPendingTransmission(transmitting);
evt->handle = send_transmit;
sim_queue_insert(evt);
Index: GainRadioModel.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tos/lib/tossim/GainRadioModel.nc,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** GainRadioModel.nc 21 May 2007 21:35:54 -0000 1.5
--- GainRadioModel.nc 16 Jun 2009 00:49:43 -0000 1.6
***************
*** 47,50 ****
--- 47,51 ----
command void setClearValue(double value);
command bool clearChannel();
+ command void checkPendingTransmission(bool isTransmitting);
event void acked(message_t* msg);
More information about the Tinyos-2-commits
mailing list