#ifndef BOARD_SETTING_H #define BOARD_SETTING_H #include #include #include #include #include #include #include "DigitizerPHA.h" #include "DigitizerPSD.h" #include "macro.h" #define NUM_BOARD_INFO 9 class TGWindow; class TGMainFrame; class BoardSetting{ private: TGMainFrame * fMain; static Pixel_t red, blue; static TGNumberEntry * boardIDEntry; TGTextEntry * entry[NUM_BOARD_INFO]; int nDigi; static Digitizer ** digi; static DigitizerPHA * pha; static DigitizerPSD * psd; /// 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 static TGTextEntry * txtACQStatus; static TGTextEntry * txtACQEventReady; static TGTextEntry * txtACQEventFull; static TGTextEntry * txtACQClockSource; static TGTextEntry * txtACQPLLLock; static TGTextEntry * txtACQChDown; static TGTextEntry * txtACQSIN; static TGTextEntry * txtACQTRIGIN; static TGTextEntry * txtACQBoardReady; static TGTextEntry * txtACQTemp0; static TGTextEntry * txtACQTemp1; static TGTextEntry * txtACQTemp2; static 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; //TGCheckButton * bTRGOUTImp; TGComboBox * cbTRGINCtrl; TGComboBox * cbTRGINMezzanines; TGComboBox * cbAnaMonitor; TGNumberEntry * numBufferOccpGain; /// Readout Control TGComboBox * cbVMEInterrupLevel; TGCheckButton * bOpticalLinkInterrupt; TGCheckButton * bEventAligned; TGCheckButton * bVMEAlogn64Mode; TGCheckButton * bInteruptReleaseMode; TGCheckButton * bEnableExtendedBlockTransfer; /// Redaout Status static TGTextEntry * txtEventReady; static TGTextEntry * txtBusError; static TGTextEntry * txtVMEFIFO; TThread * readStatusThread; static 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(); static void * ReadStatus(void * ptr); /// thread. ///=== Button void ResetSettingToDefault(); void ClearBuffer(); ///=== 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(); }; #endif