source: trunk/FACT++/gui/MainWindow.h @ 19312

Last change on this file since 19312 was 19312, checked in by tbretz, 8 months ago
Defining a preprocessor directive for our __CMAKE__ build avoids to produce two additional unnecessray output files.
File size: 9.7 KB
Line 
1#ifndef FACT_MainWindow
2#define FACT_MainWindow
3
4#ifdef __CMAKE__
5#include "ui_design.h"
6#else
7#include "design.h"
8#endif
9
10#include <QMainWindow>
11
12class TObject;
13class TCanvas;
14
15class MainWindow : public QMainWindow, protected Ui::MainWindow
16{
17    Q_OBJECT;
18
19    void MakeLEDs(QPushButton **arr, QGridLayout *lay, const char *slot) const;
20
21    void SelectTab(const QString &name);
22    void SetTriggerSequence();
23    void SetTriggerCoincidence();
24    void SetCalibCoincidence();
25
26protected:
27    QPushButton *fFtuLED[40];
28    QPushButton *fFadLED[40];
29
30    bool fInHandler;
31
32public:
33    MainWindow(QWidget *p=0);
34
35private slots:
36    // Helper
37    void on_fFtmStartRun_clicked();
38    void on_fFtmStopRun_clicked();
39
40    void on_fFadStart_clicked();
41    void on_fFadStop_clicked();
42    void on_fFadAbort_clicked();
43    void on_fFadSoftReset_clicked();
44    void on_fFadHardReset_clicked();
45
46    void on_fLoggerStart_clicked();
47    void on_fLoggerStop_clicked();
48
49    void on_fMcpStartRun_clicked();
50    void on_fMcpStopRun_clicked();
51    void on_fMcpReset_clicked();
52
53    // Comment Sql Table
54    void on_fCommentInsertRow_clicked();
55
56    // System status
57    void on_fShutdown_clicked();
58    void on_fShutdownAll_clicked();
59
60    // Status LEDs signals
61    void on_fStatusFTULed_clicked();
62    void on_fStatusFTMLed_clicked();
63    void on_fStatusFADLed_clicked();
64    void on_fStatusLoggerLed_clicked();
65    void on_fStatusChatLed_clicked();
66    //void on_fStatusFTMEnable_stateChanged(int state);
67
68    // Tab Widget
69    void on_fTabWidget_tabCloseRequested(int which);
70    virtual void on_fTabWidget_currentChanged(int) = 0;
71
72    // Tab: FAD
73    void slot_fFadLED_clicked();
74
75//    void on_fFadStartRun_clicked();
76//    void on_fFadStopRun_clicked();
77    void on_fFadDrsOn_clicked();
78    void on_fFadDrsOff_clicked();
79    void on_fFadDwriteOn_clicked();
80    void on_fFadDwriteOff_clicked();
81    void on_fFadSingleTrigger_clicked();
82    void on_fFadTriggerLineOn_clicked();
83    void on_fFadTriggerLineOff_clicked();
84    void on_fFadContTriggerOn_clicked();
85    void on_fFadContTriggerOff_clicked();
86    void on_fFadBusyOnOn_clicked();
87    void on_fFadBusyOnOff_clicked();
88    void on_fFadBusyOffOn_clicked();
89    void on_fFadBusyOffOff_clicked();
90    void on_fFadResetTriggerId_clicked();
91    void on_fFadSocket0_clicked();
92    void on_fFadSocket17_clicked();
93
94    void FadSetFileFormat(uint16_t fmt);
95
96    void on_fFadButtonFileFormatNone_clicked()  { FadSetFileFormat(0); }
97    void on_fFadButtonFileFormatDebug_clicked() { FadSetFileFormat(1); }
98    void on_fFadButtonFileFormatFits_clicked()  { FadSetFileFormat(2); }
99    void on_fFadButtonFileFormatRaw_clicked()   { FadSetFileFormat(3); }
100    void on_fFadButtonFileFormatZFits_clicked() { FadSetFileFormat(6); }
101
102    void on_fFadPrescalerCmd_valueChanged(int);
103    void on_fFadRunNumberCmd_valueChanged(int);
104    void on_fFadRoiCmd_valueChanged(int = 0);
105    void on_fFadRoiCh9Cmd_valueChanged(int) { on_fFadRoiCmd_valueChanged(); }
106
107    void FadDacCmd_valueChanged(uint16_t, uint16_t);
108
109    void on_fFadDac0Cmd_valueChanged(int v) { FadDacCmd_valueChanged(v, 0); }
110    void on_fFadDac1Cmd_valueChanged(int v) { FadDacCmd_valueChanged(v, 1); }
111    void on_fFadDac2Cmd_valueChanged(int v) { FadDacCmd_valueChanged(v, 2); }
112    void on_fFadDac3Cmd_valueChanged(int v) { FadDacCmd_valueChanged(v, 3); }
113    void on_fFadDac4Cmd_valueChanged(int v) { FadDacCmd_valueChanged(v, 4); }
114    void on_fFadDac5Cmd_valueChanged(int v) { FadDacCmd_valueChanged(v, 5); }
115    void on_fFadDac6Cmd_valueChanged(int v) { FadDacCmd_valueChanged(v, 6); }
116    void on_fFadDac7Cmd_valueChanged(int v) { FadDacCmd_valueChanged(v, 7); }
117
118    void on_fDrsCalibStart_clicked();
119    void on_fDrsCalibReset_clicked();
120
121    void on_fDrsCalibStart2_clicked() { on_fDrsCalibStart_clicked(); }
122    void on_fDrsCalibReset2_clicked() { on_fDrsCalibReset_clicked(); }
123
124    // Tab: Adc
125    virtual void DisplayEventData() = 0;
126    void on_fAdcCrate_valueChanged(int)   { DisplayEventData(); }
127    void on_fAdcBoard_valueChanged(int)   { DisplayEventData(); }
128    void on_fAdcChip_valueChanged(int)    { DisplayEventData(); }
129    void on_fAdcChannel_valueChanged(int) { DisplayEventData(); }
130
131    // Tab: FTM
132    void on_fEnableTrigger_stateChanged(int);
133    void on_fEnableExt1_stateChanged(int);
134    void on_fEnableExt2_stateChanged(int);
135    void on_fEnableClockCond_stateChanged(int);
136    void on_fEnableVeto_stateChanged(int);
137
138    void on_fTriggerSeqPed_valueChanged(int)   { SetTriggerSequence(); }
139    void on_fTriggerSeqLPint_valueChanged(int) { SetTriggerSequence(); }
140    void on_fTriggerSeqLPext_valueChanged(int) { SetTriggerSequence(); }
141
142    void on_fPhysicsCoincidence_valueChanged(int);
143    void on_fPhysicsWindow_valueChanged(int);
144    void on_fCalibCoincidence_valueChanged(int);
145    void on_fCalibWindow_valueChanged(int);
146
147    void on_fTriggerInterval_valueChanged(int);
148    void on_fTriggerDelay_valueChanged(int);
149    void on_fTimeMarkerDelay_valueChanged(int);
150    void on_fDeadTime_valueChanged(int);
151/*
152    void on_fClockCondR0_valueChanged(int) { }
153    void on_fClockCondR1_valueChanged(int) { }
154    void on_fClockCondR8_valueChanged(int) { }
155    void on_fClockCondR9_valueChanged(int) { }
156    void on_fClockCondR11_valueChanged(int) { }
157    void on_fClockCondR13_valueChanged(int) { }
158    void on_fClockCondR14_valueChanged(int) { }
159    void on_fClockCondR15_valueChanged(int) { }
160*/
161    void on_fPrescalingVal_valueChanged(int);
162
163    void on_fClockCondFreq_activated(int);
164
165    void on_fLpIntIntensity_valueChanged(int);
166    void on_fLpExtIntensity_valueChanged(int);
167    void on_fLpIntGroup1_stateChanged(int);
168    void on_fLpExtGroup1_stateChanged(int);
169    void on_fLpIntGroup2_stateChanged(int);
170    void on_fLpExtGroup2_stateChanged(int);
171
172    // Tab: FTUs
173    void slot_fFtuLED_clicked();
174    void on_fFtuPing_toggled(bool);
175    void on_fFtuAllOn_clicked();
176    void on_fFtuAllOff_clicked();
177
178    // Tab: Feedback
179    void on_fFeedbackDevMin_valueChanged(int);
180    void on_fFeedbackDevMax_valueChanged(int);
181    void on_fFeedbackCmdMin_valueChanged(int);
182    void on_fFeedbackCmdMax_valueChanged(int);
183    void on_fFeedbackStart_clicked();
184    void on_fFeedbackStop_clicked();
185    void on_fFeedbackCalibrate_clicked();
186
187    // Tab: Bias
188    virtual void BiasHvChannelChanged() = 0;
189    virtual void BiasCamChannelChanged() = 0;
190    void on_fBiasHvBoard_valueChanged(int)   { BiasHvChannelChanged(); }
191    void on_fBiasHvChannel_valueChanged(int) { BiasHvChannelChanged(); }
192    void on_fBiasCamCrate_valueChanged(int)  { BiasCamChannelChanged(); }
193    void on_fBiasCamBoard_valueChanged(int)  { BiasCamChannelChanged(); }
194    void on_fBiasCamPatch_valueChanged(int)  { BiasCamChannelChanged(); }
195    void on_fBiasCamPixel_valueChanged(int)  { BiasCamChannelChanged(); }
196
197    void on_fBiasVoltDac_valueChanged(int);
198
199    void on_fBiasVoltMin_valueChanged(int); // FIXME: Could be set as slot in the designer
200    void on_fBiasVoltMax_valueChanged(int); // FIXME: Could be set as slot in the designer
201
202    void on_fBiasCurrentMin_valueChanged(int); // FIXME: Could be set as slot in the designer
203    void on_fBiasCurrentMax_valueChanged(int); // FIXME: Could be set as slot in the designer
204
205    void on_fBiasApplyChVolt_clicked();
206    void on_fBiasApplyChDac_clicked();
207    void on_fBiasApplyGlobalVolt_clicked();
208    void on_fBiasApplyGlobalDac_clicked();
209
210    void on_fBiasSetToZero_clicked();
211    void on_fBiasReset_clicked();
212
213    virtual void on_fBiasDispRefVolt_stateChanged(int) = 0;
214
215    // Tab: Rates
216    //virtual void UpdateThresholdIdx() = 0;
217    virtual void on_fPixelIdx_valueChanged(int) = 0;
218    //void on_fThresholdCrate_valueChanged(int) { UpdateThresholdIdx() ; }
219    //void on_fThresholdBoard_valueChanged(int) { UpdateThresholdIdx() ; }
220    //void on_fThresholdPatch_valueChanged(int) { UpdateThresholdIdx() ; }
221
222    virtual void on_fPixelEnable_stateChanged(int) = 0;
223    virtual void on_fThresholdVal_valueChanged(int) = 0;
224    //virtual void on_fThresholdIdx_valueChanged(int) = 0;
225
226    virtual void on_fBoardRatesEnabled_toggled(bool) = 0;
227
228    void on_fNoutof4Val_valueChanged(int);
229
230    void on_fRatesMin_valueChanged(int); // FIXME: Could be set as slot in the designer
231    void on_fRatesMax_valueChanged(int); // FIXME: Could be set as slot in the designer
232    void on_fPixelEnableAll_clicked();
233    void on_fPixelDisableAll_clicked();
234
235    virtual void on_fPixelDisableOthers_clicked() = 0;
236    virtual void on_fThresholdDisableOthers_clicked() = 0;
237    virtual void on_fThresholdEnablePatch_clicked() = 0;
238    virtual void on_fThresholdDisablePatch_clicked() = 0;
239
240    virtual void DisplayRates() = 0;
241    void on_fRatePatch1_valueChanged(int) { DisplayRates(); }
242    void on_fRatePatch2_valueChanged(int) { DisplayRates(); }
243    void on_fRateBoard1_valueChanged(int) { DisplayRates(); }
244    void on_fRateBoard2_valueChanged(int) { DisplayRates(); }
245
246    // Tab: RateScan
247
248    virtual void DisplayRateScan() = 0;
249    void on_fRateScanPatch1_valueChanged(int) { DisplayRateScan(); }
250    void on_fRateScanPatch2_valueChanged(int) { DisplayRateScan(); }
251    void on_fRateScanBoard1_valueChanged(int) { DisplayRateScan(); }
252    void on_fRateScanBoard2_valueChanged(int) { DisplayRateScan(); }
253
254    // Tab: Chat
255    void on_fChatSend_clicked();
256
257    // Tab: Commands
258    /// Needs access to DimNetwork thus it is implemented in the derived class
259    virtual void on_fDimCmdSend_clicked() = 0;
260
261    // Main menu
262    //    void on_fMenuLogSaveAs_triggered(bool)
263
264    virtual void slot_RootEventProcessed(TObject *, unsigned int, TCanvas *) = 0;
265    virtual void slot_RootUpdate() = 0;
266    virtual void slot_ChoosePixelThreshold(int) = 0;
267    virtual void slot_ChooseBiasChannel(int) = 0;
268    virtual void slot_CameraDoubleClick(int) = 0;
269    virtual void slot_CameraMouseMove(int) = 0;
270    void slot_TimeUpdate();
271};
272
273#endif
Note: See TracBrowser for help on using the repository browser.