Changeset 11013


Ignore:
Timestamp:
06/13/11 17:05:45 (13 years ago)
Author:
tbretz
Message:
Some little updates; added DataFileDebug
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/src/EventBuilderWrapper.h

    r10995 r11013  
    7979        return result.str();
    8080    }
    81 
    8281};
    8382
     83class DataFileNone : public DataFileImp
     84{
     85public:
     86    DataFileNone(uint32_t id) : DataFileImp(id) { }
     87
     88    bool OpenFile(RUN_HEAD* h)
     89    {
     90        cout << "OPEN_FILE #" << GetRunId() << " (" << this << ")" <<  endl;
     91        cout << " Ver= " << h->Version << endl;
     92        cout << " Typ= " << h->RunType << endl;
     93        cout << " Nb = " << h->NBoard << endl;
     94        cout << " Np = " << h->NPix << endl;
     95        cout << " NTm= " << h->NTm << endl;
     96        cout << " roi= " << h->Nroi << endl;
     97
     98        return true;
     99    }
     100    bool Write(EVENT *)
     101    {
     102        return true;
     103    }
     104    bool Close(RUN_TAIL * = 0)
     105    {
     106        cout << "CLOSE FILE #" << GetRunId() << " (" << this << ")" << endl;
     107        return true;
     108    }
     109};
     110
     111class DataFileDebug : public DataFileNone
     112{
     113public:
     114    DataFileDebug(uint32_t id) : DataFileNone(id) { }
     115
     116    bool Write(EVENT *e)
     117    {
     118        cout << "WRITE_EVENT #" << GetRunId() << " (" << e->EventNum << ")" << endl;
     119        cout << " Typ=" << e->TriggerType << endl;
     120        cout << " roi=" << e->Roi << endl;
     121        cout << " trg=" << e->SoftTrig << endl;
     122        cout << " tim=" << e->PCTime << endl;
     123
     124        return true;
     125    }
     126};
    84127
    85128#include "FAD.h"
     
    265308};
    266309
    267 
     310#ifdef HAS_FITS
    268311class DataFileFits : public DataFileImp
    269312{
     
    624667
    625668};
     669#else
     670#define DataFileFits DataFileRaw
     671#endif
    626672
    627673class EventBuilderWrapper
     
    630676    // FIXME
    631677    static EventBuilderWrapper *This;
     678
     679    MessageImp &fMsg;
    632680
    633681private:
     
    647695    };
    648696
    649     MessageImp &fMsg;
    650 
    651697    enum
    652698    {
     
    655701    };
    656702
    657     bool fFitsFormat;
     703    enum FileFormat_t
     704    {
     705        kNone,
     706        kDebug,
     707        kFits,
     708        kRaw
     709    };
     710
     711    FileFormat_t fFileFormat;
     712
    658713
    659714    uint32_t fMaxRun;
     
    665720    DimDescribedService fDimCurrentEvent;
    666721
     722    int Write(const Time &time, const std::string &txt, int qos)
     723    {
     724        return fMsg.Write(time, txt, qos);
     725    }
     726
    667727public:
    668     EventBuilderWrapper(MessageImp &msg) : fMsg(msg),
    669         fFitsFormat(false), fMaxRun(0),
     728    EventBuilderWrapper(MessageImp &imp) : fMsg(imp),
     729        fFileFormat(kRaw), fMaxRun(0),
    670730        fDimFiles ("FAD_CONTROL/FILES",         "X:1", ""),
    671731        fDimRuns  ("FAD_CONTROL/RUNS",          "I:1", ""),
     
    687747    {
    688748        Abort();
     749
    689750        // FIXME: Used timed_join and abort afterwards
    690751        //        What's the maximum time the eb need to abort?
    691752        fThread.join();
    692         //fMsg.Info("EventBuilder stopped.");
     753        //ffMsg.Info("EventBuilder stopped.");
    693754
    694755        for (vector<DataFileImp*>::iterator it=fFiles.begin(); it!=fFiles.end(); it++)
     
    696757    }
    697758
    698     void Update(ostringstream &msg, int severity)
    699     {
    700         fMsg.Update(msg, severity);
    701     }
    702 
    703759    bool IsThreadRunning()
    704760    {
     
    710766        if (mb*1000000<GetUsedMemory())
    711767        {
    712             // fMsg.Warn("...");
     768            // ffMsg.Warn("...");
    713769            return;
    714770        }
     
    771827    {
    772828        fThread.join();
    773         fMsg.Message("EventBuilder stopped.");
     829        ffMsg.Message("EventBuilder stopped.");
    774830    }*/
    775831
     
    828884    {
    829885        // Check if file already exists...
    830         DataFileImp *file = fFitsFormat ?
    831             static_cast<DataFileImp*>(new DataFileFits(runid)) :
    832             static_cast<DataFileImp*>(new DataFileRaw(runid));
     886        DataFileImp *file = 0;
     887        switch (fFileFormat)
     888        {
     889        case kNone:  file = new DataFileNone(runid);  break;
     890        case kDebug: file = new DataFileDebug(runid); break;
     891        case kFits:  file = new DataFileFits(runid);  break;
     892        case kRaw:   file = new DataFileRaw(runid);   break;
     893        }
    833894
    834895        try
     
    841902            return 0;
    842903        }
    843 
    844         cout << "OPEN_FILE #" << runid << " (" << file << ")" <<  endl;
    845         cout << " Ver= " << h->Version << endl;
    846         cout << " Typ= " << h->RunType << endl;
    847         cout << " Nb = " << h->NBoard << endl;
    848         cout << " Np = " << h->NPix << endl;
    849         cout << " NTm= " << h->NTm << endl;
    850         cout << " roi= " << h->Nroi << endl;
    851904
    852905        fFiles.push_back(file);
     
    864917        Update(fDimFiles, fFiles.size());
    865918
    866 //        fDimFiles.setData(fFiles.size());
    867 //        fDimFiles.update();
    868 
    869919        return reinterpret_cast<FileHandle_t>(file);
    870920    }
     
    873923    {
    874924        DataFileImp *file = reinterpret_cast<DataFileImp*>(handler);
    875 
    876         cout << "WRITE_EVENT " << file->GetRunId() << endl;
    877 
    878         cout << " Evt=" << e->EventNum << endl;
    879         cout << " Typ=" << e->TriggerType << endl;
    880         cout << " roi=" << e->Roi << endl;
    881         cout << " trg=" << e->SoftTrig << endl;
    882         cout << " tim=" << e->PCTime << endl;
    883925
    884926        if (!file->Write(e))
     
    908950        DataFileImp *file = reinterpret_cast<DataFileImp*>(handler);
    909951
    910          const vector<DataFileImp*>::iterator it = find(fFiles.begin(), fFiles.end(), file);
     952        const vector<DataFileImp*>::iterator it = find(fFiles.begin(), fFiles.end(), file);
    911953        if (it==fFiles.end())
    912954        {
     
    918960
    919961        ostringstream str;
    920         str << "CLOSE_RUN requested for " << file->GetRunId() << " (" << file << ")" <<endl;
    921         fMsg.Debug(str);
     962        str << "Closing file for run " << file->GetRunId() << " (" << file << ")" << endl;
     963        fMsg.Info(str);
    922964
    923965        fFiles.erase(it);
    924966
    925967        Update(fDimFiles, fFiles.size());
    926 
    927         //fDimFiles.setData(fFiles.size());
    928         //fDimFiles.update();
    929968
    930969        const bool rc = file->Close(tail);
     
    9741013            str << err;
    9751014        str << "): " << message;
    976         EventBuilderWrapper::This->Update(str, severity);
     1015        EventBuilderWrapper::This->fMsg.Update(str, severity);
    9771016    }
    9781017
     
    9941033        str << message;
    9951034
    996         EventBuilderWrapper::This->Update(str, severity);
     1035        EventBuilderWrapper::This->fMsg.Update(str, severity);
    9971036    }
    9981037
Note: See TracChangeset for help on using the changeset viewer.