#ifndef BOARD_SETTING_H #define BOARD_SETTING_H #include #include #include #include #include #include #include #include "ClassDigitizer.h" #include "macro.h" #define NUM_BOARD_INFO 9 class TGWindow; class TGMainFrame; class BoardSetting{ RQ_OBJECT("BoardSetting") private: TGMainFrame * fMain; Pixel_t red, blue; TGNumberEntry * boardIDEntry; TGTextEntry * entry[NUM_BOARD_INFO]; TGTextEntry * txtSettingFile; int nDigi; Digitizer ** digi; /// board failure status TGTextEntry * enPLLStatus; TGTextEntry * enTempStatus; TGTextEntry * enADCPwrStatus; /// board settings TGCheckButton * bAutoDataFlush; TGCheckButton * bDecimateWF; TGCheckButton * bWFRecord; TGCheckButton * bTrigPropa; TGCheckButton * bExtrac2; TGCheckButton * bDualTrace; TGComboBox * cbAP1; TGComboBox * cbAP2; /// for ComboBox for analog probe 2 TGComboBox * cbDP1; TGComboBox * cbDP2; TGComboBox * cbAggOrg; TGNumberEntry * numAggBLT; /// number of Agg pre Block transfer TGComboBox * cbFanCtrl; /// ACQ control TGComboBox * cbAcqMode; TGCheckButton * bAcqArm; TGComboBox * cbPLLref; TGTextButton * bSWTrigger; TGTextButton * bSWClockSync; TGNumberEntry * numRunStartStopDelay; /// ACQ Status TGTextEntry * txtACQStatus; TGTextEntry * txtACQEventReady; TGTextEntry * txtACQEventFull; TGTextEntry * txtACQClockSource; TGTextEntry * txtACQPLLLock; TGTextEntry * txtACQChDown; TGTextEntry * txtACQSIN; TGTextEntry * txtACQTRIGIN; TGTextEntry * txtACQBoardReady; TGTextEntry * txtACQTemp0; TGTextEntry * txtACQTemp1; TGTextEntry * txtACQTemp2; TGTextEntry * txtACQTemp3; /// Trigger control TGCheckButton * cbGbTRGMskCh[8]; TGCheckButton * cbTRGValMskCh[8]; TGCheckButton * cbTRGOUTMskCh[8]; TGNumberEntry * numMajorCoinWin; TGComboBox * cbTRGMODE; TGComboBox * cbTRGOUTMODE; TGNumberEntry * GlbMajorLevel; TGNumberEntry * TRGMajorLevel; TGNumberEntry * TRGOUTMajorLevel; TGCheckButton * bGLBExtTrigger; TGCheckButton * bTRGExtTrigger; TGCheckButton * bTRGOUTExtTrigger; TGCheckButton * bGLBSoftwareTrigger; TGCheckButton * bTRGSoftwareTrigger; TGCheckButton * bTRGOUTSoftwareTrigger; TGCheckButton * bTRGValMskLVSDGLB; TGCheckButton * bTRGValMskLVSDLCL; TGCheckButton * bEnableExtTRG; TGNumberEntry * numExtendVetoDelay; /// Front Panel IO Control TGComboBox * cbLEMOIO; TGComboBox * cbTRGOUTmode; TGComboBox * cbTRGINCtrl; TGComboBox * cbTRGINMezzanines; TGComboBox * cbAnaMonitor; TGNumberEntry * numBufferOccpGain; /// Readout Control TGComboBox * cbVMEInterrupLevel; TGCheckButton * bOpticalLinkInterrupt; TGCheckButton * bEventAligned; TGCheckButton * bVMEAlogn64Mode; TGCheckButton * bInteruptReleaseMode; TGCheckButton * bEnableExtendedBlockTransfer; /// Redaout Status TGTextEntry * txtEventReady; TGTextEntry * txtBusError; TGTextEntry * txtVMEFIFO; bool isOpened; public: BoardSetting(const TGWindow *p, UInt_t w, UInt_t h, Digitizer ** digi, int nBoard); virtual ~BoardSetting(); bool IsOpen() {return isOpened;} void CloseWindow() { delete this;} void ChangeBoard(); void DisableEdit(); void EnableEdit(); void ReadStatus(); ///=== Button void ResetSettingToDefault(); void ClearBuffer(); void OpenChannelSetting(); ///=== Board Configure void SetBoardConfiguration(); void SetAggregateOrganization(); void SetReadOutAggregate(); void SetFanSpeedControl(); ///=== ACQ Control void SetACQControl(); void SendSoftwareTriggerSignal(); void SendSoftwareClockSyncSignal(); void SetRunStartStopDelay(); ///==== Trigger void SetGlobalTriggerMask(); void SetTriggerValidMask(); void SetTRGOUTMask(); void SetEnableExternalTrigger(); void SetExtendedVetoDelay(); ///==== FrontPanelIO void SetFrontPanelIO(); void SetAnalogMonitorMode(); ///==== Readout Control void SetReadOutControl(); ///==== Others void LogMsg(TString msg); // *SIGNAL* void Haha(Int_t boardID); // *SIGNAL* void ReadData(); void ProgramDefaultBoard(); void ProgramBoardFromFile(); void SaveSettingFile(); }; #endif