[Tinyos-2-commits] CVS: tinyos-2.x/tos/lib/ftsp TimeSyncP.nc, 1.3, 1.4
kusy
kusy at users.sourceforge.net
Wed Feb 4 12:04:00 PST 2009
Update of /cvsroot/tinyos/tinyos-2.x/tos/lib/ftsp
In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv1010
Modified Files:
TimeSyncP.nc
Log Message:
applied Thomas's patch to fix sum of squares quantization bug
Index: TimeSyncP.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tos/lib/ftsp/TimeSyncP.nc,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** TimeSyncP.nc 22 Jul 2008 07:22:52 -0000 1.3
--- TimeSyncP.nc 4 Feb 2009 20:03:58 -0000 1.4
***************
*** 151,154 ****
--- 151,156 ----
uint32_t newLocalAverage;
int32_t newOffsetAverage;
+ int32_t localAverageRest;
+ int32_t offsetAverageRest;
int64_t localSum;
***************
*** 170,183 ****
localSum = 0;
offsetSum = 0;
while( ++i < MAX_ENTRIES )
if( table[i].state == ENTRY_FULL ) {
localSum += (int32_t)(table[i].localTime - newLocalAverage) / tableEntries;
offsetSum += (int32_t)(table[i].timeOffset - newOffsetAverage) / tableEntries;
}
! newLocalAverage += localSum;
! newOffsetAverage += offsetSum;
localSum = offsetSum = 0;
--- 172,192 ----
localSum = 0;
+ localAverageRest = 0;
offsetSum = 0;
+ offsetAverageRest = 0;
while( ++i < MAX_ENTRIES )
if( table[i].state == ENTRY_FULL ) {
+ /*
+ This only works because C ISO 1999 defines the signe for modulo the same as for the Dividend!
+ */
localSum += (int32_t)(table[i].localTime - newLocalAverage) / tableEntries;
+ localAverageRest += (table[i].localTime - newLocalAverage) % tableEntries;
offsetSum += (int32_t)(table[i].timeOffset - newOffsetAverage) / tableEntries;
+ offsetAverageRest += (table[i].timeOffset - newOffsetAverage) % tableEntries;
}
! newLocalAverage += localSum + localAverageRest / tableEntries;
! newOffsetAverage += offsetSum + offsetAverageRest / tableEntries;
localSum = offsetSum = 0;
More information about the Tinyos-2-commits
mailing list