]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/lib/net/lqi/LqiRoutingEngineP.nc
The big interface switchover for Packet, Send, Receive, and AMSend.
[tinyos-2.x.git] / tos / lib / net / lqi / LqiRoutingEngineP.nc
index 4d99095792832422b037bbf35ba0732b3bab17a4..d9e76cbf4f2a1b6b491de1fdffa889679e7fa1bb 100644 (file)
@@ -89,7 +89,8 @@ implementation {
   uint8_t gLastHeard;
 
   int16_t gCurrentSeqNo;
-
+  int16_t gOriginSeqNo;
+  
   uint16_t gUpdateInterval;
 
   uint8_t gRecentIndex;
@@ -107,11 +108,11 @@ implementation {
   }
 
   lqi_header_t* getHeader(message_t* msg) {
-    return (lqi_header_t*)call Packet.getPayload(msg, NULL);
+    return (lqi_header_t*)call Packet.getPayload(msg, sizeof(lqi_header_t));
   }
   
   lqi_beacon_msg_t* getBeacon(message_t* msg) {
-    return (lqi_beacon_msg_t*)call Packet.getPayload(msg, NULL);
+    return (lqi_beacon_msg_t*)call Packet.getPayload(msg, sizeof(lqi_beacon_msg_t));
   }
 
   task void SendRouteTask() {
@@ -137,7 +138,6 @@ implementation {
       bMsg->cost = 0;
       bMsg->originaddr = TOS_NODE_ID;
       bMsg->hopcount = 0;
-      bMsg->originseqno = gCurrentSeqNo;
       bMsg->seqno = gCurrentSeqNo++;
     }
     else {
@@ -145,7 +145,6 @@ implementation {
       bMsg->cost = gbCurrentParentCost + gbCurrentLinkEst;
       bMsg->originaddr = TOS_NODE_ID;
       bMsg->hopcount = gbCurrentHopCount;
-      bMsg->originseqno = gCurrentSeqNo;
       bMsg->seqno = gCurrentSeqNo++;
     }
     
@@ -189,6 +188,7 @@ implementation {
     gbCurrentHopCount = ROUTE_INVALID;
     gbCurrentCost = 0xfffe;
 
+    gOriginSeqNo = 0;
     gCurrentSeqNo = 0;
     gUpdateInterval = BEACON_PERIOD;
     msgBufBusy = FALSE;
@@ -277,10 +277,10 @@ implementation {
   }
 
   command error_t RouteSelect.initializeFields(message_t* msg) {
-    lqi_header_t* header = (lqi_header_t*)call Packet.getPayload(msg, NULL);
+    lqi_header_t* header = getHeader(msg);
 
     header->originaddr = TOS_NODE_ID;
-    header->originseqno = gCurrentSeqNo;
+    header->originseqno = gOriginSeqNo++;
     header->seqno = gCurrentSeqNo;
     
     if (isRoot) {
@@ -330,7 +330,7 @@ implementation {
   event void Timer.fired() {
     call Leds.led0Toggle();
     post TimerTask();
-    call Timer.startPeriodic(1024 * gUpdateInterval + 1);
+    call Timer.startOneShot((uint32_t)1024 * gUpdateInterval + 1);
   }
 
   event message_t* Receive.receive(message_t* msg, void* payload, uint8_t len) {
@@ -397,6 +397,26 @@ implementation {
   event void AMSend.sendDone(message_t* msg, error_t success) {
     msgBufBusy = FALSE;
   }
+
+    /* Default implementations for CollectionDebug calls.
+     * These allow CollectionDebug not to be wired to anything if debugging
+     * is not desired. */
+
+  default command error_t CollectionDebug.logEvent(uint8_t type) {
+    return SUCCESS;
+  }
+  default command error_t CollectionDebug.logEventSimple(uint8_t type, uint16_t arg) {
+    return SUCCESS;
+  }
+  default command error_t CollectionDebug.logEventDbg(uint8_t type, uint16_t arg1, uint16_t arg2, uint16_t arg3) {
+    return SUCCESS;
+  }
+  default command error_t CollectionDebug.logEventMsg(uint8_t type, uint16_t msg, am_addr_t origin, am_addr_t node) {
+    return SUCCESS;
+  }
+  default command error_t CollectionDebug.logEventRoute(uint8_t type, am_addr_t parent, uint8_t hopcount, uint16_t etx) {
+    return SUCCESS;
+  }
   
 }