2010/3/11 Islam Hegazy <[email protected]>: > Hi all, > > In 4bitle implementation in updateNeighborEntryIdx() in LinkEstimatorP.nc > has some redundant statements. > > STATEMENT 1 can be removed because 'lastseq' is always set to 'seq' in > STATEMENT 2 > > The order of STATEMENTS 3 and 4 means that we update a neighbour entry then > init if packetGap > MAX_PKT_GAP. I think the order should be STATEMENT 4 > then STATEMENT 3 with a 'return' at the end of SATEMENT 4. > > > > void updateNeighborEntryIdx(uint8_t idx, uint8_t seq) > > { > > uint8_t packetGap; > > > > if (NeighborTable[idx].flags & INIT_ENTRY) > > { > > dbg("LI", "Init entry update\n"); > > NeighborTable[idx].lastseq = > seq; //STATEMENT 1 > > NeighborTable[idx].flags &= ~INIT_ENTRY; > > } > > > > packetGap = seq - NeighborTable[idx].lastseq; > > dbg("LI", "updateNeighborEntryIdx: prevseq %d, curseq %d, gap %d\n", > NeighborTable[idx].lastseq, seq, packetGap); > > NeighborTable[idx].lastseq = > seq; //STATEMENT 2 > > NeighborTable[idx].rcvcnt++; > > if (packetGap > 0) > > NeighborTable[idx].failcnt += packetGap - 1; > > > > // The or with packetGap >= BLQ_PKT_WINDOW is needed in case failcnt > gets reset above > > if > ( //STATEMENT 3 > > ((NeighborTable[idx].rcvcnt + NeighborTable[idx].failcnt) >= > BLQ_PKT_WINDOW) > > || > > (packetGap >= BLQ_PKT_WINDOW) > > ) > > updateNeighborTableEst(NeighborTable[idx].ll_addr); > > > > if (packetGap > > MAX_PKT_GAP) //STATEMENT 4 > > { > > initNeighborIdx(idx, NeighborTable[idx].ll_addr); > > NeighborTable[idx].lastseq = seq; > > NeighborTable[idx].rcvcnt = 1; > > } > > }
Yes about removing statement 1. Isn't it better to make statement 4 / statement 3 an if - else if statement? - om_p _______________________________________________ Tinyos-help mailing list [email protected] https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
