Create Config_Positioner
135
Config_Positioner.md
Normal file
135
Config_Positioner.md
Normal file
@@ -0,0 +1,135 @@
|
||||
# Positioner
|
||||
This file contains the positioner settings.
|
||||
|
||||
See source:trunk/PixelatorController/config/positioner.json for an example.
|
||||
|
||||
**atPositionCheckInverval_Default**::<BR>
|
||||
 Double value used for all positioners that don't define their own atPositionCheckInverval.<BR>
|
||||
 **Default**: 0.002
|
||||
|
||||
**atPositionCheckTimeout_Default**::<BR>
|
||||
 Double value used for all positioners that don't define their own atPositionCheckTimeout.<BR>
|
||||
 **Default**: 10.0
|
||||
|
||||
The remaining entries are positioner names with their settings. The settings depend on the positioner type.
|
||||
|
||||
### base settings
|
||||
The following settings are available for all types of positioners:
|
||||
|
||||
**type**::<BR>
|
||||
 String value that identifies which hardware interface will handle the positioner behaviour. The list of allowed values is listed near the beginning of [`Positioner.h`](https://gitlab.psi.ch/microspectro/pixelator/-/blob/master/PixelatorController/src/Positioner.h#L28), for example:
|
||||
|
||||
`enum Type { Base, Epics, Tango, NewPort, NexLine, SmarAct, SmarActUsb, SmarActTcp, Interferometer, BeamShutter, AnalogOut, Transform, Galil, Zaber, ZmiEpics };`
|
||||
|
||||
**active**::<BR>
|
||||
 Integer value that defines if the positioner should be used (value of 1) or ignored (value of 0). <BR>
|
||||
 **Default**: 0
|
||||
|
||||
**nexus_name**::<BR>
|
||||
 String value defines the positioners name in the hdf5 file.<BR>
|
||||
 **Default**: positioner name
|
||||
|
||||
**axisName**::<BR>
|
||||
 String value defines the name of the axis moved by this positioner.<BR>
|
||||
 Example: Coarse and Fine X both belong to SampleX.<BR>
|
||||
 **Default**: positioner name
|
||||
|
||||
**description**::<BR>
|
||||
 String value describes the positioner.
|
||||
That value is written to the hdf5 file (NXcollection) and
|
||||
it is sent to PixelatorGUI. <BR>
|
||||
 **Default**: "" (empty string)
|
||||
|
||||
**unit**::<BR>
|
||||
 String value defines the unit of the positioner values (on the GUI and in the hdf5 file).<BR>
|
||||
 **Default**: "" (empty string)
|
||||
|
||||
**distributionMode**::<BR>
|
||||
 String value defines the discribution of points to an interval.<BR>
|
||||
 Example: 5 points from 0 to 10:
|
||||
* "n": 0, 2.5, 5, 7.5, 10
|
||||
* "nPlus1": 0, 2, 4, 6, 8, 10
|
||||
|
||||
 **Default**: "n"
|
||||
|
||||
**hardwareUnitFactor**::<BR>
|
||||
 Double value defines the conversion factor used to convert hardware positioner values to **unit***.<BR>
|
||||
 **Default**: 1.0
|
||||
|
||||
**positionOffset**::<BR>
|
||||
 Double value defines shift of coordinates between those communicated with the hardware controller and the user. <BR>
|
||||
 **Default**: 0.0
|
||||
|
||||
**upperSoftLimit**::<BR>
|
||||
 Double value defines largest value allowed to be requested to move to. <BR>
|
||||
 **Default**: 0.0
|
||||
|
||||
**lowerSoftLimit**::<BR>
|
||||
 Double value defines lowest value allowed to be requested to move to.<BR>
|
||||
 **Default**: 0.0
|
||||
|
||||
**coarsePositioner**::<BR>
|
||||
 String value defines cooperating positioner that will handle large movements.<BR>
|
||||
 **Default**: "" (empty string)
|
||||
|
||||
**finePositioner**::<BR>
|
||||
 String value defines cooperating positioner that will handle fine movements.<BR>
|
||||
 **Default**: "" (empty string)
|
||||
|
||||
**maxVelocity**::<BR>
|
||||
 Double value defines maximum rate of movement. <BR>
|
||||
 **Default**: 0.0
|
||||
|
||||
**readOnly**::<BR>
|
||||
 Boolean value true when the positioner can only be used to read its position (i.e. cannot request a move). <BR>
|
||||
 **Default**: false
|
||||
|
||||
**autoOff**::<BR>
|
||||
 Positioners can be set to an unpowered state after 1 of 3 events:
|
||||
1. positioner move due to direct request
|
||||
2. positioner move due scan request
|
||||
3. "All Motors Off" request
|
||||
|
||||
 "Never" : Positioner remains powered after scanning moves and is unaffected by an "All Motors Off" request.<BR>
|
||||
 "Always" : positioner is always unpowered after any move.<BR>
|
||||
 "SlowAxis" : Positioner is unpowered after each scan move if it is not part of the fast scanning axis.<BR>
|
||||
 "Disabled" : Positioner does not physically have powered and unpowered states.<BR>
|
||||
 "Manual" : Positioner remains powered after scanning moves, but is unpowered by "All Motors Off" request.<BR>
|
||||
 **Default**: "Never"
|
||||
|
||||
| autoOff value | direct | scan<BR>(fastest axis) | scan<BR>(not fastest) | "All Motors Off" |
|
||||
|---------------|--------|------|------|------------------|
|
||||
| "Never" | ON | ON | ON | ON |
|
||||
| "Always" | OFF | OFF | OFF | OFF |
|
||||
| "SlowAxis" | OFF | ON | OFF | OFF |
|
||||
| "Disabled" | -- | -- | -- | -- |
|
||||
| "Manual" | ON | ON | ON | OFF |
|
||||
|
||||
|
||||
**beamlineControlPosition**::<BR>
|
||||
 Integer value defines inclusion of (value greater than zero), and position of a positioner control in the "Beamline Control" and "Microscope Status" sections of the GUI. The "Beamline Control" section will only list positioners with a **beamlineControlPosition** value greater than zero, with each positioner listed in ascending **beamlineControlPosition** order. The "Microscope Status" GUI section will list any positioner with a **beamlineControlPosition** value of zero (except it will always ignore a positioner with the name "BeamShutter"). Negative values can be used to exclude a positioner from both sections of the GUI.
|
||||
<BR> **Default**: 0
|
||||
|
||||
**epsilon**::<BR>
|
||||
 Double value defines numerical precision to be considered when calculating positioner moves.<BR>
|
||||
 **Default**: 0.1
|
||||
|
||||
**atPositionCheckInverval**::<BR>
|
||||
 Double value defines the interval (in seconds) used in waitDoneMoving().
|
||||
getStatus() is called in this interval as long as it returns moving or
|
||||
until atPositionCheckTimeout is exceeded. <BR>
|
||||
 **Default**: atPositionCheckInverval_Default ([see above](#positioner))
|
||||
|
||||
**atPositionCheckTimeout**::<BR>
|
||||
 Double value defines the timeout (in seconds) used in waitDoneMoving().
|
||||
getStatus() is called as long as it returns moving or until atPositionCheckTimeout is exceeded. <BR>
|
||||
 **Default**: atPositionCheckTimeout_Default ([see above](#positioner))
|
||||
|
||||
**stringPositions**::<BR>
|
||||
 Optional array of objects with members that defines relationships between string and numeric values. Pixelator always considers positioners to have a numerical value, while the hardware controllers sometimes operate in terms of named states (e.g. "on" and "off") and this array defines the translation.
|
||||
* **string**: String value defines the position name
|
||||
* **position**: Double value defines the position value
|
||||
|
||||
These objects can be used to get
|
||||
* a name of a position value (positionUserToStringHardware)
|
||||
* the position of a named position (stringHardwareToPositionUser)
|
||||
Reference in New Issue
Block a user