From: Jan Michel Date: Fri, 27 Jun 2014 14:05:49 +0000 (+0200) Subject: some small changes to unpacker X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=4f535796d377910af3b52bf07b6b2234ba0b3ba2;p=mvdsensorcontrol.git some small changes to unpacker --- diff --git a/tools/preview/unpack_hld.pl b/tools/preview/unpack_hld.pl index 6687079..9f63f34 100755 --- a/tools/preview/unpack_hld.pl +++ b/tools/preview/unpack_hld.pl @@ -71,7 +71,7 @@ if($opt_help) { if(&checkArgs()){ exit(0); } - +my $eventcounter = 0; my @evtHeader_list = (); my $evtHeader_aref = \@evtHeader_list; @@ -85,7 +85,8 @@ my $fh = new FileHandle("$file", "r"); while(1){ @evtHeader_list = (); - + if($eventcounter++ == $totalevents) {break;} + &getEvtHeader($fh,$evtHeader_aref); &printEvtHeader($evtHeader_aref) if($opt_verb); diff --git a/tools/unpacker/unpacker.cxx b/tools/unpacker/unpacker.cxx index 58db4dd..269a877 100644 --- a/tools/unpacker/unpacker.cxx +++ b/tools/unpacker/unpacker.cxx @@ -99,7 +99,7 @@ signed analyzeData(hadaq::RawSubevent* sub, unsigned ix, unsigned datalen, unsig //Something is really wrong with data. Skip SubEvent! printf("Broken Sensor Header\n"); statistics[mySensor][FRREALBROKEN]++; - #if DEBUG!=1 + #if DEBUG==0 printf("Head\t%08x\tID\t%08x\tStatus\t%08x\tError\t%08x\tDebug\t%08x\n", sensorHead, sensorId, sensorStatus, sensorError, sensorDebug); #endif @@ -123,12 +123,14 @@ signed analyzeData(hadaq::RawSubevent* sub, unsigned ix, unsigned datalen, unsig unsigned sensorNumber = sub->Data(ix++); unsigned sensorLength = sub->Data(ix++) & 0xffff; + unsigned frameEndPos = ix + sensorLength; unsigned d,line = 0,column,pixels,statecnt = 0,ovf = 0; #if DEBUG>=1 printf("\t\t\tHeader\t%08x\tFrame\t%08x\tLength\t%i\n", sensorDummy, sensorNumber, sensorLength); #endif + if(sensorLength > 580) {printf("Invalid lenght. Something wrong."); statistics[mySensor][FRBROKEN]++; return -1;} if(sensorLength == 0) { goto FrameEnd; } @@ -165,7 +167,7 @@ signed analyzeData(hadaq::RawSubevent* sub, unsigned ix, unsigned datalen, unsig } } if(ix >= frameEndPos) {goto FrameEnd;} - + if(ix >= RocEnd) {break;} } } FrameEnd: @@ -173,7 +175,7 @@ signed analyzeData(hadaq::RawSubevent* sub, unsigned ix, unsigned datalen, unsig ix += 1; } else { - ix += 0; + return -2; } if(ix >= RocEnd){break;} } @@ -275,4 +277,4 @@ void writeResults() { } } - \ No newline at end of file +