#ifndef __DGFSetupPanel_h__
#define __DGFSetupPanel_h__
namespace std {} using namespace std;
#include <iostream>
#include <iomanip>
#include "TList.h"
#include "TGWindow.h"
#include "TGFrame.h"
#include "TGButton.h"
#include "TMrbLofNamedX.h"
#include "TMrbDGF.h"
#include "TGMrbCheckButton.h"
#include "TGMrbRadioButton.h"
#include "TGMrbTextButton.h"
#include "TGMrbPictureButton.h"
#include "TGMrbLabelEntry.h"
#include "TGMrbFocusList.h"
#include "DGFControlCommon.h"
#include "DGFModule.h"
class DGFSetupPanel : public TGCompositeFrame {
public:
enum { kNofPPCs = 8 };
enum EDGFSetupCmdId { kDGFSetupCamacHost,
kDGFSetupConnectToEsone,
kDGFSetupReloadDGFs,
kDGFSetupAbortBusySync,
kDGFSetupRestartEsone,
kDGFSetupAbortEsone,
kDGFSetupModuleSelectAll,
kDGFSetupModuleSelectNone,
kDGFSetupModuleSelectColumn
};
enum EDGFSetupCodeId { kDGFSetupCodeSystemFPGA = BIT(0),
kDGFSetupCodeFippiFPGA = BIT(1),
kDGFSetupCodeDSP = BIT(2)
};
public:
DGFSetupPanel(TGCompositeFrame * TabFrame);
virtual ~DGFSetupPanel() { fHeap.Delete(); };
void SelectModule(Int_t FrameId, Int_t Selection);
void PerformAction(Int_t FrameId, Int_t Selection);
Bool_t ConnectToEsone();
Bool_t ReloadDGFs();
Bool_t AbortDGFs();
Bool_t RestartEsone();
Bool_t TurnUserPSAOnOff(Bool_t ActivateFlag);
Bool_t TurnUserPSAOnOff(DGFModule * Module, Bool_t ActivateFlag);
Bool_t SetSwitchBus(Bool_t IndivFlag);
Bool_t SetInSynch(Bool_t SyncFlag);
Bool_t SetInSynch(DGFModule * Module, Bool_t ActivateFlag);
Bool_t SetSynchWait(Bool_t SimulFlag);
Bool_t SetSynchWait(DGFModule * Module, Bool_t ActivateFlag);
protected:
Bool_t DaqIsRunning();
void SetupGeneral();
protected:
TList fHeap;
TGGroupFrame * fCAMACFrame;
TGMrbLabelEntry * fCAMACHostEntry;
TGMrbCheckButtonGroup * fDGFFrame;
TGGroupFrame * fCodeFrame;
TGMrbCheckButtonList * fCodes;
TGMrbRadioButtonList * fBroadCast;
TGGroupFrame * fModules;
TGMrbCheckButtonList * fCluster[kNofClusters];
TGHorizontalFrame * fSelectFrame;
TGMrbPictureButtonList * fColSelect[kNofModulesPerCluster];
TGMrbPictureButtonList * fAllSelect;
TGMrbTextButtonGroup * fActionFrame;
TMrbLofNamedX fSetupDGFModes;
TMrbLofNamedX fSetupDGFCodes;
TMrbLofNamedX fSetupConnect;
TMrbLofNamedX fSetupBroadCast;
TMrbLofNamedX fLofModuleKeys[kNofClusters];
TGMrbFocusList fFocusList;
ClassDef(DGFSetupPanel, 0)
};
#endif