[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