Changeset 12459 for trunk


Ignore:
Timestamp:
11/09/11 00:42:40 (13 years ago)
Author:
lyard
Message:
fixed horrible roi checking
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/src/EventBuilder.c

    r12453 r12459  
    12191219                  int jr, kr;
    12201220                  int  checkRoi;
    1221                   roi[0] = ntohs (rd[i].rBuf->S[head_len / 2 + 2]);
     1221                  int roiHopper = head_len/2 + 2; //points to the very first roi
     1222                  roi[0] = ntohs (rd[i].rBuf->S[roiHopper]);
     1223                  roiHopper += roi[0]+4;//skip to the second roi (i.e. next board, same patch-pixel)
    12221224                  for (kr = 1; kr < 4; kr++)
    12231225                  {
    1224                       checkRoi = ntohs(rd[i].rBuf->S[head_len/ 2 + 2
    1225                                                                         + kr*(roi[0]+4)]);
     1226                      checkRoi = ntohs(rd[i].rBuf->S[roiHopper]);
    12261227                      if (checkRoi != roi[0])
    12271228                      {
     
    12301231                          goto EndBuf;
    12311232                      }
    1232 
    1233                   }
     1233                      roiHopper += checkRoi+4;
     1234                  }
     1235                  //roiHopper now points to the first pixel of board 2. Do the 8 remaining pixels
    12341236                  for (jr = 1; jr < 9; jr++) {
    1235                      roi[jr] =
    1236                         ntohs (rd[i].
    1237                                rBuf->S[head_len / 2 + 2 + 9 * jr * (roi[jr-1] + 4)]);
     1237                     roi[jr] = ntohs(rd[i].rBuf->S[roiHopper]);
     1238                     checkRoi = roi[jr];
    12381239                     for (kr = 1; kr < 4; kr++)
    12391240                     {
    1240                          checkRoi = ntohs(rd[i].rBuf->S[  head_len/2 + 2 //header up to first roi
    1241                                                         + kr*(roi[jr]+4) //shift up to the next board
    1242                                                         + 9*jr*(roi[jr-1]+4)]); //shift up to the correct pixel
     1241                         roiHopper += checkRoi+4;
     1242                         checkRoi = ntohs(rd[i].rBuf->S[roiHopper]);
    12431243                         if (checkRoi != roi[jr])
    12441244                         {
    1245                              snprintf (str, MXSTR, "Inconsistent Roi accross board patches");
     1245                             snprintf (str, MXSTR, "Inconsistent Roi accross board patches B=%d P=%d %d %d", kr, jr, roi[jr], checkRoi);
    12461246                             factOut (kFatal, 1, str);
    12471247                             goto EndBuf;
Note: See TracChangeset for help on using the changeset viewer.