Changeset 3683 in Sophya for trunk/AddOn/TAcq/racqumem.cc


Ignore:
Timestamp:
Nov 27, 2009, 11:32:46 AM (16 years ago)
Author:
ansari
Message:

Mise a jour et ajout de fichier pour taritement multifibres apres

prise de donnees de Nov2009 a Pittsburgh

  • Introduction des classes BRMultiFitsReader et BRBaseProcessor Reza, 27/11/2009
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/AddOn/TAcq/racqumem.cc

    r3671 r3683  
    11#include "racqumem.h"
     2
     3using namespace SOPHYA;
    24
    35//----------------------------------------------------------------
     
    2931  st.act = (uint_4)MemZA_None;
    3032  st.stat = (uint_4)MemZS_Free;
    31   for(int k=0; k<6; k++) st.nbact[k] = 0;
     33  for(int k=0; k<MXNACTMZM; k++) st.nbact[k] = 0;
    3234  uint_8 mzsz = nfibres*npaq*paqsz;
    3335  uint_8 procmzsz = nfibres*npaq*procpaqsz;
     
    4042  serial_ = 0;
    4143  SetFinalizedMask();
     44  SetProcSavedReadyMask();
    4245}
    4346
     
    122125        if (rid >= 0) states[rid].act = MemZA_ProcC;             
    123126        break;
     127      case MemZA_ProcD:
     128        for(uint_4 k=0; k<NbZones(); k++) {
     129          if ((states[k].act == MemZA_None) && (states[k].stat & MemZS_Filled) &&
     130              (states[k].stat & MemZS_ProcC) && !(states[k].stat & MemZS_ProcD) ) {
     131            if (states[k].serial < bestserial) { rid=k; bestserial=states[k].serial; }
     132          }
     133        }
     134        if (rid >= 0) states[rid].act = MemZA_ProcD;             
     135        break;
     136      case MemZA_ProcE:
     137        for(uint_4 k=0; k<NbZones(); k++) {
     138          if ((states[k].act == MemZA_None) && (states[k].stat & MemZS_Filled) &&
     139              (states[k].stat & MemZS_ProcD) && !(states[k].stat & MemZS_ProcE) ) {
     140            if (states[k].serial < bestserial) { rid=k; bestserial=states[k].serial; }
     141          }
     142        }
     143        if (rid >= 0) states[rid].act = MemZA_ProcE;             
     144        break;
     145      case MemZA_ProcF:
     146        for(uint_4 k=0; k<NbZones(); k++) {
     147          if ((states[k].act == MemZA_None) && (states[k].stat & MemZS_Filled) &&
     148              (states[k].stat & MemZS_ProcE) && !(states[k].stat & MemZS_ProcF) ) {
     149            if (states[k].serial < bestserial) { rid=k; bestserial=states[k].serial; }
     150          }
     151        }
     152        if (rid >= 0) states[rid].act = MemZA_ProcF;             
     153        break;
     154      case MemZA_SaveProc:
     155        for(uint_4 k=0; k<NbZones(); k++) {
     156          if ((states[k].act == MemZA_None) &&
     157              (states[k].stat & mask_saveproc_ready_) && !(states[k].stat & MemZS_SavedProc) ) {
     158            if (states[k].serial < bestserial) { rid=k; bestserial=states[k].serial; }
     159          }
     160        }
     161        if (rid >= 0) states[rid].act = MemZA_SaveProc;
     162        break;
    124163      case MemZA_None:   // MTQ pour supprimer un warning
    125164        break;
     
    177216    case MemZS_ProcC :
    178217      if (states[id].act != MemZA_ProcC)  rc = 64;
    179       else states[id].nbact[4]++;         
     218      else states[id].nbact[5]++;         
    180219      states[id].stat |= MemZS_ProcC;
    181220      states[id].act = MemZA_None;
    182221      break;
     222    case MemZS_ProcD :
     223      if (states[id].act != MemZA_ProcD)  rc = 128;
     224      else states[id].nbact[6]++;         
     225      states[id].stat |= MemZS_ProcD;
     226      states[id].act = MemZA_None;
     227      break;
     228    case MemZS_ProcE :
     229      if (states[id].act != MemZA_ProcE)  rc = 256;
     230      else states[id].nbact[7]++;         
     231      states[id].stat |= MemZS_ProcE;
     232      states[id].act = MemZA_None;
     233      break;
     234    case MemZS_ProcF :
     235      if (states[id].act != MemZA_ProcF)  rc = 512;
     236      else states[id].nbact[8]++;         
     237      states[id].stat |= MemZS_ProcF;
     238      states[id].act = MemZA_None;
     239      break;
     240    case MemZS_SavedProc :
     241      if (states[id].act != MemZA_SaveProc)  rc = 1024;
     242      else states[id].nbact[9]++;         
     243      states[id].stat |= MemZS_ProcF;
     244      states[id].act = MemZA_None;
     245      break;
    183246    default :
    184       rc = 128;
     247      rc = 65536;
    185248      states[id].serial = 0;
    186249      states[id].stat = MemZS_Free;
     
    193256}
    194257
    195 /*  MIS en inline
    196 Byte* RAcqMemZoneMgr::GetMemZone(int id)
    197 {
    198   if ((id < 0) || (id >= memzones.size()))  return NULL;
    199   return memzones[id];
    200 }
    201 */
    202258ostream& RAcqMemZoneMgr::Print(ostream& os)
    203259{
     
    208264         << " ProcZoneSize()=" << ProcZoneSize() << endl;
    209265  else cout << " ... NO Processed Data Zones" << endl;
    210   for(uint_4 k=0; k<states.size(); k++)
     266  for(uint_4 k=0; k<states.size(); k++) {
    211267    os << " [" << k << "] Act=" << states[k].act << " Stat=" << states[k].stat
    212        << " NbAct[0..5]=" << states[k].nbact[0] << "," << states[k].nbact[1]
    213        << "," << states[k].nbact[2] << "," << states[k].nbact[3]
    214        << "," << states[k].nbact[4] << "," << states[k].nbact[5] << endl;       
     268       << " NbAct[0.."<< MXNACTMZM-1 << "]=" << states[k].nbact[0];
     269    for(uint_4 j=1; j<MXNACTMZM; j++)  cout << "," << states[k].nbact[j];
     270    cout << endl;
     271  }
    215272  return os;   
    216273}
Note: See TracChangeset for help on using the changeset viewer.