+++ /dev/null
-%load file written out by FtspDataLogger.java class\r
-%arg0 - filename, e.g. '1205543689171.report'\r
-function FTSPDataAnalyzer(file, varargin)\r
-[c1 c2 c3 c4 c5]= textread(file, '%u %u %u %u %u', 'commentstyle', 'shell');\r
-data = [c2 c3 c4 c5]; %skipping the first column (java time)\r
-data1 = sortrows(sortrows(data,1),2);\r
-newdata = [];\r
-\r
-row=1;\r
-newrow=1;\r
-unsynced=0;\r
-while (row<=size(data1,1))\r
-\r
- seqnum=data1(row,2);\r
-\r
- data2=[];\r
- row2=1;\r
- tmprow1=row;\r
- while (row <= size(data1,1) && data1(row,2)==seqnum)\r
- if (data1(row,4)==0)\r
- data2(row2,1)=data1(row,3);\r
- row2= row2+ 1;\r
- else\r
- unsynced=unsynced+1;\r
- end\r
- row = row + 1;\r
- end\r
- \r
- if (row2>1)\r
- row2size=row2-1;\r
- rcvdsize=row-tmprow1;\r
- newdata(newrow,1) = seqnum;\r
- newdata(newrow,2) = mad(data2(1:row2size,1));\r
- newdata(newrow,3) = mean(data2(1:row2size,1));\r
- newdata(newrow,4) = row2size/rcvdsize;\r
- newrow = newrow + 1;\r
- end\r
-end\r
-\r
-if (length(newdata)==0)\r
- disp('no data found (at least one data point from a synchronized mote is required)!');\r
-else\r
- newsize=newrow-1;\r
- subplot(3,1,1);\r
- plot(newdata(1:newsize,1),newdata(1:newsize,2));\r
- title(sprintf('TimeSync Errors'));\r
- subplot(3,1,2);\r
- plot(newdata(1:newsize,1),newdata(1:newsize,3));\r
- title(sprintf('Avg Glob Time'));\r
- subplot(3,1,3);\r
- plot(newdata(1:newsize,1),newdata(1:newsize,4),'b-');\r
- title(sprintf('%% Synced Motes'));\r
-\r
- disp(sprintf('total unsycned num %d (all %d)',unsynced,newsize));\r
- disp(sprintf('avg %0.3f',mean(newdata(1:newsize,2))));\r
- disp(sprintf('max %d',max(newdata(1:newsize,2))));\r
- savedata = newdata(1:newsize,:);\r
- save data.out savedata -ASCII;\r
-end\r
-
\ No newline at end of file