/* This file implements the class detailed in the MyWindow.h file Author:Michael Ausilio */ #include "TGNumberEntry.h" #include "TGLabel.h" #include #include #include #include #include "TGMenu.h" #include #include "MyWindow.h" #include #include "TGClient.h" //Numerical IDS for all drop down menu entries //enum enum MenuID{ //file menu LOAD_PROFILE=1, SAVE_PROFILE, SAVE_PROFILE_DEFAULT, CLEAR_PROFILE_DEFAULT, GENERATE_TEXT_DAQ, GENERATE_ACTION_DAQ, QUIT, //excute menu CSM_IOS_CONTROL, PROGRAM_FPGA, RESET_CSM, SELECT_HARDWARE_TDO, SELECT_SOFTWARE_TDO, INIT_DAQ, SEARCH_JTAG, SETUP_RUN_COND, AUTO_RUN_SETUP, CHECK_MEZZ_ON_OFF, CHECK_ALL_HARDWARE, RUN_DIAG, //run Diagnostics sub menu GET_RAW, GET_EVENT, GET_SEQ_EVENT, //SUBMENU END PROG_VERT_FPGA, PROG_PROM, PROG_VERT_PROM, VERIF_VERT_FPGA, VERIF_PROM, SHUTDOWN_FPGA, READ_FPGA_CONFIG, SAVE_ERROR, SHOW_ERROR, //JTAG MENU SETUP_JTAG, RESET_TAP, SETUP_CSM, SETUP_TTCRX, SETUP_GOL, SETUP_MEZZ_ALL, SETUP_MEZZ_IND, //mezzcard setup individual sub menu MEZZ_0, MEZZ_1, MEZZ_2, MEZZ_3, MEZZ_4, MEZZ_5, MEZZ_6, MEZZ_7, MEZZ_8, MEZZ_9, MEZZ_10, MEZZ_11, MEZZ_12, MEZZ_13, MEZZ_14, MEZZ_15, MEZZ_16, MEZZ_17, //submenu ends LOAD_NOM_THRESHOLD, DIAGNOSTICS, //Diagnostic Submenu CSM_ID, CSM_VERS, CSM_AMT_PARITY, CSM_AMT_PHASE, CSM_AMT_FULL_PHASE, CSM_STATUS, CSM_TTCRX_STATUS, CSM_READ_ONLY, CSM_FULL_READ_WRITE, CSM_FULL_READ, CSM_CONFIG_READ_WRITE, CSM_CONFIG_READ, CSM_PARA_READ_WRITE, CSM_PARA_READ, //SUBMENU ENDS //JTAG AGAIN SEARCH_MEZZ, GET_DEVICE_JTAG, GET_ALL_DEVICE, GET_PROM_ID, GET_CSM_CHIP_ID, GET_TTCRX_ID, GET_GOL_ID, GET_CSM_ID, GET_AMT_ID, CLEAR_SETUP_STATUS, RESET_CSM_FPGA, //TTCvi menu STATUS_CONTROL, BGO_CONTROL, RESET_BOARD, RESET_L1A, EVENT_COUNTER_RESET, BUNCH_COUNTER_RESET, EVENT_BUNCH_RESET, ONE_SOFT_TRIGGER, RAND_SOFT_TRIGGER, //RANDOM SOFTWARE TRIGGER SUBMENU HZ1, HZ100, KHZ1, KHZ5, KHZ10, KHZ25, KHZ50, KHZ100, //SUBMENU ENDS EXTERN_TRIGGER, //EXTERNAL TRIGGER SUBMENU CHANNEL_0, CHANNEL_1, CHANNEL_2, CHANNEL_3, DISABLE_TRIGGER, TRIGGER_SELECT, //help menu HELP, ABOUT }; MyWindow::MyWindow(const TGWindow *p) { UInt_t w = 1100; UInt_t h = 700; //setting up main window fMain = new TGMainFrame(p, w, h); fMain->SetWindowName("Main Window"); //frame for menu //for what ever reasons if you intialize this variable after frame 7 //it doesnt work frame8_9_10_v7 = new TGHorizontalFrame(fMain,w,h); frame2 = new TGHorizontalFrame(fMain,w,h); frame3 = new TGVerticalFrame(frame2,w,h); frame4 = new TGHorizontalFrame(fMain,w,h); framev1 = new TGVerticalFrame(frame4, w,h); framev2 = new TGVerticalFrame(frame4, w,h); framev3 = new TGVerticalFrame(frame4, w,h); framev4 = new TGVerticalFrame(frame4, w,h); framev5 = new TGVerticalFrame(frame4, w,h); framev6 = new TGVerticalFrame(frame4, w,h); frame5 = new TGHorizontalFrame(fMain,w,400); frame6 = new TGHorizontalFrame(fMain,w,400); frame7 = new TGHorizontalFrame(fMain,w,400); frame8_9_10 = new TGVerticalFrame(frame8_9_10_v7,400,w); frame8 = new TGHorizontalFrame(frame8_9_10,w,400); framev7 = new TGVerticalFrame(frame8_9_10_v7, 400,h); frame9 = new TGHorizontalFrame(frame8_9_10,w,400); frame10 = new TGHorizontalFrame(frame8_9_10); //frame11 = new TGHorizontalFrame(fMain, w,400) frameB = new TGHorizontalFrame(fMain,w,400); //intiliazing menu // windowMenu = new TGMenuBar(frame1, 200, 30,kHorizontalFrame); windowMenu = new TGMenuBar(fMain, 700, 600,kHorizontalFrame); //building file dropdownmenu windowMenuFile = new TGPopupMenu(fMain); windowMenuFile->AddEntry("Load Profile",LOAD_PROFILE); windowMenuFile->AddEntry("Save Profile", SAVE_PROFILE); windowMenuFile->AddSeparator(); windowMenuFile->AddEntry("Save Profile as Default", SAVE_PROFILE_DEFAULT); windowMenuFile->AddEntry("Clear Default Profile", CLEAR_PROFILE_DEFAULT); windowMenuFile->AddSeparator(); windowMenuFile->AddEntry("Generate All Text Files for DAQ", GENERATE_TEXT_DAQ); windowMenuFile->AddEntry("Generate All Action/Sequence Files for DAQ", GENERATE_ACTION_DAQ); windowMenuFile->AddSeparator(); windowMenuFile->AddEntry("Quit", QUIT); //connecting menu entries in file dropdown menu windowMenuFile->Connect("Activated(Int_t)","MyWindow",this,"HandleFileMenu(Int_t)"); //building execute drop downmenu windowMenuExecute = new TGPopupMenu(fMain); windowMenuExecute->AddEntry("CSM IOs Control",CSM_IOS_CONTROL); windowMenuExecute->AddEntry("Program FPGA from PROM via IO pin",PROGRAM_FPGA); windowMenuExecute->AddEntry("Reset CSM via IO pin",RESET_CSM); windowMenuExecute->AddEntry("Select Hardware TDO In",SELECT_HARDWARE_TDO); windowMenuExecute->AddEntry("Select Software TDO In",SELECT_SOFTWARE_TDO); windowMenuExecute->AddSeparator(); windowMenuExecute->AddEntry("INIT DAQ",INIT_DAQ); windowMenuExecute->AddEntry("Search JTAG Driver",SEARCH_JTAG); windowMenuExecute->AddSeparator(); windowMenuExecute->AddEntry("Setup Run Condition",SETUP_RUN_COND); windowMenuExecute->AddEntry("Auto Run Setup",AUTO_RUN_SETUP); windowMenuExecute->AddSeparator(); windowMenuExecute->AddEntry("Check Mezz Card On/Off Status",CHECK_MEZZ_ON_OFF); windowMenuExecute->AddEntry("Check All DAQ HardWare",CHECK_ALL_HARDWARE); //creating Run Diagnostics sub menu runDiag = new TGPopupMenu(fMain); runDiag->AddEntry("Get Raw Data",GET_RAW); runDiag->AddEntry("Get One Event",GET_EVENT); runDiag->AddEntry("Get One Sequential Event",GET_SEQ_EVENT); windowMenuExecute->AddPopup("Run Diagnostics", runDiag); windowMenuExecute->AddSeparator(); windowMenuExecute->AddEntry("Program VertexII FPGA (CSM)",PROG_VERT_FPGA); windowMenuExecute->AddEntry("Program PROM",PROG_PROM); windowMenuExecute->AddEntry("Program VertexII from PROM",PROG_VERT_PROM); windowMenuExecute->AddSeparator(); windowMenuExecute->AddEntry("Verify VertexII FPGA (CSM)",VERIF_VERT_FPGA); windowMenuExecute->AddEntry("Verify PROM",VERIF_PROM ); windowMenuExecute->AddSeparator(); windowMenuExecute->AddEntry("Shutdown FPGA",SHUTDOWN_FPGA); windowMenuExecute->AddEntry("Read FPGA Config. Status",READ_FPGA_CONFIG); windowMenuExecute->AddSeparator(); windowMenuExecute->AddEntry("Save Error Report",SAVE_ERROR); windowMenuExecute->AddEntry("Show Error Report",SHOW_ERROR); //connecting menu entries in "Execute" drop down menu windowMenuExecute->Connect("Activated(Int_t)","MyWindow",this,"HandleExecuteMenu(Int_t)"); //building JTAG portion of menu windowMenuJTAG = new TGPopupMenu(fMain); windowMenuJTAG->AddEntry("Setup JTAG Chain",SETUP_JTAG); windowMenuJTAG->AddEntry("Reset TAP",RESET_TAP); windowMenuJTAG->AddSeparator(); windowMenuJTAG->AddEntry("Setup CSM",SETUP_CSM); windowMenuJTAG->AddEntry("Setup TTCrx",SETUP_TTCRX); windowMenuJTAG->AddSeparator(); windowMenuJTAG->AddEntry("Setup GOL",SETUP_GOL); windowMenuJTAG->AddSeparator(); windowMenuJTAG->AddEntry("MezzCard Setup All",SETUP_MEZZ_ALL); mezzIndSetup = new TGPopupMenu(fMain); mezzIndSetup->AddEntry("Mezzanine 0", MEZZ_0); mezzIndSetup->AddEntry("Mezzanine 1",MEZZ_1); mezzIndSetup->AddEntry("Mezzanine 2", MEZZ_2); mezzIndSetup->AddEntry("Mezzanine 3", MEZZ_3); mezzIndSetup->AddEntry("Mezzanine 4",MEZZ_4); mezzIndSetup->AddEntry("Mezzanine 5", MEZZ_5); mezzIndSetup->AddEntry("Mezzanine 6", MEZZ_6); mezzIndSetup->AddEntry("Mezzanine 7",MEZZ_7); mezzIndSetup->AddEntry("Mezzanine 8",MEZZ_8); mezzIndSetup->AddEntry("Mezzanine 9",MEZZ_9); mezzIndSetup->AddEntry("Mezzanine 10",MEZZ_10); mezzIndSetup->AddEntry("Mezzanine 11",MEZZ_11); mezzIndSetup->AddEntry("Mezzanine 12",MEZZ_12); mezzIndSetup->AddEntry("Mezzanine 13",MEZZ_13); mezzIndSetup->AddEntry("Mezzanine 14",MEZZ_14); mezzIndSetup->AddEntry("Mezzanine 15", MEZZ_15); mezzIndSetup->AddEntry("Mezzanine 16",MEZZ_16); mezzIndSetup->AddEntry("Mezzanine 17",MEZZ_17); windowMenuJTAG->AddPopup("MezzCard Setup Ind",mezzIndSetup); windowMenuJTAG->AddEntry("Load Nominal Threshold",LOAD_NOM_THRESHOLD); windowMenuJTAG->AddSeparator(); diagJTAG= new TGPopupMenu(fMain); diagJTAG->AddEntry("CSM ID",CSM_ID); diagJTAG->AddEntry("CSM Versin Date",CSM_VERS); diagJTAG->AddSeparator(); diagJTAG->AddEntry("CSM AMT Parity Error",CSM_AMT_PARITY); diagJTAG->AddEntry("CSM AMT Phase Error",CSM_AMT_PHASE); diagJTAG->AddEntry("CSM AMT Full Phase Samples",CSM_AMT_FULL_PHASE); diagJTAG->AddSeparator(); diagJTAG->AddEntry("CSM Status",CSM_STATUS); diagJTAG->AddEntry("CSM TTCrx Status",CSM_TTCRX_STATUS); diagJTAG->AddEntry("CSM Read Only Bits",CSM_READ_ONLY); diagJTAG->AddSeparator(); diagJTAG->AddEntry("CSM Full Read/Write",CSM_FULL_READ_WRITE); diagJTAG->AddEntry("CSM Full Read Only",CSM_FULL_READ); diagJTAG->AddSeparator(); diagJTAG->AddEntry("CSM Config Read/Wrie",CSM_CONFIG_READ_WRITE); diagJTAG->AddEntry("CSM Config Read Only",CSM_CONFIG_READ); diagJTAG->AddSeparator(); diagJTAG->AddEntry("CSM Para. Read/Write",CSM_PARA_READ_WRITE); diagJTAG->AddEntry("CSM Para. Read Only",CSM_PARA_READ); windowMenuJTAG->AddPopup("Diagnostics",diagJTAG); windowMenuJTAG->AddEntry("Search Mezzanine Card (AMTs)",SEARCH_MEZZ); windowMenuJTAG->AddSeparator(); windowMenuJTAG->AddEntry("Get Device List in JTAG Chain",GET_DEVICE_JTAG); windowMenuJTAG->AddEntry("Get All Device ID",GET_ALL_DEVICE); windowMenuJTAG->AddSeparator(); windowMenuJTAG->AddEntry("Get PROM ID",GET_PROM_ID); windowMenuJTAG->AddEntry("Get CSM Chip ID",GET_CSM_CHIP_ID); windowMenuJTAG->AddEntry("Get TTCrx ID",GET_TTCRX_ID); windowMenuJTAG->AddEntry("Get GOL ID",GET_GOL_ID); windowMenuJTAG->AddEntry("Get CSM ID",GET_CSM_ID); windowMenuJTAG->AddEntry("Get All AMT ID",GET_AMT_ID); windowMenuJTAG->AddSeparator(); windowMenuJTAG->AddEntry("Clear Setup Status",CLEAR_SETUP_STATUS); windowMenuJTAG->AddEntry("Reset CSM FPGA",RESET_CSM_FPGA); //connecting menu entires in "JTAG" menu windowMenuJTAG->Connect("Activated(Int_t)","MyWindow",this,"HandleJTAGMenu(Int_t)"); //buidling TTCvi portion of menu windowMenuTTCvi = new TGPopupMenu(fMain); windowMenuTTCvi->AddEntry("Status and Control",STATUS_CONTROL); windowMenuTTCvi->AddEntry("B-Go Control",BGO_CONTROL); windowMenuTTCvi->AddSeparator(); windowMenuTTCvi->AddEntry("Reset Board",RESET_BOARD); windowMenuTTCvi->AddEntry("Reset L1A FIFO",RESET_L1A); windowMenuTTCvi->AddSeparator(); windowMenuTTCvi->AddEntry("Event Counter Reset",EVENT_COUNTER_RESET); windowMenuTTCvi->AddEntry("Bunch Counter Reset",BUNCH_COUNTER_RESET); windowMenuTTCvi->AddEntry("Event and Bunch Counter Reset",EVENT_BUNCH_RESET); windowMenuTTCvi->AddSeparator(); windowMenuTTCvi->AddEntry("One Shot SoftWare Trigger",ONE_SOFT_TRIGGER); ttcviRandTrigger = new TGPopupMenu(fMain); ttcviRandTrigger->AddEntry("1 Hz",HZ1); ttcviRandTrigger->AddEntry("100 Hz",HZ100); ttcviRandTrigger->AddEntry("1 KHz",KHZ1); ttcviRandTrigger->AddEntry("5 KHz",KHZ5); ttcviRandTrigger->AddEntry("10 KHz",KHZ10); ttcviRandTrigger->AddEntry("25 KHz",KHZ25); ttcviRandTrigger->AddEntry("50 KHz",KHZ50); ttcviRandTrigger->AddEntry("100 KHz",KHZ100); windowMenuTTCvi->AddPopup("Random Software Trigger", ttcviRandTrigger); windowMenuTTCvi->AddSeparator(); ttcviExtTrigger = new TGPopupMenu(fMain); ttcviExtTrigger->AddEntry("L1A Channel 0",CHANNEL_0); ttcviExtTrigger->AddEntry("L1A Channel 1",CHANNEL_1); ttcviExtTrigger->AddEntry("L1A Channel 2",CHANNEL_2); ttcviExtTrigger->AddEntry("L1A Channel 3",CHANNEL_3); windowMenuTTCvi->AddPopup("External Trigger", ttcviExtTrigger); windowMenuTTCvi->AddEntry("Disable Trigger",DISABLE_TRIGGER); windowMenuTTCvi->AddSeparator(); windowMenuTTCvi->AddEntry("Trigger Select",TRIGGER_SELECT); //connecting menu entires in "TTCvi" menu windowMenuTTCvi->Connect("Activated(Int_t)","MyWindow",this,"HandleTTCviMenu(Int_t)"); //help menu windowMenuHelp = new TGPopupMenu(fMain); windowMenuHelp->AddEntry("Help on Buttons",HELP); windowMenuHelp->AddEntry("About CSM1 DAQ Control", ABOUT); //connecting menu entires in "TTCvi" menu windowMenuHelp->Connect("Activated(Int_t)","MyWindow",this,"HandleHelpMenu(Int_t)"); //adding menus to frame windowMenu->AddPopup("File", windowMenuFile, new TGLayoutHints(kLHintsTop | kLHintsExpandY, 0, 4, 0, 0)); windowMenu->AddPopup("Execute", windowMenuExecute, new TGLayoutHints(kLHintsTop | kLHintsExpandY, 0, 4, 0, 0)); windowMenu->AddPopup("JTAG", windowMenuJTAG, new TGLayoutHints(kLHintsTop | kLHintsExpandY, 0, 4, 0, 0)); windowMenu->AddPopup("TTCvi", windowMenuTTCvi, new TGLayoutHints(kLHintsTop | kLHintsExpandY, 0, 4, 0, 0)); windowMenu->AddPopup("Help", windowMenuHelp, new TGLayoutHints(kLHintsTop | kLHintsExpandY, 0, 4, 0, 0)); //elements in window //build 1st horizontal frame startCSMBut= new TGTextButton(frame2, "Start CSM DAQ" ); restCSMBut=new TGTextButton(frame2, "Reset CSM Chip" ) ; sampleAMTBut=new TGTextButton(frame2, "Sample AMT Phase" ); csmBoardLab = new TGLabel(frame3, "CSM Board Status"); csmBoardBox = new TGComboBox(frame3,100); frame2->AddFrame(startCSMBut, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame2->AddFrame(restCSMBut, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame2->AddFrame(sampleAMTBut, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame3->AddFrame(csmBoardLab, new TGLayoutHints(kLHintsExpandY,2,2,2,2)); frame3->AddFrame(csmBoardBox, new TGLayoutHints(kLHintsExpandY,2,2,2,2)); frame2->AddFrame(frame3, new TGLayoutHints(kLHintsLeft,2,2,2,2)); //building second horizontal frame PROMLab = new TGLabel(framev1, "PROM:"); PROMBox = new TGCheckButton(framev1, new TGHotString ("Included")); XC2V1000Lab= new TGLabel(framev2, "XC2V1000:"); XC2V1000Box=new TGCheckButton(framev2, new TGHotString ("Included")); GOLLab= new TGLabel(framev3, "GOL:"); GOLBox=new TGCheckButton(framev3, new TGHotString ("Included")); TTCrxLab= new TGLabel(framev4, "TTCrx:"); TTCrxBox= new TGCheckButton(framev4, new TGHotString ("Included")); CSMLab= new TGLabel(framev5, "CSM:"); CSMBox= new TGCheckButton(framev5, new TGHotString ("Included")); mezzLab= new TGLabel(framev6, "Mezz. Cards:"); mezzBox=new TGCheckButton(framev6, new TGHotString ("Included")); framev1->AddFrame(PROMLab, new TGLayoutHints(kLHintsExpandY,2,2,2,2)); framev1->AddFrame(PROMBox, new TGLayoutHints(kLHintsExpandY,2,2,2,2)); framev2->AddFrame(XC2V1000Lab, new TGLayoutHints(kLHintsExpandY,2,2,2,2)); framev2->AddFrame(XC2V1000Box, new TGLayoutHints(kLHintsExpandY,2,2,2,2)); framev3->AddFrame(GOLLab, new TGLayoutHints(kLHintsExpandY,2,2,2,2)); framev3->AddFrame(GOLBox, new TGLayoutHints(kLHintsExpandY,2,2,2,2)); framev4->AddFrame(TTCrxLab, new TGLayoutHints(kLHintsExpandY,2,2,2,2)); framev4->AddFrame(TTCrxBox, new TGLayoutHints(kLHintsExpandY,2,2,2,2)); framev5->AddFrame(CSMLab, new TGLayoutHints(kLHintsExpandY,2,2,2,2)); framev5->AddFrame(CSMBox, new TGLayoutHints(kLHintsExpandY,2,2,2,2)); framev6->AddFrame(mezzLab, new TGLayoutHints(kLHintsExpandY,2,2,2,2)); framev6->AddFrame(mezzBox, new TGLayoutHints(kLHintsExpandY,2,2,2,2)); frame4->AddFrame(framev1, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame4->AddFrame(framev2, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame4->AddFrame(framev3, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame4->AddFrame(framev4, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame4->AddFrame(framev5, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame4->AddFrame(framev6, new TGLayoutHints(kLHintsLeft,2,2,2,2)); //-------------------------------------------------------------- setupLab = new TGLabel(frame5, "Setup Status:"); //4 text box that change setup1Lab=new TGLabel(frame5, "temp need to change"); setup2Lab=new TGLabel(frame5, "temp"); setup3Lab=new TGLabel(frame5, "temp"); setup4Lab=new TGLabel(frame5, "temp"); frame5->AddFrame(setupLab, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame5->AddFrame(setup1Lab, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame5->AddFrame(setup2Lab, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame5->AddFrame(setup3Lab, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame5->AddFrame(setup4Lab, new TGLayoutHints(kLHintsLeft,2,2,2,2)); //------------------------------------ unlockJTAGBut = new TGTextButton(frame6,"Unlock JTAG Chain"); CSMTypeLab = new TGLabel(frame6,"CSM Type:"); CSMTypeField= new TGLabel(frame6,"temp"); JTAGRateLab= new TGLabel(frame6,"JTAG Rate Divisor"); JTAGRateField = new TGNumberEntry(frame6); //adjust settings later on frame6->AddFrame(unlockJTAGBut, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame6->AddFrame(CSMTypeLab, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame6->AddFrame(CSMTypeField, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame6->AddFrame(JTAGRateLab, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame6->AddFrame(JTAGRateField, new TGLayoutHints(kLHintsLeft,2,2,2,2)); //---------------------------------------------------- numCSMLab = new TGLabel(frame7,"Number CSM:"); numCSMField = new TGNumberEntry(frame7);//add settings later currentCSMLab = new TGLabel(frame7, "Current CSM Number:"); currentCSMField = new TGNumberEntry(frame7); setupMultCSMBut = new TGTextButton(frame7, "Setup Multiple CSM Readout"); frame7->AddFrame(numCSMLab, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame7->AddFrame(numCSMField, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame7->AddFrame(currentCSMLab, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame7->AddFrame(currentCSMField, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame7->AddFrame(setupMultCSMBut, new TGLayoutHints(kLHintsLeft,2,2,2,2)); //------------------------------------- numRunLab = new TGLabel(frame8, "Run"); numRunField = new TGNumberEntry(frame8);//add settings later startLab = new TGLabel(frame8, "Started At"); startField = new TGNumberEntryField(frame8);//add settings later DAQRateLab = new TGLabel(frame8,"DAQ Rate(Hz)"); DAQRateField = new TGNumberEntryField(frame8); //add settings later numTCPLab = new TGLabel(framev7,"#TCP Nodes"); numTCPField = new TGNumberEntryField(framev7); //add settings later numEventLab = new TGLabel(frame9, "#Event"); numEventField = new TGNumberEntryField(frame9); stopLab = new TGLabel(frame9, "Stopped At"); stopField = new TGNumberEntryField(frame9); //probably a text box cauasing and inssue trigRateLab = new TGLabel(frame9, "Trig.Rate"); trigRateField = new TGNumberEntryField(frame9); DAQInfoBox = new TGCheckButton(frame10,"DAQ Infor enabled:"); numDataErrLab = new TGLabel(frame10, "#Data Erorrs"); DAQTimeLab = new TGLabel(frame10, "DAQ Time:"); DAQTimeField = new TGNumberEntryField(frame10); TCPStatusLab = new TGLabel(framev7,"TCP Status"); TCPStatusField = new TGNumberEntryField(framev7); framev7->AddFrame(numTCPLab, new TGLayoutHints(kLHintsExpandY,2,2,2,2)); framev7->AddFrame(numTCPField, new TGLayoutHints(kLHintsExpandY,2,2,2,2)); frame8->AddFrame(numRunLab, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame8->AddFrame(numRunField, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame8->AddFrame(startLab, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame8->AddFrame(startField, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame8->AddFrame(DAQRateLab, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame8->AddFrame(DAQRateField, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame9->AddFrame(numEventLab,new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame9->AddFrame(numEventField,new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame9->AddFrame(stopLab,new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame9->AddFrame(stopField,new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame9->AddFrame(trigRateLab,new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame9->AddFrame(trigRateField,new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame10->AddFrame(DAQInfoBox,new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame10->AddFrame(numDataErrLab,new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame10->AddFrame(DAQTimeLab,new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame10->AddFrame(DAQTimeField,new TGLayoutHints(kLHintsLeft,2,2,2,2)); framev7->AddFrame(TCPStatusLab,new TGLayoutHints(kLHintsExpandY,2,2,2,2)); framev7->AddFrame(TCPStatusField,new TGLayoutHints(kLHintsExpandY,2,2,2,2)); frame8_9_10->AddFrame(frame8,new TGLayoutHints(kLHintsExpandY,2,2,2,2)); frame8_9_10->AddFrame(frame9,new TGLayoutHints(kLHintsExpandY,2,2,2,2)); frame8_9_10->AddFrame(frame10,new TGLayoutHints(kLHintsExpandY,2,2,2,2)); frame8_9_10_v7->AddFrame(frame8_9_10,new TGLayoutHints(kLHintsLeft,2,2,2,2)); frame8_9_10_v7->AddFrame(framev7,new TGLayoutHints(kLHintsLeft,2,2,2,2)); //---------------------------- //---------------------- //bottom row of buttons //-------------------------------------------------- startRunButt = new TGTextButton(frameB, "Start Run" ); pauseRunButt = new TGTextButton(frameB, "Pause Run"); initDAQButt = new TGTextButton(frameB, "INIT DAQ"); discTCPButt = new TGTextButton(frameB, "Disconnect All TCP Clients"); quitButt = new TGTextButton(frameB,"QUIT"); //connecting buttons //startRunButt->Connect("Clicked()","MyWindow",this,"Test()");//this is a test frameB->AddFrame(startRunButt, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frameB->AddFrame(pauseRunButt, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frameB->AddFrame(initDAQButt, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frameB->AddFrame(discTCPButt, new TGLayoutHints(kLHintsLeft,2,2,2,2)); frameB->AddFrame(quitButt, new TGLayoutHints(kLHintsLeft,2,2,2,2)); //------------------------------------------------ //adding frames into window //frame1->AddFrame(windowMenu, new TGLayoutHints(kLHintsExpandY, 2, 2, 2, 2)); fMain->AddFrame(windowMenu, new TGLayoutHints(kLHintsCenterX, 2, 2, 2, 2)); fMain->AddFrame(frame2, new TGLayoutHints(kLHintsCenterX, 2, 2, 2, 2)); fMain->AddFrame(frame4, new TGLayoutHints(kLHintsCenterX, 2, 2, 2, 2)); fMain->AddFrame(frame5, new TGLayoutHints(kLHintsCenterX, 2, 2, 2, 2)); fMain->AddFrame(frame6, new TGLayoutHints(kLHintsCenterX, 2, 2, 2, 2)); fMain->AddFrame(frame7, new TGLayoutHints(kLHintsCenterX, 2, 2, 2, 2)); fMain->AddFrame(frame8_9_10_v7, new TGLayoutHints(kLHintsCenterX, 2, 2, 2, 2)); fMain->AddFrame(frameB, new TGLayoutHints(kLHintsCenterX, 2, 2, 2, 2)); // fMain->MapSubwindows(); fMain->MapWindow(); } void MyWindow::Test(){ fMain->SetWindowName("test"); } //Add option code as it is completed void MyWindow::HandleFileMenu(Int_t optionNum){ switch(optionNum){ case LOAD_PROFILE: break; case SAVE_PROFILE: break; case SAVE_PROFILE_DEFAULT: break; case CLEAR_PROFILE_DEFAULT: break; case GENERATE_TEXT_DAQ: break; case GENERATE_ACTION_DAQ: break; case QUIT: break; } } void MyWindow::HandleExecuteMenu(Int_t optionNum){ fMain->SetWindowName("ExecuteMenu"); switch(optionNum){ case CSM_IOS_CONTROL: break; case PROGRAM_FPGA: break; case RESET_CSM: break; case SELECT_HARDWARE_TDO: break; case SELECT_SOFTWARE_TDO: break; case INIT_DAQ: break; case SEARCH_JTAG: break; case SETUP_RUN_COND: break; case AUTO_RUN_SETUP: break; case CHECK_MEZZ_ON_OFF: break; case CHECK_ALL_HARDWARE: break; case RUN_DIAG: break; case PROG_VERT_FPGA: break; case PROG_PROM: break; case PROG_VERT_PROM: break; case VERIF_VERT_FPGA: break; case VERIF_PROM: break; case SHUTDOWN_FPGA: break; case READ_FPGA_CONFIG: break; case SAVE_ERROR: break; case SHOW_ERROR: break; default: //handle submenues HandleExecuteRunDiag(optionNum); break; } } void MyWindow::HandleExecuteRunDiag(Int_t optionNum){ switch(optionNum){ case GET_RAW: break; case GET_EVENT: break; case GET_SEQ_EVENT: break; } } void MyWindow::HandleJTAGMenu(Int_t optionNum){ fMain->SetWindowName("JTAG"); switch(optionNum){ case SETUP_JTAG: break; case RESET_TAP: break; case SETUP_CSM: break; case SETUP_TTCRX: break; case SETUP_GOL: break; case SETUP_MEZZ_ALL: break; case SETUP_MEZZ_IND: break; case LOAD_NOM_THRESHOLD: break; case DIAGNOSTICS: break; case SEARCH_MEZZ: break; case GET_DEVICE_JTAG: break; case GET_ALL_DEVICE: break; case GET_PROM_ID: break; case GET_CSM_CHIP_ID: break; case GET_TTCRX_ID: break; case GET_GOL_ID: break; case GET_CSM_ID: break; case GET_AMT_ID: break; case CLEAR_SETUP_STATUS: break; case RESET_CSM_FPGA: break; default: //handle submenues HandleJTAGMezz(optionNum); HandleJTAGDiag(optionNum); break; } } void MyWindow::HandleJTAGMezz(Int_t optionNum){ fMain->SetWindowName("MEZZ"); switch(optionNum){ case MEZZ_0: break; case MEZZ_1: break; case MEZZ_2: break; case MEZZ_3: break; case MEZZ_4: break; case MEZZ_5: break; case MEZZ_6: break; case MEZZ_7: break; case MEZZ_8: break; case MEZZ_9: break; case MEZZ_10: break; case MEZZ_11: break; case MEZZ_12: break; case MEZZ_13: break; case MEZZ_14: break; case MEZZ_15: break; case MEZZ_16: break; case MEZZ_17: break; } } void MyWindow::HandleJTAGDiag(Int_t optionNum){ fMain->SetWindowName("JTAGDIAG"); switch(optionNum){ case CSM_ID: break; case CSM_VERS: break; case CSM_AMT_PARITY: break; case CSM_AMT_PHASE: break; case CSM_AMT_FULL_PHASE: break; case CSM_STATUS: break; case CSM_TTCRX_STATUS: break; case CSM_READ_ONLY: break; case CSM_FULL_READ_WRITE: break; case CSM_FULL_READ: break; case CSM_CONFIG_READ_WRITE: break; case CSM_CONFIG_READ: break; case CSM_PARA_READ_WRITE: break; case CSM_PARA_READ: break; } } void MyWindow::HandleTTCviMenu(Int_t optionNum){ fMain->SetWindowName("ttcvi"); switch(optionNum){ case STATUS_CONTROL: break; case BGO_CONTROL: break; case RESET_BOARD: break; case RESET_L1A: break; case EVENT_COUNTER_RESET: break; case BUNCH_COUNTER_RESET: break; case EVENT_BUNCH_RESET: break; case ONE_SOFT_TRIGGER: break; case RAND_SOFT_TRIGGER: break; case EXTERN_TRIGGER: break; default: //handle submenues HandleTTCviRand(optionNum); HandleTTCviTrig(optionNum); break; } } void MyWindow::HandleTTCviRand(Int_t optionNum){ fMain->SetWindowName("Rand"); switch(optionNum){ case HZ1: break; case HZ100: break; case KHZ1: break; case KHZ5: break; case KHZ10: break; case KHZ25: break; case KHZ50: break; case KHZ100: break; } } void MyWindow::HandleTTCviTrig(Int_t optionNum){ //fMain->SetWindowName("trig"); switch(optionNum){ case CHANNEL_0: break; case CHANNEL_1: break; case CHANNEL_2: break; case CHANNEL_3: break; case DISABLE_TRIGGER: break; case TRIGGER_SELECT: break; } } void MyWindow::HandleHelpMenu(Int_t optionNum){ fMain->SetWindowName("halp"); switch(optionNum){ case HELP: break; case ABOUT: break; } }