BioXASSSRLMonochromatorEnergyControl::BioXASSSRLMonochromatorEnergyControl(const QString &name, QObject *parent) : BioXASMonochromatorEnergyControl(name, parent) { // Initialize inherited variables. value_ = 0; setpoint_ = 0; minimumValue_ = -1000000; maximumValue_ = 1000000; setAllowsMovesWhileMoving(false); setContextKnownDescription("Energy"); setTolerance(0.05); // Initialize member variables. hc_ = 12398.42; crystal2D_ = 3.8403117; thetaBraggOffset_ = 180.0; regionOffset_ = 180; bragg_ = 0; region_ = 0; m1MirrorPitch_ = 0; // Current settings. setDisplayPrecision(3); setUnits("eV"); updateStates(); }
AM3DCoordinatedSystemControl::AM3DCoordinatedSystemControl(AxisDesignation axis, AMControl* globalXAxis, AMControl* globalYAxis, AMControl* globalZAxis, const QString &name, const QString &units, QObject *parent, const QString &description) : AMPseudoMotorControl(name, units, parent, description) { axis_ = axis; globalXAxis_ = globalXAxis; globalYAxis_ = globalYAxis; globalZAxis_ = globalZAxis; setAllowsMovesWhileMoving(false); addChildControl(globalXAxis_); addChildControl(globalYAxis_); addChildControl(globalZAxis_); setTolerance(qMax(qMax(globalXAxis_->tolerance(), globalYAxis_->tolerance()), globalZAxis_->tolerance())); updateStates(); }
BioXASSSRLMonochromatorRegionControl::BioXASSSRLMonochromatorRegionControl(const QString &name, QObject *parent) : AMEnumeratedControl(name, "", parent) { // Initialize local variables. maskUpperBlade_ = 0; maskLowerBlade_ = 0; maskBladesStatus_ = 0; paddle_ = 0; paddleStatus_ = 0; keyStatus_ = 0; brakeStatus_ = 0; bragg_ = 0; braggAtCrystalChangePositionStatus_ = 0; crystalChange_ = 0; crystalChangeCWLimitStatus_ = 0; crystalChangeCCWLimitStatus_ = 0; regionAStatus_ = 0; regionBStatus_ = 0; // Initialize inherited variables. addOption(BioXASSSRLMonochromator::Region::A, "A"); addOption(BioXASSSRLMonochromator::Region::B, "B"); addOption(BioXASSSRLMonochromator::Region::None, "None", true); setAllowsMovesWhileMoving(false); setContextKnownDescription("Region Control"); // Current settings. updateStates(); }
BioXASXIAFiltersActuatorControl::BioXASXIAFiltersActuatorControl(const QString &name, QObject *parent) : AMExclusiveStatesEnumeratedControl(name, "", parent) { // Initialize inherited variables. setContextKnownDescription("Actuator State"); setAllowsMovesWhileMoving(false); }
CLSMDriveMotorControl::CLSMDriveMotorControl(const QString &name, const QString &baseName, const QString& units, double unitsPerRev, double offset, int microsteps, const QString &description, double tolerance, double moveStartTimeoutSeconds, QObject *parent) : AMPVwStatusAndUnitConversionControl(name, baseName % ":enc:fbk", baseName % ":step", baseName % ":status", baseName % ":stop", new AMScaleAndOffsetUnitConverter(units, unitsPerRev/4000.0, offset), new AMScaleAndOffsetUnitConverter(units, unitsPerRev/(200.0*microsteps), offset), parent, tolerance, moveStartTimeoutSeconds, new AMControlStatusCheckerDefault(1), 1, description) { // Unlike MaxV controllers, these motors can support move updates while moving: setAllowsMovesWhileMoving(true); // Because of the polled communication, it can take a while for these motors to send MOVE ACTIVE then MOVE DONE for null moves. Recommend setting the moveStartTolerance() [in converted units, not microsteps] when setting up these motors. It should be set very small... equivalent to a few microsteps. // ex: setMoveStartTolerance(writeUnitConverter()->convertFromRaw(5)) moveStartTolerance_ = 0; moveTimeoutTolerance_ = 0; }
BioXASCarbonFilterFarmActuatorPositionControl::BioXASCarbonFilterFarmActuatorPositionControl(const QString &name, const QString &units, QObject *parent) : AMPseudoMotorControl(name, units, parent) { // Initialize local variables. position_ = 0; status_ = 0; // Initialize inherited variables. value_ = 0; setpoint_ = 0; minimumValue_ = -1000; maximumValue_ = 1000; setTolerance(0.05); setContextKnownDescription("Actuator Control"); setAllowsMovesWhileMoving(false); }