2022-08-23 13:43:05 -04:00
# include <TApplication.h>
# include <TGClient.h>
# include <TCanvas.h>
# include <TF1.h>
# include <TRandom.h>
# include <TRootEmbeddedCanvas.h>
# include <TGTableContainer.h>
# include <TGFileDialog.h>
2022-08-24 17:50:21 -04:00
2022-08-23 13:43:05 -04:00
# include "boardSetting.h"
2022-08-24 17:50:21 -04:00
TString boardSettingName [ NUM_BOARD_INFO ] = { " Model " ,
2022-08-23 13:43:05 -04:00
" Board Info " ,
" Link Type " ,
" Serial Number " ,
" Number of channels " ,
" Sampling rate " ,
" ADC bit " ,
" ROC version " ,
2022-08-24 17:50:21 -04:00
" AMC version "
} ;
2022-08-23 13:43:05 -04:00
BoardSetting : : BoardSetting ( const TGWindow * p , UInt_t w , UInt_t h , Digitizer * * digi , int nBoard ) {
this - > digi = digi ;
fMain = new TGMainFrame ( p , w , h ) ;
fMain - > SetWindowName ( " Board Settings " ) ;
fMain - > Connect ( " CloseWindow() " , " BoardSetting " , this , " CloseWindow() " ) ;
2022-08-25 15:27:27 -04:00
TGLayoutHints * layoutHints = new TGLayoutHints ( kLHintsCenterX | kLHintsCenterY , 5 , 5 , 3 , 3 ) ; /// left, right, top, bottom
TGVerticalFrame * vframe = new TGVerticalFrame ( fMain ) ; fMain - > AddFrame ( vframe , layoutHints ) ;
2022-08-23 13:43:05 -04:00
///==========Module choose
2022-08-25 15:27:27 -04:00
TGHorizontalFrame * hframe0 = new TGHorizontalFrame ( vframe , w , 50 ) ; vframe - > AddFrame ( hframe0 , layoutHints ) ;
2022-08-24 17:50:21 -04:00
2022-08-25 15:27:27 -04:00
TGLabel * lb0 = new TGLabel ( hframe0 , " Board ID : " ) ; hframe0 - > AddFrame ( lb0 , layoutHints ) ;
2022-08-24 17:50:21 -04:00
boardIDEntry = new TGNumberEntry ( hframe0 , 0 , 0 , 0 , TGNumberFormat : : kNESInteger , TGNumberFormat : : kNEANonNegative ) ;
hframe0 - > AddFrame ( boardIDEntry , new TGLayoutHints ( kLHintsCenterX , 5 , 5 , 3 , 4 ) ) ;
2022-08-23 13:43:05 -04:00
boardIDEntry - > SetWidth ( 50 ) ;
boardIDEntry - > SetLimits ( TGNumberFormat : : kNELLimitMinMax , 0 , nBoard ) ;
boardIDEntry - > Connect ( " Modified() " , " BoardSetting " , this , " ChangeBoard() " ) ;
if ( nBoard < = 1 ) boardIDEntry - > SetState ( false ) ;
2022-08-24 17:50:21 -04:00
int boardID = boardIDEntry - > GetNumber ( ) ;
2022-08-23 13:43:05 -04:00
2022-08-24 17:50:21 -04:00
///============ fixed info
2022-08-25 15:27:27 -04:00
TGHorizontalFrame * hframeInfo = new TGHorizontalFrame ( vframe ) ; vframe - > AddFrame ( hframeInfo , new TGLayoutHints ( kLHintsExpandX ) ) ;
2022-08-23 13:43:05 -04:00
2022-08-24 17:50:21 -04:00
int numCol = 3 ;
TGVerticalFrame * vframeInfo [ numCol ] ;
for ( int i = 0 ; i < numCol ; i + + ) {
2022-08-25 15:27:27 -04:00
vframeInfo [ i ] = new TGVerticalFrame ( hframeInfo ) ; hframeInfo - > AddFrame ( vframeInfo [ i ] , new TGLayoutHints ( kLHintsExpandX ) ) ;
2022-08-24 17:50:21 -04:00
}
TGHorizontalFrame * hframe [ NUM_BOARD_INFO ] ;
TGLabel * lb [ NUM_BOARD_INFO ] ;
for ( int i = 0 ; i < NUM_BOARD_INFO ; i + + ) {
hframe [ i ] = new TGHorizontalFrame ( vframeInfo [ i % 3 ] , 50 , 50 ) ; vframeInfo [ i % 3 ] - > AddFrame ( hframe [ i ] , new TGLayoutHints ( kLHintsRight , 2 , 2 , 2 , 2 ) ) ;
2022-08-23 13:43:05 -04:00
2022-08-25 15:27:27 -04:00
lb [ i ] = new TGLabel ( hframe [ i ] , boardSettingName [ i ] ) ; hframe [ i ] - > AddFrame ( lb [ i ] , new TGLayoutHints ( kLHintsLeft | kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
2022-08-23 13:43:05 -04:00
2022-08-25 15:27:27 -04:00
entry [ i ] = new TGTextEntry ( hframe [ i ] , new TGTextBuffer ( 1 ) ) ; hframe [ i ] - > AddFrame ( entry [ i ] , new TGLayoutHints ( kLHintsRight , 5 , 5 , 3 , 4 ) ) ;
2022-08-23 13:43:05 -04:00
entry [ i ] - > SetEnabled ( false ) ;
2022-08-25 15:27:27 -04:00
entry [ i ] - > SetText ( Form ( " 0x%x " , 0 ) ) ;
2022-08-24 17:50:21 -04:00
}
///========= Board Configure
2022-08-25 15:27:27 -04:00
TGGroupFrame * gBdCfg = new TGGroupFrame ( vframe , " Board Configure " , kHorizontalFrame ) ; vframe - > AddFrame ( gBdCfg , new TGLayoutHints ( kLHintsExpandX ) ) ;
2022-08-24 17:50:21 -04:00
TGVerticalFrame * vBdCfg = new TGVerticalFrame ( gBdCfg ) ; gBdCfg - > AddFrame ( vBdCfg ) ;
2022-08-25 15:27:27 -04:00
TGHorizontalFrame * hframeBdCfg1 = new TGHorizontalFrame ( vBdCfg ) ; vBdCfg - > AddFrame ( hframeBdCfg1 , layoutHints ) ;
2022-08-24 17:50:21 -04:00
2022-08-25 15:27:27 -04:00
TGCheckButton * bAutoDataFlush = new TGCheckButton ( hframeBdCfg1 , " Auto Data Flush " , 1 ) ; hframeBdCfg1 - > AddFrame ( bAutoDataFlush , layoutHints ) ;
2022-08-24 17:50:21 -04:00
bAutoDataFlush - > SetState ( kButtonDown ) ;
bAutoDataFlush - > Connect ( " Clicked() " , " BoardSetting " , this , " SetAutoDataFlush() " ) ;
2022-08-25 15:27:27 -04:00
TGCheckButton * bDecimateWF = new TGCheckButton ( hframeBdCfg1 , " Decimate WaveForm " , 1 ) ; hframeBdCfg1 - > AddFrame ( bDecimateWF , layoutHints ) ;
2022-08-24 17:50:21 -04:00
bDecimateWF - > SetState ( kButtonUp ) ;
bDecimateWF - > Connect ( " Clicked() " , " BoardSetting " , this , " SetDecimateWF() " ) ;
2022-08-25 15:27:27 -04:00
TGCheckButton * bWFRecord = new TGCheckButton ( hframeBdCfg1 , " Record WaveFrom " , 1 ) ; hframeBdCfg1 - > AddFrame ( bWFRecord , layoutHints ) ;
2022-08-24 17:50:21 -04:00
bWFRecord - > SetState ( kButtonDown ) ;
bWFRecord - > Connect ( " Clicked() " , " BoardSetting " , this , " SetWaveFormRecord() " ) ;
2022-08-25 15:27:27 -04:00
TGCheckButton * bTrigPropa = new TGCheckButton ( hframeBdCfg1 , " Trigger Propagation (coincidence) " , 1 ) ; hframeBdCfg1 - > AddFrame ( bTrigPropa , layoutHints ) ;
2022-08-24 17:50:21 -04:00
bTrigPropa - > SetState ( kButtonUp ) ;
bTrigPropa - > Connect ( " Clicked() " , " BoardSetting " , this , " SetTriggerPropagation() " ) ;
2022-08-25 15:27:27 -04:00
TGCheckButton * bExtrac2 = new TGCheckButton ( hframeBdCfg1 , " Enable Extra2 word " , 1 ) ; hframeBdCfg1 - > AddFrame ( bExtrac2 , layoutHints ) ;
2022-08-24 17:50:21 -04:00
bExtrac2 - > SetState ( kButtonDown ) ;
bExtrac2 - > Connect ( " Clicked() " , " BoardSetting " , this , " SetEnableExtra2() " ) ;
2022-08-25 15:27:27 -04:00
TGHorizontalFrame * hframeBdCfg2 = new TGHorizontalFrame ( vBdCfg ) ; vBdCfg - > AddFrame ( hframeBdCfg2 , layoutHints ) ;
bDualTrace = new TGCheckButton ( hframeBdCfg2 , " Dual Trace " , 1 ) ; hframeBdCfg2 - > AddFrame ( bDualTrace , layoutHints ) ;
2022-08-24 17:50:21 -04:00
bDualTrace - > SetState ( kButtonUp ) ;
bDualTrace - > Connect ( " Clicked() " , " BoardSetting " , this , " SetDualTrace() " ) ;
2022-08-25 15:27:27 -04:00
TGLabel * lbAP1 = new TGLabel ( hframeBdCfg2 , " Ana. Prb. 1 " ) ; hframeBdCfg2 - > AddFrame ( lbAP1 , layoutHints ) ;
cbAP1 = new TGComboBox ( hframeBdCfg2 , " Ana. Pb. 1 " , 1 ) ; hframeBdCfg2 - > AddFrame ( cbAP1 , layoutHints ) ;
2022-08-24 17:50:21 -04:00
cbAP1 - > EnableTextInput ( false ) ;
cbAP1 - > AddEntry ( " Input " , 0 ) ;
cbAP1 - > AddEntry ( " RC-CR (1st derivative) " , 1 ) ;
cbAP1 - > AddEntry ( " RC-CR2 (2st derivative) " , 2 ) ;
cbAP1 - > AddEntry ( " Trapezoid " , 3 ) ;
cbAP1 - > Resize ( 150 , 20 ) ;
cbAP1 - > Select ( 0 ) ;
cbAP1 - > Connect ( " Changed() " , " BoardSetting " , this , " SetAnalogProbe1() " ) ;
2022-08-25 15:27:27 -04:00
TGLabel * lbAP2 = new TGLabel ( hframeBdCfg2 , " Ana. Prb. 2 " ) ; hframeBdCfg2 - > AddFrame ( lbAP2 , layoutHints ) ;
cbAP2 = new TGComboBox ( hframeBdCfg2 , " Ana. Pb. 2 " , 1 ) ; hframeBdCfg2 - > AddFrame ( cbAP2 , layoutHints ) ;
2022-08-24 17:50:21 -04:00
cbAP2 - > EnableTextInput ( false ) ;
cbAP2 - > AddEntry ( " Input " , 0 ) ;
cbAP2 - > AddEntry ( " Threshold " , 1 ) ;
cbAP2 - > AddEntry ( " Trapezoid - Baseline " , 2 ) ;
cbAP2 - > AddEntry ( " Baseline " , 3 ) ;
cbAP2 - > Resize ( 150 , 20 ) ;
cbAP2 - > Select ( 0 ) ;
cbAP2 - > SetEnabled ( false ) ;
cbAP2 - > Connect ( " Changed() " , " BoardSetting " , this , " SetAnalogProbe2() " ) ;
2022-08-23 13:43:05 -04:00
2022-08-25 15:27:27 -04:00
TGLabel * lbDP = new TGLabel ( hframeBdCfg2 , " Digi. Prb. " ) ; hframeBdCfg2 - > AddFrame ( lbDP , layoutHints ) ;
cbDP = new TGComboBox ( hframeBdCfg2 , " Digital. Pb. " , 1 ) ; hframeBdCfg2 - > AddFrame ( cbDP , layoutHints ) ;
2022-08-24 17:50:21 -04:00
cbDP - > EnableTextInput ( false ) ;
cbDP - > AddEntry ( " Peaking " , 0 ) ;
cbDP - > AddEntry ( " Armed (Triggered) " , 1 ) ;
cbDP - > AddEntry ( " Peak Run " , 2 ) ;
cbDP - > AddEntry ( " Pile-Up " , 3 ) ;
cbDP - > AddEntry ( " Peaking " , 4 ) ;
cbDP - > AddEntry ( " TRG Validation Win. " , 5 ) ;
cbDP - > AddEntry ( " Baseline freeze " , 6 ) ;
cbDP - > AddEntry ( " TRG holdoff " , 7 ) ;
cbDP - > AddEntry ( " TRG Validation " , 8 ) ;
cbDP - > AddEntry ( " ACQ busy " , 9 ) ;
cbDP - > AddEntry ( " Zero Cross " , 10 ) ;
cbDP - > AddEntry ( " Ext. TRG " , 11 ) ;
cbDP - > AddEntry ( " Memory full " , 12 ) ;
cbDP - > Resize ( 150 , 20 ) ;
cbDP - > Select ( 0 ) ;
cbDP - > Connect ( " Changed() " , " BoardSetting " , this , " SetDigitalProbe() " ) ;
2022-08-25 15:27:27 -04:00
TGHorizontalFrame * hframeBdCfg3 = new TGHorizontalFrame ( vBdCfg ) ; vBdCfg - > AddFrame ( hframeBdCfg3 , layoutHints ) ;
TGLabel * lbAggOrg = new TGLabel ( hframeBdCfg3 , " Aggregate Organization " ) ; hframeBdCfg3 - > AddFrame ( lbAggOrg , layoutHints ) ;
cbAggOrg = new TGComboBox ( hframeBdCfg3 , " Aggregate Organization " , 1 ) ; hframeBdCfg3 - > AddFrame ( cbAggOrg , layoutHints ) ;
2022-08-24 17:50:21 -04:00
cbAggOrg - > EnableTextInput ( false ) ;
cbAggOrg - > AddEntry ( " Not used " , 0 ) ;
cbAggOrg - > AddEntry ( " 4 " , 2 ) ;
cbAggOrg - > AddEntry ( " 8 " , 3 ) ;
cbAggOrg - > AddEntry ( " 16 " , 4 ) ;
cbAggOrg - > AddEntry ( " 32 " , 5 ) ;
cbAggOrg - > AddEntry ( " 64 " , 6 ) ;
cbAggOrg - > AddEntry ( " 128 " , 7 ) ;
cbAggOrg - > AddEntry ( " 256 " , 8 ) ;
cbAggOrg - > AddEntry ( " 512 " , 9 ) ;
cbAggOrg - > AddEntry ( " 1024 " , 10 ) ;
cbAggOrg - > Resize ( 150 , 20 ) ;
cbAggOrg - > Select ( 0 ) ;
cbAggOrg - > Connect ( " Changed() " , " BoardSetting " , this , " SetAggregateOrganization() " ) ;
2022-08-25 15:27:27 -04:00
TGLabel * lbAggBLT = new TGLabel ( hframeBdCfg3 , " Aggregate pre Readout " ) ; hframeBdCfg3 - > AddFrame ( lbAggBLT , layoutHints ) ;
numAggBLT = new TGNumberEntry ( hframeBdCfg3 , 0 , 0 , 0 , TGNumberFormat : : kNESInteger , TGNumberFormat : : kNEANonNegative ) ; hframeBdCfg3 - > AddFrame ( numAggBLT , layoutHints ) ;
2022-08-24 17:50:21 -04:00
numAggBLT - > SetWidth ( 60 ) ;
numAggBLT - > SetLimits ( TGNumberFormat : : kNELLimitMinMax , 0 , 0x3FF ) ;
numAggBLT - > Connect ( " Modified() " , " BoardSetting " , this , " SetReadOutAggregate() " ) ;
2022-08-25 15:27:27 -04:00
///"FanSpeed Control",
TGLabel * lbFanCtrl = new TGLabel ( hframeBdCfg3 , " Fan Speed Control " , kHorizontalFrame ) ; hframeBdCfg3 - > AddFrame ( lbFanCtrl , layoutHints ) ;
TGComboBox * cbFanCtrl = new TGComboBox ( hframeBdCfg3 , " " , 1 ) ; hframeBdCfg3 - > AddFrame ( cbFanCtrl , layoutHints ) ;
cbFanCtrl - > EnableTextInput ( false ) ;
cbFanCtrl - > AddEntry ( " Slow/Auto " , 0x30 ) ;
cbFanCtrl - > AddEntry ( " Fast " , 0x38 ) ;
cbFanCtrl - > Select ( 0x30 ) ;
cbFanCtrl - > Resize ( 100 , 20 ) ;
2022-08-29 18:06:12 -04:00
///========== ACQ control
TGGroupFrame * gAcqCtrl = new TGGroupFrame ( vframe , " ACQ Control " , kHorizontalFrame ) ; vframe - > AddFrame ( gAcqCtrl , new TGLayoutHints ( kLHintsExpandX ) ) ;
TGVerticalFrame * vAcqCtrl = new TGVerticalFrame ( gAcqCtrl ) ; gAcqCtrl - > AddFrame ( vAcqCtrl ) ;
TGHorizontalFrame * hfAcqCtrl = new TGHorizontalFrame ( vAcqCtrl ) ; vAcqCtrl - > AddFrame ( hfAcqCtrl , layoutHints ) ;
TGLabel * lbAcqMode = new TGLabel ( hfAcqCtrl , " ACQ Mode " ) ; hfAcqCtrl - > AddFrame ( lbAcqMode , layoutHints ) ;
TGComboBox * cbAcqMode = new TGComboBox ( hfAcqCtrl , " ACQ Mode " , 1 ) ; hfAcqCtrl - > AddFrame ( cbAcqMode , layoutHints ) ;
cbAcqMode - > EnableTextInput ( false ) ;
cbAcqMode - > AddEntry ( " Software " , 0 ) ;
cbAcqMode - > AddEntry ( " S-IN / GPI " , 1 ) ;
cbAcqMode - > AddEntry ( " 1st Trig. Ctrl. " , 2 ) ;
cbAcqMode - > AddEntry ( " LVSD Ctrl. " , 3 ) ;
cbAcqMode - > Select ( 0 ) ;
cbAcqMode - > Resize ( 100 , 20 ) ;
TGCheckButton * bAcqArm = new TGCheckButton ( hfAcqCtrl , " ACQ Start/Arm " , 1 ) ; hfAcqCtrl - > AddFrame ( bAcqArm , layoutHints ) ;
bAcqArm - > SetState ( kButtonUp ) ;
//bAcqArm->Connect("Clicked()", "BoardSetting", this, "SetAutoDataFlush()");
TGLabel * lbPLLref = new TGLabel ( hfAcqCtrl , " PLL Ref. " ) ; hfAcqCtrl - > AddFrame ( lbPLLref , layoutHints ) ;
TGComboBox * cbPLLref = new TGComboBox ( hfAcqCtrl , " PLL Ref. " , 1 ) ; hfAcqCtrl - > AddFrame ( cbPLLref , layoutHints ) ;
cbPLLref - > EnableTextInput ( false ) ;
cbPLLref - > AddEntry ( " internal " , 0 ) ;
cbPLLref - > AddEntry ( " external " , 1 ) ;
cbPLLref - > Select ( 0 ) ;
cbPLLref - > Resize ( 100 , 20 ) ;
2022-08-25 15:27:27 -04:00
2022-08-24 17:50:21 -04:00
///========= Trigger Configure
2022-08-25 15:27:27 -04:00
TGGroupFrame * gTRGCfg = new TGGroupFrame ( vframe , " Trigger Configure " , kHorizontalFrame ) ; vframe - > AddFrame ( gTRGCfg , new TGLayoutHints ( kLHintsExpandX ) ) ;
TGVerticalFrame * vTRGCfg = new TGVerticalFrame ( gTRGCfg ) ; gTRGCfg - > AddFrame ( vTRGCfg , new TGLayoutHints ( kLHintsExpandX ) ) ;
2022-08-24 17:50:21 -04:00
2022-08-25 15:27:27 -04:00
///--- varioustype of triggers
TGHorizontalFrame * hframeTRGCfg = new TGHorizontalFrame ( vTRGCfg ) ; vTRGCfg - > AddFrame ( hframeTRGCfg , new TGLayoutHints ( kLHintsCenterY , 2 , 2 , 2 , 2 ) ) ;
TGVerticalFrame * vTRGType = new TGVerticalFrame ( hframeTRGCfg ) ; hframeTRGCfg - > AddFrame ( vTRGType , new TGLayoutHints ( kLHintsCenterX , 5 , 5 , 3 , 4 ) ) ;
2022-08-24 17:50:21 -04:00
2022-08-25 15:27:27 -04:00
TGLabel * lbdummy0 = new TGLabel ( vTRGType , " " ) ;
vTRGType - > AddFrame ( lbdummy0 , new TGLayoutHints ( kLHintsLeft | kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
vTRGType - > AddFrame ( lbdummy0 , new TGLayoutHints ( kLHintsLeft | kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
2022-08-24 17:50:21 -04:00
2022-08-25 15:27:27 -04:00
TGVerticalFrame * vTRGMsk [ 8 ] ;
TGLabel * lbTRGMskCh0 [ 8 ] ;
TGLabel * lbTRGMskCh1 [ 8 ] ;
for ( int i = 0 ; i < 8 ; i + + ) {
vTRGMsk [ i ] = new TGVerticalFrame ( hframeTRGCfg ) ; hframeTRGCfg - > AddFrame ( vTRGMsk [ i ] , new TGLayoutHints ( kLHintsCenterX , 5 , 5 , 3 , 4 ) ) ;
lbTRGMskCh0 [ i ] = new TGLabel ( vTRGMsk [ i ] , Form ( " %d " , 2 * i ) ) ; vTRGMsk [ i ] - > AddFrame ( lbTRGMskCh0 [ i ] , new TGLayoutHints ( kLHintsCenterX , 5 , 5 , 3 , 4 ) ) ;
lbTRGMskCh1 [ i ] = new TGLabel ( vTRGMsk [ i ] , Form ( " %d " , 2 * i + 1 ) ) ; vTRGMsk [ i ] - > AddFrame ( lbTRGMskCh1 [ i ] , new TGLayoutHints ( kLHintsCenterX , 5 , 5 , 3 , 4 ) ) ;
}
2022-08-24 17:50:21 -04:00
2022-08-25 15:27:27 -04:00
///"Global Trigger Mask",
TGLabel * lbGbTRGMsk = new TGLabel ( vTRGType , " Global Trigger Mask " ) ; vTRGType - > AddFrame ( lbGbTRGMsk , new TGLayoutHints ( kLHintsRight | kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
TGCheckButton * cbGbTRGMskCh [ 8 ] ;
2022-08-24 17:50:21 -04:00
for ( int i = 0 ; i < 8 ; i + + ) {
2022-08-25 15:27:27 -04:00
cbGbTRGMskCh [ i ] = new TGCheckButton ( vTRGMsk [ i ] , " " ) ; vTRGMsk [ i ] - > AddFrame ( cbGbTRGMskCh [ i ] , new TGLayoutHints ( kLHintsCenterX , 5 , 5 , 3 , 4 ) ) ;
2022-08-24 17:50:21 -04:00
}
///"Trigger Validation Mask",
2022-08-25 15:27:27 -04:00
TGLabel * lbTRGValMsk = new TGLabel ( vTRGType , " Trigger Validation Mask " ) ; vTRGType - > AddFrame ( lbTRGValMsk , new TGLayoutHints ( kLHintsRight | kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
2022-08-24 17:50:21 -04:00
TGCheckButton * cbTRGValMskCh [ 8 ] ;
for ( int i = 0 ; i < 8 ; i + + ) {
2022-08-25 15:27:27 -04:00
cbTRGValMskCh [ i ] = new TGCheckButton ( vTRGMsk [ i ] , " " ) ; vTRGMsk [ i ] - > AddFrame ( cbTRGValMskCh [ i ] , new TGLayoutHints ( kLHintsCenterX , 5 , 5 , 3 , 4 ) ) ;
2022-08-24 17:50:21 -04:00
}
///"Front Panel TRG-OUT Enable Mask",
2022-08-25 15:27:27 -04:00
TGLabel * lbTRGOUTMsk = new TGLabel ( vTRGType , " TRG-OUT Mask " ) ; vTRGType - > AddFrame ( lbTRGOUTMsk , new TGLayoutHints ( kLHintsRight | kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
2022-08-24 17:50:21 -04:00
TGCheckButton * cbTRGOUTMskCh [ 8 ] ;
for ( int i = 0 ; i < 8 ; i + + ) {
2022-08-25 15:27:27 -04:00
cbTRGOUTMskCh [ i ] = new TGCheckButton ( vTRGMsk [ i ] , " " ) ; vTRGMsk [ i ] - > AddFrame ( cbTRGOUTMskCh [ i ] , new TGLayoutHints ( kLHintsCenterX , 5 , 5 , 3 , 4 ) ) ;
2022-08-23 13:43:05 -04:00
}
2022-08-25 15:27:27 -04:00
TGVerticalFrame * vTRGMsk1 = new TGVerticalFrame ( hframeTRGCfg ) ; hframeTRGCfg - > AddFrame ( vTRGMsk1 , new TGLayoutHints ( kLHintsCenterX , 5 , 5 , 3 , 4 ) ) ;
vTRGMsk1 - > AddFrame ( lbdummy0 , new TGLayoutHints ( kLHintsLeft | kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
vTRGMsk1 - > AddFrame ( lbdummy0 , new TGLayoutHints ( kLHintsLeft | kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
TGLabel * lbMajorCoinWin = new TGLabel ( vTRGMsk1 , " Maj. Coin. Win. " ) ; vTRGMsk1 - > AddFrame ( lbMajorCoinWin , new TGLayoutHints ( kLHintsRight | kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
TGLabel * lbTRGMODE = new TGLabel ( vTRGMsk1 , " TRG MODE " ) ; vTRGMsk1 - > AddFrame ( lbTRGMODE , new TGLayoutHints ( kLHintsRight | kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
TGLabel * lbTRGOUTMODE = new TGLabel ( vTRGMsk1 , " TRG-OUT MODE " ) ; vTRGMsk1 - > AddFrame ( lbTRGOUTMODE , new TGLayoutHints ( kLHintsRight | kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
2022-08-24 17:50:21 -04:00
2022-08-25 15:27:27 -04:00
TGVerticalFrame * vTRGMsk2 = new TGVerticalFrame ( hframeTRGCfg ) ; hframeTRGCfg - > AddFrame ( vTRGMsk2 , new TGLayoutHints ( kLHintsCenterX , 5 , 5 , 3 , 4 ) ) ;
vTRGMsk2 - > AddFrame ( lbdummy0 , new TGLayoutHints ( kLHintsLeft | kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
vTRGMsk2 - > AddFrame ( lbdummy0 , new TGLayoutHints ( kLHintsLeft | kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
2022-08-24 17:50:21 -04:00
2022-08-25 15:27:27 -04:00
numMajorCoinWin = new TGNumberEntry ( vTRGMsk2 , 0 , 0 , 0 , TGNumberFormat : : kNESInteger , TGNumberFormat : : kNEANonNegative ) ; vTRGMsk2 - > AddFrame ( numMajorCoinWin ) ;
2022-08-24 17:50:21 -04:00
numMajorCoinWin - > Resize ( 70 , 20 ) ;
2022-08-25 15:27:27 -04:00
TGComboBox * cbTRGMODE = new TGComboBox ( vTRGMsk2 , " TRG MODE " , 1 ) ; vTRGMsk2 - > AddFrame ( cbTRGMODE ) ;
2022-08-24 17:50:21 -04:00
cbTRGMODE - > EnableTextInput ( false ) ;
cbTRGMODE - > AddEntry ( " OR " , 0 ) ;
cbTRGMODE - > AddEntry ( " AND " , 1 ) ;
cbTRGMODE - > AddEntry ( " Majority " , 2 ) ;
cbTRGMODE - > Resize ( 70 , 20 ) ;
cbTRGMODE - > Select ( 0 ) ;
2022-08-25 15:27:27 -04:00
TGComboBox * cbTRGOUTMODE = new TGComboBox ( vTRGMsk2 , " TRG MODE " , 1 ) ; vTRGMsk2 - > AddFrame ( cbTRGOUTMODE ) ;
2022-08-24 17:50:21 -04:00
cbTRGOUTMODE - > EnableTextInput ( false ) ;
cbTRGOUTMODE - > AddEntry ( " OR " , 0 ) ;
cbTRGOUTMODE - > AddEntry ( " AND " , 1 ) ;
cbTRGOUTMODE - > AddEntry ( " Majority " , 2 ) ;
cbTRGOUTMODE - > Resize ( 70 , 20 ) ;
cbTRGOUTMODE - > Select ( 0 ) ;
2022-08-25 15:27:27 -04:00
TGVerticalFrame * vTRGMsk3 = new TGVerticalFrame ( hframeTRGCfg ) ; hframeTRGCfg - > AddFrame ( vTRGMsk3 , new TGLayoutHints ( kLHintsCenterX , 5 , 5 , 3 , 4 ) ) ;
vTRGMsk3 - > AddFrame ( lbdummy0 , new TGLayoutHints ( kLHintsLeft | kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
TGLabel * lbMajorLevel = new TGLabel ( vTRGMsk3 , " Majority Level " ) ; vTRGMsk3 - > AddFrame ( lbMajorLevel , layoutHints ) ;
GlbMajorLevel = new TGNumberEntry ( vTRGMsk3 , 0 , 0 , 0 , TGNumberFormat : : kNESInteger , TGNumberFormat : : kNEANonNegative ) ; vTRGMsk3 - > AddFrame ( GlbMajorLevel , new TGLayoutHints ( kLHintsCenterY , 2 , 2 , 2 , 2 ) ) ;
2022-08-24 17:50:21 -04:00
GlbMajorLevel - > Resize ( 70 , 17 ) ;
2022-08-25 15:27:27 -04:00
TRGMajorLevel = new TGNumberEntry ( vTRGMsk3 , 0 , 0 , 0 , TGNumberFormat : : kNESInteger , TGNumberFormat : : kNEANonNegative ) ; vTRGMsk3 - > AddFrame ( TRGMajorLevel , new TGLayoutHints ( kLHintsCenterY , 2 , 2 , 2 , 2 ) ) ;
2022-08-24 17:50:21 -04:00
TRGMajorLevel - > Resize ( 70 , 17 ) ;
2022-08-25 15:27:27 -04:00
TRGOUTMajorLevel = new TGNumberEntry ( vTRGMsk3 , 0 , 0 , 0 , TGNumberFormat : : kNESInteger , TGNumberFormat : : kNEANonNegative ) ; vTRGMsk3 - > AddFrame ( TRGOUTMajorLevel , new TGLayoutHints ( kLHintsCenterY , 2 , 2 , 2 , 2 ) ) ;
2022-08-24 17:50:21 -04:00
TRGOUTMajorLevel - > Resize ( 70 , 17 ) ;
2022-08-25 15:27:27 -04:00
TGVerticalFrame * vTRGMsk4 = new TGVerticalFrame ( hframeTRGCfg ) ; hframeTRGCfg - > AddFrame ( vTRGMsk4 , new TGLayoutHints ( kLHintsCenterX , 5 , 5 , 3 , 4 ) ) ;
TGLabel * lbLVDSTrigger = new TGLabel ( vTRGMsk4 , " LVDS " ) ; vTRGMsk4 - > AddFrame ( lbLVDSTrigger , layoutHints ) ;
TGLabel * lbdummy1 = new TGLabel ( vTRGMsk4 , " Trg. " ) ; vTRGMsk4 - > AddFrame ( lbdummy1 , layoutHints ) ;
2022-08-24 17:50:21 -04:00
2022-08-25 15:27:27 -04:00
TGCheckButton * bGLBLVDSTrigger = new TGCheckButton ( vTRGMsk4 , " " , 1 ) ; vTRGMsk4 - > AddFrame ( bGLBLVDSTrigger , layoutHints ) ;
2022-08-24 17:50:21 -04:00
bGLBLVDSTrigger - > SetState ( kButtonUp ) ;
2022-08-25 15:27:27 -04:00
vTRGMsk4 - > AddFrame ( lbdummy0 , layoutHints ) ;
2022-08-24 17:50:21 -04:00
2022-08-25 15:27:27 -04:00
TGCheckButton * bTRGOUTLVDSTrigger = new TGCheckButton ( vTRGMsk4 , " " , 1 ) ; vTRGMsk4 - > AddFrame ( bTRGOUTLVDSTrigger , layoutHints ) ;
2022-08-24 17:50:21 -04:00
bTRGOUTLVDSTrigger - > SetState ( kButtonUp ) ;
2022-08-25 15:27:27 -04:00
TGVerticalFrame * vTRGMsk5 = new TGVerticalFrame ( hframeTRGCfg ) ; hframeTRGCfg - > AddFrame ( vTRGMsk5 , new TGLayoutHints ( kLHintsCenterX , 5 , 5 , 3 , 4 ) ) ;
TGLabel * lbExtTrigger = new TGLabel ( vTRGMsk5 , " Ext. " ) ; vTRGMsk5 - > AddFrame ( lbExtTrigger , layoutHints ) ;
TGLabel * lbdummy2 = new TGLabel ( vTRGMsk5 , " Trg. " ) ; vTRGMsk5 - > AddFrame ( lbdummy2 , layoutHints ) ;
2022-08-24 17:50:21 -04:00
2022-08-25 15:27:27 -04:00
TGCheckButton * bGLBExtTrigger = new TGCheckButton ( vTRGMsk5 , " " , 1 ) ; vTRGMsk5 - > AddFrame ( bGLBExtTrigger , layoutHints ) ;
2022-08-24 17:50:21 -04:00
bGLBExtTrigger - > SetState ( kButtonUp ) ;
2022-08-25 15:27:27 -04:00
TGCheckButton * bTRGExtTrigger = new TGCheckButton ( vTRGMsk5 , " " , 1 ) ; vTRGMsk5 - > AddFrame ( bTRGExtTrigger , layoutHints ) ;
2022-08-24 17:50:21 -04:00
bTRGExtTrigger - > SetState ( kButtonUp ) ;
2022-08-25 15:27:27 -04:00
TGCheckButton * bTRGOUTExtTrigger = new TGCheckButton ( vTRGMsk5 , " " , 1 ) ; vTRGMsk5 - > AddFrame ( bTRGOUTExtTrigger , layoutHints ) ;
2022-08-24 17:50:21 -04:00
bTRGExtTrigger - > SetState ( kButtonUp ) ;
2022-08-25 15:27:27 -04:00
TGVerticalFrame * vTRGMsk6 = new TGVerticalFrame ( hframeTRGCfg ) ; hframeTRGCfg - > AddFrame ( vTRGMsk6 , new TGLayoutHints ( kLHintsCenterX , 5 , 5 , 3 , 4 ) ) ;
TGLabel * lbSWTrigger = new TGLabel ( vTRGMsk6 , " Software " ) ; vTRGMsk6 - > AddFrame ( lbSWTrigger , layoutHints ) ;
TGLabel * lbdummy3 = new TGLabel ( vTRGMsk6 , " Trg. " ) ; vTRGMsk6 - > AddFrame ( lbdummy3 , layoutHints ) ;
2022-08-24 17:50:21 -04:00
2022-08-25 15:27:27 -04:00
TGCheckButton * bGLBSoftwareTrigger = new TGCheckButton ( vTRGMsk6 , " " , 1 ) ; vTRGMsk6 - > AddFrame ( bGLBSoftwareTrigger , layoutHints ) ;
2022-08-24 17:50:21 -04:00
bGLBSoftwareTrigger - > SetState ( kButtonDown ) ;
2022-08-25 15:27:27 -04:00
TGCheckButton * bTRGSoftwareTrigger = new TGCheckButton ( vTRGMsk6 , " " , 1 ) ; vTRGMsk6 - > AddFrame ( bTRGSoftwareTrigger , layoutHints ) ;
2022-08-24 17:50:21 -04:00
bTRGSoftwareTrigger - > SetState ( kButtonDown ) ;
2022-08-25 15:27:27 -04:00
TGCheckButton * bTRGOUTSoftwareTrigger = new TGCheckButton ( vTRGMsk6 , " " , 1 ) ; vTRGMsk6 - > AddFrame ( bTRGOUTSoftwareTrigger , layoutHints ) ;
2022-08-24 17:50:21 -04:00
bTRGOUTSoftwareTrigger - > SetState ( kButtonDown ) ;
2022-08-25 15:27:27 -04:00
TGHorizontalFrame * hframeTRGCfg2 = new TGHorizontalFrame ( vTRGCfg ) ; vTRGCfg - > AddFrame ( hframeTRGCfg2 , new TGLayoutHints ( kLHintsCenterY | kLHintsRight , 2 , 2 , 2 , 2 ) ) ;
TGCheckButton * bTRGValMskLVSDGLB = new TGCheckButton ( hframeTRGCfg2 , " LVSD Global Trg. Valid " , 1 ) ; hframeTRGCfg2 - > AddFrame ( bTRGValMskLVSDGLB , new TGLayoutHints ( kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
TGCheckButton * bTRGValMskLVSDLCL = new TGCheckButton ( hframeTRGCfg2 , " LVSD Local Trg. Valid " , 1 ) ; hframeTRGCfg2 - > AddFrame ( bTRGValMskLVSDLCL , new TGLayoutHints ( kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
2022-08-24 17:50:21 -04:00
///"Disable External Trigger",
2022-08-25 15:27:27 -04:00
TGCheckButton * bEnableExtTRG = new TGCheckButton ( hframeTRGCfg2 , " Enable Ext. Trigger " , 1 ) ; hframeTRGCfg2 - > AddFrame ( bEnableExtTRG , new TGLayoutHints ( kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
2022-08-24 17:50:21 -04:00
///"Extended Veto Delay",
2022-08-25 15:27:27 -04:00
TGLabel * lbExtendVetoDelay = new TGLabel ( hframeTRGCfg2 , " Extended Veto Delay " ) ; hframeTRGCfg2 - > AddFrame ( lbExtendVetoDelay , new TGLayoutHints ( kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
TGNumberEntry * numExtendVetoDelay = new TGNumberEntry ( hframeTRGCfg2 , 0 , 0 , 0 , TGNumberFormat : : kNESInteger , TGNumberFormat : : kNEANonNegative ) ; hframeTRGCfg2 - > AddFrame ( numExtendVetoDelay , new TGLayoutHints ( kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
numExtendVetoDelay - > Resize ( 70 , 17 ) ;
2022-08-24 17:50:21 -04:00
2022-08-25 15:27:27 -04:00
TGHorizontalFrame * hRow = new TGHorizontalFrame ( vframe ) ; vframe - > AddFrame ( hRow , new TGLayoutHints ( kLHintsExpandX ) ) ;
2022-08-24 17:50:21 -04:00
///=================="Front Panel IO Control",
2022-08-25 15:27:27 -04:00
TGGroupFrame * gFrontIOCtrl = new TGGroupFrame ( hRow , " Front Panel IO Control " , kHorizontalFrame ) ; hRow - > AddFrame ( gFrontIOCtrl ) ;
TGVerticalFrame * vFrontIOCtrl = new TGVerticalFrame ( gFrontIOCtrl ) ; gFrontIOCtrl - > AddFrame ( vFrontIOCtrl , new TGLayoutHints ( kLHintsCenterX , 5 , 5 , 3 , 4 ) ) ;
TGHorizontalFrame * hframeFrontIOCtrl = new TGHorizontalFrame ( vFrontIOCtrl ) ; vFrontIOCtrl - > AddFrame ( hframeFrontIOCtrl , new TGLayoutHints ( kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
TGLabel * lbLEMOIO = new TGLabel ( hframeFrontIOCtrl , " LEMO I/O " ) ; hframeFrontIOCtrl - > AddFrame ( lbLEMOIO , new TGLayoutHints ( kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
TGComboBox * cbLEMOIO = new TGComboBox ( hframeFrontIOCtrl , " " , 1 ) ; hframeFrontIOCtrl - > AddFrame ( cbLEMOIO , new TGLayoutHints ( kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
cbLEMOIO - > EnableTextInput ( false ) ;
cbLEMOIO - > AddEntry ( " NIM " , 0 ) ;
cbLEMOIO - > AddEntry ( " TTL " , 1 ) ;
cbLEMOIO - > Select ( 0 ) ;
cbLEMOIO - > Resize ( 50 , 20 ) ;
TGCheckButton * bTRGOUTImp = new TGCheckButton ( hframeFrontIOCtrl , " TRG-OUT high impe. " , 1 ) ; hframeFrontIOCtrl - > AddFrame ( bTRGOUTImp , layoutHints ) ;
bTRGOUTImp - > SetState ( kButtonUp ) ;
TGHorizontalFrame * hframeFrontIOCtrl1 = new TGHorizontalFrame ( vFrontIOCtrl ) ; vFrontIOCtrl - > AddFrame ( hframeFrontIOCtrl1 , new TGLayoutHints ( kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
TGLabel * lbTRGINCtrl = new TGLabel ( hframeFrontIOCtrl1 , " TRG-IN control " ) ; hframeFrontIOCtrl1 - > AddFrame ( lbTRGINCtrl , new TGLayoutHints ( kLHintsCenterY | kLHintsLeft , 5 , 5 , 3 , 4 ) ) ;
TGComboBox * cbTRGINCtrl = new TGComboBox ( hframeFrontIOCtrl1 , " " , 1 ) ; hframeFrontIOCtrl1 - > AddFrame ( cbTRGINCtrl , new TGLayoutHints ( kLHintsCenterY | kLHintsCenterX , 5 , 5 , 3 , 4 ) ) ;
cbTRGINCtrl - > EnableTextInput ( false ) ;
cbTRGINCtrl - > AddEntry ( " trigger sync with the edge of the TRIG-IN " , 0 ) ;
cbTRGINCtrl - > AddEntry ( " trigger sync with the whole TRIG-IN " , 1 ) ;
cbTRGINCtrl - > Select ( 0 ) ;
cbTRGINCtrl - > Resize ( 250 , 20 ) ;
TGLabel * lbTRGINMezzanines = new TGLabel ( hframeFrontIOCtrl1 , " TRG-IN to Mezzanines " ) ; hframeFrontIOCtrl1 - > AddFrame ( lbTRGINMezzanines , new TGLayoutHints ( kLHintsCenterY | kLHintsLeft , 5 , 5 , 3 , 4 ) ) ;
TGComboBox * cbTRGINMezzanines = new TGComboBox ( hframeFrontIOCtrl1 , " " , 1 ) ; hframeFrontIOCtrl1 - > AddFrame ( cbTRGINMezzanines , new TGLayoutHints ( kLHintsCenterY | kLHintsCenterX , 5 , 5 , 3 , 4 ) ) ;
cbTRGINMezzanines - > EnableTextInput ( false ) ;
cbTRGINMezzanines - > AddEntry ( " Trigger local is sync with TRG-IN " , 0 ) ;
cbTRGINMezzanines - > AddEntry ( " TRG-IN send to mezzanines (no delay) " , 1 ) ;
cbTRGINMezzanines - > Select ( 0 ) ;
cbTRGINMezzanines - > Resize ( 200 , 20 ) ;
//TODO Combine them into 1
TGHorizontalFrame * hframeFrontIOCtrl3 = new TGHorizontalFrame ( vFrontIOCtrl ) ; vFrontIOCtrl - > AddFrame ( hframeFrontIOCtrl3 , new TGLayoutHints ( kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
TGLabel * lbTRGOUTMODE2 = new TGLabel ( hframeFrontIOCtrl3 , " TRG-OUT Mode " ) ; hframeFrontIOCtrl3 - > AddFrame ( lbTRGOUTMODE2 , new TGLayoutHints ( kLHintsCenterY | kLHintsLeft , 5 , 5 , 3 , 4 ) ) ;
TGComboBox * cbTRGOUTmode = new TGComboBox ( hframeFrontIOCtrl3 , " " , 1 ) ; hframeFrontIOCtrl3 - > AddFrame ( cbTRGOUTmode , new TGLayoutHints ( kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
cbTRGOUTmode - > EnableTextInput ( false ) ;
cbTRGOUTmode - > AddEntry ( " TRG-OUT is mode-select " , 0 ) ;
cbTRGOUTmode - > AddEntry ( " TRG-OUT is forced " , 1 ) ;
cbTRGOUTmode - > Select ( 0 ) ;
cbTRGOUTmode - > Resize ( 160 , 20 ) ;
TGComboBox * cbForceTRGOUT = new TGComboBox ( hframeFrontIOCtrl3 , " " , 1 ) ; hframeFrontIOCtrl3 - > AddFrame ( cbForceTRGOUT , new TGLayoutHints ( kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
cbForceTRGOUT - > EnableTextInput ( false ) ;
cbForceTRGOUT - > AddEntry ( " force TRG-OUT is 0 " , 0 ) ;
cbForceTRGOUT - > AddEntry ( " force TRG-OUT is 1 " , 1 ) ;
cbForceTRGOUT - > Select ( 0 ) ;
cbForceTRGOUT - > Resize ( 150 , 20 ) ;
TGComboBox * cbTRGOUTmodeSelec = new TGComboBox ( hframeFrontIOCtrl3 , " " , 1 ) ; hframeFrontIOCtrl3 - > AddFrame ( cbTRGOUTmodeSelec , new TGLayoutHints ( kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
cbTRGOUTmodeSelec - > EnableTextInput ( false ) ;
cbTRGOUTmodeSelec - > AddEntry ( " Trigger " , 0 ) ;
cbTRGOUTmodeSelec - > AddEntry ( " Motherboard Probe " , 1 ) ;
cbTRGOUTmodeSelec - > AddEntry ( " Channel Probe " , 2 ) ;
cbTRGOUTmodeSelec - > AddEntry ( " S-IN " , 3 ) ;
cbTRGOUTmodeSelec - > Select ( 0 ) ;
cbTRGOUTmodeSelec - > Resize ( 150 , 20 ) ;
TGComboBox * cbTRGOUTMotherProbe = new TGComboBox ( hframeFrontIOCtrl3 , " " , 1 ) ; hframeFrontIOCtrl3 - > AddFrame ( cbTRGOUTMotherProbe , new TGLayoutHints ( kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
cbTRGOUTMotherProbe - > EnableTextInput ( false ) ;
cbTRGOUTMotherProbe - > AddEntry ( " RUN " , 0 ) ;
cbTRGOUTMotherProbe - > AddEntry ( " Sync Clock " , 1 ) ;
cbTRGOUTMotherProbe - > AddEntry ( " Clock Phase " , 2 ) ;
cbTRGOUTMotherProbe - > AddEntry ( " BUSY/UNLOCK " , 3 ) ;
cbTRGOUTMotherProbe - > Select ( 0 ) ;
cbTRGOUTMotherProbe - > Resize ( 100 , 20 ) ;
2022-08-24 17:50:21 -04:00
///"Front Panel LVDS IO New Features",
///"LVDS IO Data",
2022-08-25 15:27:27 -04:00
///"Analog Monitor Mode
TGHorizontalFrame * hframeFrontIOCtrl4 = new TGHorizontalFrame ( vFrontIOCtrl ) ; vFrontIOCtrl - > AddFrame ( hframeFrontIOCtrl4 , new TGLayoutHints ( kLHintsCenterY , 5 , 5 , 3 , 2 ) ) ;
TGLabel * lbAnaMonitor = new TGLabel ( hframeFrontIOCtrl4 , " Analog Monitor Mode (MON/Sigma) " ) ; hframeFrontIOCtrl4 - > AddFrame ( lbAnaMonitor , new TGLayoutHints ( kLHintsCenterY | kLHintsLeft , 5 , 5 , 3 , 2 ) ) ;
TGComboBox * cbAnaMonitor = new TGComboBox ( hframeFrontIOCtrl4 , " " , 1 ) ; hframeFrontIOCtrl4 - > AddFrame ( cbAnaMonitor , new TGLayoutHints ( kLHintsCenterY , 5 , 5 , 3 , 2 ) ) ;
cbAnaMonitor - > EnableTextInput ( false ) ;
cbAnaMonitor - > AddEntry ( " Trigger Majority " , 0 ) ;
cbAnaMonitor - > AddEntry ( " Test " , 1 ) ;
cbAnaMonitor - > AddEntry ( " Buffer Occupancy " , 3 ) ;
cbAnaMonitor - > AddEntry ( " Voltage Level " , 4 ) ;
cbAnaMonitor - > Select ( 0 ) ;
cbAnaMonitor - > Resize ( 150 , 20 ) ;
///"Buffer Occupancy Gain
TGLabel * lbBufferOccpGain = new TGLabel ( hframeFrontIOCtrl4 , " Buffer Occupancy Gain " ) ; hframeFrontIOCtrl4 - > AddFrame ( lbBufferOccpGain , new TGLayoutHints ( kLHintsCenterY | kLHintsLeft , 5 , 5 , 3 , 2 ) ) ;
TGNumberEntry * numBufferOccpGain = new TGNumberEntry ( hframeFrontIOCtrl4 , 0 , 0 , 0 , TGNumberFormat : : kNESInteger , TGNumberFormat : : kNEANonNegative ) ; hframeFrontIOCtrl4 - > AddFrame ( numBufferOccpGain , new TGLayoutHints ( kLHintsCenterY , 5 , 5 , 3 , 2 ) ) ;
numBufferOccpGain - > Resize ( 70 , 17 ) ;
/**
2022-08-24 17:50:21 -04:00
///"Readout Control",
2022-08-25 15:27:27 -04:00
TGGroupFrame * gReadoutCtrl = new TGGroupFrame ( vframe , " ReadOut Control " , kHorizontalFrame ) ; vframe - > AddFrame ( gReadoutCtrl ) ;
TGVerticalFrame * vReadoutCtrl = new TGVerticalFrame ( gReadoutCtrl ) ; gReadoutCtrl - > AddFrame ( vReadoutCtrl , new TGLayoutHints ( kLHintsCenterX , 5 , 5 , 3 , 4 ) ) ;
TGHorizontalFrame * hReadoutCtrl = new TGHorizontalFrame ( vReadoutCtrl ) ; vReadoutCtrl - > AddFrame ( hReadoutCtrl , new TGLayoutHints ( kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
TGLabel * lbVMEInterruptLevel = new TGLabel ( hReadoutCtrl , " VME Interrupt Level " ) ; hReadoutCtrl - > AddFrame ( lbVMEInterruptLevel , new TGLayoutHints ( kLHintsCenterY | kLHintsLeft , 5 , 5 , 3 , 4 ) ) ;
TGNumberEntry * numVMEInterruptLeveln = new TGNumberEntry ( hReadoutCtrl , 0 , 0 , 0 , TGNumberFormat : : kNESInteger , TGNumberFormat : : kNEANonNegative ) ; hReadoutCtrl - > AddFrame ( numVMEInterruptLeveln , new TGLayoutHints ( kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
numVMEInterruptLeveln - > SetLimits ( TGNumberFormat : : kNELLimitMinMax , 0 , 7 ) ;
numVMEInterruptLeveln - > Resize ( 70 , 17 ) ;
TGCheckButton * bOpticalLinkInterrupt = new TGCheckButton ( hReadoutCtrl , " Optical Link Interrupt " , 1 ) ; hReadoutCtrl - > AddFrame ( bOpticalLinkInterrupt , layoutHints ) ;
bOpticalLinkInterrupt - > SetState ( kButtonUp ) ;
TGCheckButton * bEventAligned = new TGCheckButton ( hReadoutCtrl , " Event Aligned Enabled " , 1 ) ; hReadoutCtrl - > AddFrame ( bEventAligned , layoutHints ) ;
bEventAligned - > SetState ( kButtonUp ) ;
TGCheckButton * bVMEAlogn64Mode = new TGCheckButton ( hReadoutCtrl , " 64-bit aligned " , 1 ) ; hReadoutCtrl - > AddFrame ( bVMEAlogn64Mode , layoutHints ) ;
bVMEAlogn64Mode - > SetState ( kButtonUp ) ;
TGCheckButton * bVMEBaseAddRelocation = new TGCheckButton ( hReadoutCtrl , " VME baase addr. relocation " , 1 ) ; hReadoutCtrl - > AddFrame ( bVMEBaseAddRelocation , layoutHints ) ;
bVMEBaseAddRelocation - > SetState ( kButtonUp ) ;
*/
2022-08-24 17:50:21 -04:00
///"Readout Status"
2022-08-25 15:27:27 -04:00
TGGroupFrame * gReadoutStatus = new TGGroupFrame ( hRow , " Readout Status " , kHorizontalFrame ) ; hRow - > AddFrame ( gReadoutStatus , new TGLayoutHints ( kLHintsExpandX | kLHintsExpandY , 5 ) ) ;
TGVerticalFrame * vReadoutStatus = new TGVerticalFrame ( gReadoutStatus ) ; gReadoutStatus - > AddFrame ( vReadoutStatus , new TGLayoutHints ( kLHintsExpandY , 5 , 5 , 3 , 2 ) ) ;
TGTextEntry * txtEventReady = new TGTextEntry ( vReadoutStatus , new TGTextBuffer ( 1 ) ) ; vReadoutStatus - > AddFrame ( txtEventReady , new TGLayoutHints ( kLHintsRight , 5 , 5 , 3 , 3 ) ) ;
txtEventReady - > SetEnabled ( false ) ;
txtEventReady - > SetText ( " Event Ready " ) ;
txtEventReady - > SetTextColor ( kGreen ) ;
TGTextEntry * txtBusError = new TGTextEntry ( vReadoutStatus , new TGTextBuffer ( 1 ) ) ; vReadoutStatus - > AddFrame ( txtBusError , new TGLayoutHints ( kLHintsRight , 5 , 5 , 3 , 3 ) ) ;
txtBusError - > SetEnabled ( false ) ;
txtBusError - > SetText ( " no Bus Error " ) ;
txtBusError - > SetTextColor ( kGreen ) ;
TGTextEntry * txtVMEFIFO = new TGTextEntry ( vReadoutStatus , new TGTextBuffer ( 1 ) ) ; vReadoutStatus - > AddFrame ( txtVMEFIFO , new TGLayoutHints ( kLHintsRight , 5 , 5 , 3 , 3 ) ) ;
txtVMEFIFO - > SetEnabled ( false ) ;
txtVMEFIFO - > SetText ( " VME FIFO EMPTY " ) ;
txtVMEFIFO - > SetTextColor ( kGreen ) ;
2022-08-29 18:06:12 -04:00
///===== LVSD
TGHorizontalFrame * hframeLVSD = new TGHorizontalFrame ( vframe ) ; vframe - > AddFrame ( hframeLVSD , new TGLayoutHints ( kLHintsCenterY , 5 , 5 , 3 , 4 ) ) ;
TGLabel * lbLVSD = new TGLabel ( hframeLVSD , " LVSD Control is not impletmented. " ) ; hframeLVSD - > AddFrame ( lbLVSD , new TGLayoutHints ( kLHintsCenterY | kLHintsLeft , 5 , 5 , 3 , 2 ) ) ;
2022-08-25 15:27:27 -04:00
///==================== Read digitizer Setting
ReadDigitizerSetting ( ) ;
2022-08-24 17:50:21 -04:00
2022-08-23 13:43:05 -04:00
fMain - > MapSubwindows ( ) ;
fMain - > Resize ( fMain - > GetDefaultSize ( ) ) ;
fMain - > MapWindow ( ) ;
isOpened = true ;
}
BoardSetting : : ~ BoardSetting ( ) {
isOpened = false ;
delete boardIDEntry ;
2022-08-24 17:50:21 -04:00
//delete [] entry;
delete bDualTrace ;
delete cbAP1 ;
delete cbAP2 ;
delete cbDP ;
2022-08-23 13:43:05 -04:00
/// fMain must be delete last;
fMain - > Cleanup ( ) ;
delete fMain ;
}
2022-08-25 15:27:27 -04:00
void BoardSetting : : ReadDigitizerSetting ( ) {
}
2022-08-23 13:43:05 -04:00
void BoardSetting : : ChangeBoard ( ) {
int boardID = boardIDEntry - > GetNumber ( ) ;
return ;
}
2022-08-24 17:50:21 -04:00
void BoardSetting : : SetAutoDataFlush ( ) {
printf ( " ========== Auto Data Flush \n " ) ;
}
void BoardSetting : : SetDecimateWF ( ) {
printf ( " ========== Decimate WF \n " ) ;
}
void BoardSetting : : SetWaveFormRecord ( ) {
printf ( " ========== WF Record \n " ) ;
}
void BoardSetting : : SetDualTrace ( ) {
printf ( " ========== Dual trace \n " ) ;
cbAP2 - > SetEnabled ( bDualTrace - > IsDown ( ) ) ;
}
void BoardSetting : : SetTriggerPropagation ( ) {
printf ( " ========== Trigger Propagation \n " ) ;
}
void BoardSetting : : SetEnableExtra2 ( ) {
printf ( " ========== SetEnableExtra2 \n " ) ;
}
void BoardSetting : : SetAnalogProbe1 ( ) {
printf ( " ========== SetAnalogProbe1, %d \n " , cbAP1 - > GetSelected ( ) ) ;
}
void BoardSetting : : SetAnalogProbe2 ( ) {
printf ( " ========== SetAnalogProbe2, %d \n " , cbAP2 - > GetSelected ( ) ) ;
}
void BoardSetting : : SetDigitalProbe ( ) {
printf ( " ========== SetDigitalProbe, %d \n " , cbDP - > GetSelected ( ) ) ;
}
void BoardSetting : : SetAggregateOrganization ( ) {
printf ( " ========== SetAggregateOrganization, %d \n " , cbAggOrg - > GetSelected ( ) ) ;
}
void BoardSetting : : SetReadOutAggregate ( ) {
printf ( " ========== SetReadOutAggregate, %d \n " , ( int ) numAggBLT - > GetNumber ( ) ) ;
}