Average: 0
Rating Count: 0

Development status: New development
Information status: Updated
Repository: http://svn.code.sf.net/p/tango-ds/code/DeviceClasses/BeamlineComponents/Mirrors/GenericMirror

Class Description

This device is used to control a Mirror:
when the user write on the theta attribute, the device calculate (via Optical Formulas) the values to send to the underlying devices (theta rotation,bender)

Families: BeamlineComponents

Key words: - Mirrors

Platform: All Platforms

Language: Cpp




Bus: Not Applicable

Class interface


Name Description
isBenderLessScalar: DevBoolean
txScalar: DevDouble
curvatureScalar: DevDouble
currentStripNameScalar: DevString
currentStripScalar: DevUShort
typeScalar: DevString
qDistanceScalar: DevDouble
pDistanceScalar: DevDouble
thetaScalar: DevDouble


Name Description
ChangeStripInput: DevUShort
Output: DevVoid
Method to change the wanted strip of the mirror
InitializeMirrorInput: DevVoid
Output: DevVoid
Method to initialize all the object needed by the device mirror
StopInput: DevVoid
Output: DevVoid
Stop all the motors
StatusInput: DevVoid
Output: DevString
This command gets the device status (stored in its device_status data member) and returns it to the caller.
StateInput: DevVoid
Output: State
This command gets the device state (stored in its device_state data member) and returns it to the caller.



Name Description
StripValuesToleranceDevDouble Tolerance on the strip values. if the strip setting does not correspond to the motor position +/- the tolerance, the device will be disabled
DefaultStripDevLong The default strip index to be used when a init command is called
ThetaMotorUnitDevShort This property is used to make coincidate the unit of the theta (for instance pitch of a TPP in mrad) with the value of theta in the mirror device. The possible choice are : 1 - mrad 2 - degre
BenderCurvatureUnitDevShort This property is used to indicate what is the unit of the bender curvature if the miror use a bender. Indeed, the curvature value is computed thanks the next equation : 1/R = (p+q)*sin(theta)/(2*p*q) But the bender device is waiting a new value of curvature in the same unit as it is configured in the device bender. So it is necessary to compute (in the generic mirror device) a good value of 1/R in the same unit as in the bender. 1 - bender curvature is in m-1 2 - bender curvature is in km-1
RotationAngleDevDouble If the CanRotate property is set to TRUE, then this property is used to set the default angle of the mirror.
CanRotateDevBoolean This property indicate if the mirror have a motor to rotate. This property must be set to TRUE if there is a motor and FALSE if not.
HasChangeStripMotorDevBoolean This propertie is used to indicate if there is a motor to change strip.
ThetaMotorNameDevString The name of the motor which can move the theta mirror angle.
StripNamesString[]Type The name of the strip.
StripValuesDouble[]Type The values of the reference position of each mirror strip. These values are used to position the mirror to the wanted strip.
StripNumberDevShort The number of strip of the mirror. Set to 1 if there is no strip.
MirrorTypeDevShort The type of the mirror : - `0` for a normal mirror - `1` for a focusing mirror - `2` for a collimation mirror - `3` for an elliptic mirror
HasBenderDevBoolean Indicate if there is a bender linked to the mirror
DistanceBetweenSourceAndMirrorPDevDouble This is the p parameter representing the distance between the beam source and the mirror (infinity so INVALID for a collimation mirror)
DistanceBetweenMirrorAndImageQDevDouble This is the q parameter representing the distance between the mirror and the image (infinity so INVALID for a focalisation mirror)
CommandStopNameDevString Name of the command stop for the reached device.
CommandStateNameDevString Gives the name of the STATE command according the target device. For SimulatedMotor it is State.
ChangeStripMotorNameDevString This method allows to change the strip of the mirror
BenderDeviceNameDevString If a bender is used this property gives the name of the bender device to reach
AttributeThetaNameDevString The name of the attribute to reach for the theta. For instance, if a TPP is used to rotate the mirror, the properties must be set to pitch
AttributePositionNameDevString Give the name of the attribute to move the motor according the motors device used.
AttributeCurvatureNameDevString If a bender is used this property gives the name of the curvature attribute of the bender device.

Please log in to comment.

22 Feb 2018, DS Admin
The device class has been updated.
You can see previous version here .

20 Apr 2017, Piotr Goryl
The device class has been updated.
You can see previous version here .

23 Feb 2017, Piotr Goryl
The device class has been added to catalogue.
Added by:pgoryl2 on:23 Feb 2017, 10:32 a.m.