/* * qTabAdvanced.h * * Created on: May 10, 2012 * Author: l_maliakal_d */ #ifndef QTABADVANCED_H_ #define QTABADVANCED_H_ #include "qDefs.h" #include "sls_detector_defs.h" /** Form Header */ #include "ui_form_tab_advanced.h" /** Project Class Headers */ class multiSlsDetector; class slsDetector; /** Qt Project Class Headers */ class qDrawPlot; /** Qt Include Header */ #include #include /** *@short sets up the advanced parameters */ class qTabAdvanced:public QWidget, private Ui::TabAdvancedObject{ Q_OBJECT public: /** \short The constructor * @param parent is the parent tab widget * @param detector is the detector returned from the detector tab * @param plot plot object reference */ qTabAdvanced(QWidget *parent,multiSlsDetector*& detector, qDrawPlot*& plot); /** Destructor */ ~qTabAdvanced(); public slots: /** To refresh and update widgets */ void Refresh(); private: /** Sets up the widget */ void SetupWidgetWindow(); /** Sets up all the slots and signals */ void Initialization(); /** Add ROI Input * @param num number of inputs to add */ void AddROIInput(int num); /** Checks for a few conditions before trimming /returns OK or FAIL */ int validateBeforeTrimming(); /** update the setalltrimbits value from server */ void updateAllTrimbitsFromServer(); private slots: /** Enable/Disable Energy and Calibration Logs */ void SetLogs(); /** Set acquisition time */ void SetExposureTime(); /** Set the Threshold dac value */ void SetThreshold(); /** Set output directory for trimming */ void SetOutputFile(); /** Browse output directory for trimming */ void BrowseOutputFile(); /** Enables trimming method and calls SetTrimmingMethod if enabled * @param enable to enable trimming */ void EnableTrimming(bool enable); /** Enabling resolution and Counts if this is enabled * @param enable to enable */ void SetOptimize(bool enable); /** Sets the trimming method * @param mode trimming method */ void SetTrimmingMethod(int mode); /** Ensures the right trimming mode and Executes Trimming */ void StartTrimming(); /** Updates the plot with trimbits from detector/shared memory */ void UpdateTrimbitPlot(int id); /** Sets control port * @param port control port */ void SetControlPort(int port); /** Sets stop port * @param port stop port */ void SetStopPort(int port); /** Sets receiver tcp port * @param port receiver tcp port */ void SetRxrTCPPort(int port); /** Sets receiver udp port * @param port receiver udp port */ void SetRxrUDPPort(int port); /** Sets client zmq receiver port * @param port client zmq receiver port */ void SetCltZmqPort(int port); /** Sets receiver zmq transmitting port * @param port receiver zmq transmitting port */ void SetRxrZmqPort(int port); /** Sets receiver online * @param index 1 for online and 0 for offline */ void SetReceiverOnline(int index); /** Sets detector online * @param index 1 for online and 0 for offline */ void SetOnline(int index); /** Sets network parameters like receiver udp ip, * receiver udp mac, detector ip and detector mac */ void SetNetworkParameters(); /** Sets client zmq ip to listen to */ void SetClientZMQIP(); /** Sets receiver zmq ip to stream from */ void SetReceiverZMQIP(); /** Sets the receiver. which also sets the receiver parameters */ void SetReceiver(); /** Add ROI Input if the value changed in the last slot */ void AddROIInputSlot(){AddROIInput(1);}; /** Clears all the ROI inputs */ void clearROI(); /** Gets ROIs from detector and updates it */ void updateROIList(); /** Sets ROI in detector */ void setROI(); /** Clears ROI in detector */ void clearROIinDetector(); /** Clears ROI in detector */ void SetDetector(int index); /** Set all trimbits to a value */ void SetAllTrimbits(); /** Set storage cells */ void SetNumStoragecells(int value); /** Set sub frame exposure time */ void SetSubExposureTime(); /** Set sub frame period */ void SetSubPeriod(); private: /** The multi detector object */ multiSlsDetector *myDet; /** The sls detector object */ slsDetector *det; /** detector type */ slsDetectorDefs::detectorType detType; /** The Plot widget */ qDrawPlot *myPlot; QButtonGroup *btnGroup; /** Tool Tip for the output dir */ QString outputDirTip; QString errOutputTip; QString errOnlineTip; QString detOnlineTip; QString rxrOnlineTip; QPalette red; /** Trimming mode */ slsDetectorDefs::trimMode trimmingMode; static const int TRIMMING_DYNAMIC_RANGE = 32; static const int TRIMMING_FRAME_NUMBER = 1; static const int TRIMMING_TRIGGER_NUMBER = 1; static const int TRIMMING_PROBE_NUMBER = 0; bool isEnergy; bool isAngular; /** ROI */ vector lblFromX; vector spinFromX; vector lblFromY; vector spinFromY; vector lblToX; vector spinToX; vector lblToY; vector spinToY; int numRois; /** sub period tool tip variables*/ QString acqSubPeriodTip; QString errSubPeriodTip; void CheckAcqPeriodGreaterThanExp(); }; #endif /* QTABADVANCED_H_ */