bool SGMXASScanConfiguration::setHarmonic(SGMBeamlineInfo::sgmHarmonic harmonic) { SGMBeamlineInfo::sgmHarmonic oldHarmonic = harmonic_; bool rVal = SGMScanConfiguration::setHarmonic(harmonic); if(rVal && oldHarmonic != harmonic_){ emit harmonicChanged(harmonic); emit fluxResolutionGroupChanged(fluxResolutionGroup_); setModified(true); emit configurationChanged(); } return rVal; }
SGMXASScanConfiguration2013::SGMXASScanConfiguration2013(const SGMXASScanConfiguration2013 &original) : AMStepScanConfiguration(original), SGMScanConfiguration2013(original) { detectorConfigurations_ = original.detectorConfigurations(); setTrackingGroup(original.trackingGroup()); setFluxResolutionGroup(original.fluxResolutionGroup()); connect(SGMBeamline::sgm()->exitSlitGap(), SIGNAL(valueChanged(double)), this, SLOT(checkIfMatchesBeamline())); connect(SGMBeamline::sgm()->grating(), SIGNAL(valueChanged(double)), this, SLOT(checkIfMatchesBeamline())); connect(SGMBeamline::sgm()->harmonic(), SIGNAL(valueChanged(double)), this, SLOT(checkIfMatchesBeamline())); connect(SGMBeamline::sgm()->undulatorTracking(), SIGNAL(valueChanged(double)), this, SLOT(checkIfMatchesBeamline())); connect(SGMBeamline::sgm()->monoTracking(), SIGNAL(valueChanged(double)), this, SLOT(checkIfMatchesBeamline())); connect(SGMBeamline::sgm()->exitSlitTracking(), SIGNAL(valueChanged(double)), this,SLOT(checkIfMatchesBeamline())); connect(this->dbObject(), SIGNAL(exitSlitGapChanged(double)), this, SLOT(checkIfMatchesBeamline())); connect(this->dbObject(), SIGNAL(gratingChanged(SGMBeamlineInfo::sgmGrating)), this, SLOT(checkIfMatchesBeamline())); connect(this->dbObject(), SIGNAL(harmonicChanged(SGMBeamlineInfo::sgmHarmonic)), this, SLOT(checkIfMatchesBeamline())); connect(this->dbObject(), SIGNAL(trackingGroupChanged()), this, SLOT(checkIfMatchesBeamline())); }
SGMXASScanConfiguration2013::SGMXASScanConfiguration2013(QObject *parent) : AMStepScanConfiguration(parent), SGMScanConfiguration2013() { AMScanAxisRegion *region = new AMScanAxisRegion; AMScanAxis *axis = new AMScanAxis(AMScanAxis::StepAxis, region); appendScanAxis(axis); connect(SGMBeamline::sgm()->exitSlitGap(), SIGNAL(valueChanged(double)), this, SLOT(checkIfMatchesBeamline())); connect(SGMBeamline::sgm()->grating(), SIGNAL(valueChanged(double)), this, SLOT(checkIfMatchesBeamline())); connect(SGMBeamline::sgm()->harmonic(), SIGNAL(valueChanged(double)), this, SLOT(checkIfMatchesBeamline())); connect(SGMBeamline::sgm()->undulatorTracking(), SIGNAL(valueChanged(double)), this, SLOT(checkIfMatchesBeamline())); connect(SGMBeamline::sgm()->monoTracking(), SIGNAL(valueChanged(double)), this, SLOT(checkIfMatchesBeamline())); connect(SGMBeamline::sgm()->exitSlitTracking(), SIGNAL(valueChanged(double)), this,SLOT(checkIfMatchesBeamline())); connect(this->dbObject(), SIGNAL(exitSlitGapChanged(double)), this, SLOT(checkIfMatchesBeamline())); connect(this->dbObject(), SIGNAL(gratingChanged(SGMBeamlineInfo::sgmGrating)), this, SLOT(checkIfMatchesBeamline())); connect(this->dbObject(), SIGNAL(harmonicChanged(SGMBeamlineInfo::sgmHarmonic)), this, SLOT(checkIfMatchesBeamline())); connect(this->dbObject(), SIGNAL(trackingGroupChanged()), this, SLOT(checkIfMatchesBeamline())); }
bool SGMXASScanConfiguration::setFluxResolutionGroup(AMControlInfoList fluxResolutionList){ double oldExitSlit = exitSlitGap_; SGMBeamlineInfo::sgmGrating oldGrating = grating_; SGMBeamlineInfo::sgmHarmonic oldHarmonic = harmonic_; bool rVal = SGMScanConfiguration::setFluxResolutionGroup(fluxResolutionList); if(rVal){ emit fluxResolutionGroupChanged(fluxResolutionList); if(oldExitSlit != exitSlitGap_) emit exitSlitGapChanged(exitSlitGap_); if(oldGrating != grating_) emit gratingChanged(grating_); if(oldHarmonic != harmonic_) emit harmonicChanged(harmonic_); setModified(true); emit configurationChanged(); } return rVal; }