#ifndef PIXSCANPANEL #define PIXSCANPANEL #include "ui_PixScanPanelBase.h" #include #include #include #include #include //Added by qt3to4: #include class QObject; class QComboBox; class QCheckBox; class QSpinBox; class QDoubleSpinBox; class Q3ListBox; class QPushButton; class QLabel; class Q3GroupBox; class STControlEngine; class STRodCrate; class QString; /* namespace PixLib{ */ /* class PixScan; */ /* } */ using namespace PixLib; class PixScanPanel : public QWidget, public Ui::PixScanPanelBase{ Q_OBJECT public: PixScanPanel( STControlEngine &engine_in, QWidget* parent = 0, const char* name = 0, Qt::WFlags fl = Qt::WType_TopLevel, bool editor=false); ~PixScanPanel(); void setStdScanCfg(int type); public slots: void updateConfig(); void updateConfigSel(); void updateConfigHandlers(); /* creates a new PixScan object for user-config */ void newConfig(); void loadConfig(); void clearConfig(); void saveConfig(); void readFromHandles(); void readFromHandlersFromTable(int row, int); void updateLoopPts(int); void updateLoopSettings(int); void loadLoopPts(int); void loadLoop0Pts(){loadLoopPts(0);}; void loadLoop1Pts(){loadLoopPts(1);}; void loadLoop2Pts(){loadLoopPts(2);}; void fileEnabled(bool); void setEvtLabel(QString txt); void showLoop(int); void updateStatus(int nSteps0, int nSteps1, int nSteps2, int nMasks, int in_currFe, int sramFillLevel, int triggerRate, int hitRate, int status); void runButton_clicked(); void browseButton_clicked(const char *in_path); void browseButton_clicked(){browseButton_clicked(0);}; void rawBrowseButton_clicked(const char *in_path); void rawBrowseButton_clicked(){rawBrowseButton_clicked(0);}; void updateCrateGrpSel(); void clearScanLabelMemory(){m_scanLabels.clear();}; // updates the observedRod-Object of m_engine void observedRodChanged(int index); // updates the observedCrate-Object of m_engine void observedCrateChanged(int index); // sets VCAL to the "magic" value to leave it unchanged during a scan void fixVCAL(bool); // if VCAL is set to this value manually, translate accordingly void VcalChanged(int); // ditto for MCC strobe delay void fixSdelay(bool); void SdelayChanged(int); // right-click on a config table item: only works for combo-boxes in last column void openTableMenu(int, int, int); void scanRunning(int type); void scanRunning(){scanRunning(0);}; void enableRawFileStuff(bool); void toggleHitOccupancy(); void toggleToTAverage(); void toggleClusHis(); void setFeReg0(){setFeReg(0);}; void setFeReg1(){setFeReg(1);}; void setFeReg2(){setFeReg(2);}; void setFeReg(int); void updateFegrSel(); signals: void enableBocAnaScan(bool flag); void scanFileChanged(const char*); private: STControlEngine & m_engine; PixScan *m_stdScan, *m_scanCfg; std::map m_knownHandles; std::vector m_scanLabels; // translates individual loop_i variable names to arrays QComboBox* loopType[MAX_LOOPS]; QComboBox* loopEndAction[MAX_LOOPS]; QCheckBox* loopActive[MAX_LOOPS]; QCheckBox* loopDspProc[MAX_LOOPS]; QCheckBox* loopRegular[MAX_LOOPS]; QCheckBox* loopFree[MAX_LOOPS]; QCheckBox* loopOnDsp[MAX_LOOPS]; QDoubleSpinBox* loopStart[MAX_LOOPS]; QDoubleSpinBox* loopStop[MAX_LOOPS]; QSpinBox* loopStep[MAX_LOOPS]; Q3ListBox* loopPtsBox[MAX_LOOPS]; QPushButton* loopLoadPoints[MAX_LOOPS]; QLabel* loopFromLabel[MAX_LOOPS]; QLabel* loopToLabel[MAX_LOOPS]; QLabel* loopStepsLabel[MAX_LOOPS]; QLabel* loopPtlLabel[MAX_LOOPS]; QLabel* loopPostActLabel[MAX_LOOPS]; Q3GroupBox* LoopBox[MAX_LOOPS]; QComboBox* loopFERegName[MAX_LOOPS]; QLabel* fillingLabel; // estimate remaining time: int m_MeasurementStartTime; int m_StatusUpdatesRecieved; double m_MeasurementStartPercentage; double m_lastPercentage; // integer holding the current std. scan ID (-1 of not standard) int m_currStdScanID; // map of PixScan pre-sets and std. scan IDs std::map m_stdScanIDs; }; #endif // PIXSCANPANEL