Private
Public Access
11
1

formatting and document autoOff option

2022-10-04 16:12:02 +02:00
parent b98d2963c8
commit 87d804fc18

@@ -91,7 +91,7 @@ ScanNumber is a three digit number, starting with 001 every day.
 **Optional**: no script is run when this setting is missing
**defaultUsername**::<BR>
&emsp;username set on startup
&emsp;username set on startup (not really used yet - placeholder for future features)
**endOfScanScript**::<BR>
&emsp;name of the script that is run on the controller at the end of every scan<BR>
@@ -151,7 +151,7 @@ Each of these settings files is described in a section below.
&emsp;[Positioner](#positioner)
**topupConfigFileName**::<BR>
&emsp;'''Optional''': no topup handling when this setting is missing or the file cannot be read. <BR>
&emsp;**Optional**: no topup handling when this setting is missing or the file cannot be read. <BR>
&emsp;[Topup](#topup)
**zonePlateConfigFileName**::
@@ -168,18 +168,18 @@ This file contains global epics settings.
See source: trunk/PixelatorController/config/epics.json for an example.
search_timeout::
Float value defines the timeout (in seconds) used in
**search_timeout**::<BR>
&emsp;Float value defines the timeout (in seconds) used in
* EpicsDetector and EpicsPositioner for
* searching channels (casearch)
* Epics for
* searching channel (casearch) (Topup)
* searching channel (casearch) (getStringValue)
'''Default''': 5.0
&emsp;**Default**: 5.0
get_timeout::
Float value defines the timeout (in seconds) used in
**get_timeout**::<BR>
&emsp;Float value defines the timeout (in seconds) used in
* EpicsDetector and EpicsPositioner for
* initializing channels (cainfo, caget)
* setup monitors (ca_add_event, ca_add_array_event)
@@ -189,7 +189,7 @@ See source: trunk/PixelatorController/config/epics.json for an example.
* setup monitors (ca_add_event) (Topup)
* initializing channel (caget) (getStringValue)
'''Default''': 1.0
&emsp;**Default**: 1.0
## Instrument
@@ -199,7 +199,7 @@ per entry of this settings file, with the key used as group name.
See source:trunk/PixelatorController/config/instrument.json for an example.
'''NeXus class''' \\
### NeXus class
Every top level entry may have a "class" member that is used as the NeXus class of the group.
Without the "class" member, the NeXus class of the group is built using the groups name: "NX" + lower(name) \\
@@ -207,38 +207,38 @@ Values can be
* strings
* numbers
* [#positionerValues positioner values]
* arrays of numbers or [#positionerValues positioner values]
* arrays of numbers or [positioner values](#positioner-values)
* [#unitValues value with unit]
* objects \\
a nested NeXus group is created \\
these nested objects must have a "class" member
[=#conditionalWriting '''Conditional writing'''] \\
### Conditional Writing
A group may be written conditionally. When a settings object has a "condition" member, its value defines a condition
that must be met in order to write the entire group. The value of the condition has the form:
{{{ {"operator" : [values]} }}}
values can be
* strings
* numbers
* [#positionerValues positioner values]
* [positioner values](#positioner-values)
* [#epicsChannelValues epics channel values]
Only one operator is implemented so far:
* {{{ {"==" : [value1, value2]} }}}
[=#positionerValues '''Positioner values'''] \\
To write the (numeric) value of a positioner to the NXinstrument section or to use it in a [#conditionalWriting condition],
### Positioner Values
To write the (numeric) value of a positioner to the NXinstrument section or to use it in a [condition](#conditional-writing),
a value can be a json object with the following members:
* positioner: Name of a [#Positioner Positioner]
* positioner: Name of a [Positioner](#positioner)
* factor (optional): float value. The positioners value is multiplied with this factor.
* offset (optional): float value. The positioners value is added to this offset.
[=#epicsChannelValues '''Epics channel values'''] \\
To use the (string) value of an epics channel in a [#conditionalWriting condition],
### Epics Channel Values
To use the (string) value of an epics channel in a [condition](#conditional-writing),
a value can be a json object with the following member:
* epicsChannel: Address of an EPICS channel
[=#unitValues '''Value with unit'''] \\
### Value with Unit
As all numeric values should be written with a unit,
a value can be a json object with value and unit:
{{{ {"value" : value, "unit" : unit} }}}
@@ -252,38 +252,36 @@ unit must be a string
## Microscope Control
## Pixel Clock
This file contains the pixel clock settings. It can have multiple pixel clock
definitions, but only one of them can be active. The key of each pixel clock
definition is the name of that pixel clock.
This file contains the pixel clock settings. It can have multiple pixel clock definitions, but only one of them can be active. The key of each pixel clock definition is the name of that pixel clock.
See source:trunk/PixelatorController/config/pixelClock.json for an example.
active::
Integer value 1 activates this pixel clock. \\
'''Default''': 0
**active**::<BR>
&emsp;Integer value 1 activates this pixel clock. <BR>
&emsp;**Default**: 0
devicePath::
String value defines the comedi device path. \\
'''Default''': "" (empty string)
**devicePath**::<BR>
&emsp;String value defines the comedi device path.<BR>
&emsp;**Default**: "" (empty string)
maxCounters::
Integer value defines the maximal number of subdevices. \\
'''Default''': 0
**maxCounters**::<BR>
&emsp;Integer value defines the maximal number of subdevices.<BR>
&emsp;**Default***: 0
noHardware::
Boolean value. Set to true to use PixelatorController without hardware. \\
'''Default''': false
**noHardware**::<BR>
&emsp;Boolean value. Set to true to use PixelatorController without hardware.<BR>
&emsp;**Default**: false
waitUntilDoneInterval::
Double value defines the interval (in seconds) used in waitUntilDone().
**waitUntilDoneInterval**::<BR>
&emsp;Double value defines the interval (in seconds) used in waitUntilDone().
running() is called in this interval until it returns false or
until waitUntilDoneTimeout is exceeded. \\
'''Default''': 0.005
until waitUntilDoneTimeout is exceeded. <BR>
&emsp;**Default***: 0.005
waitUntilDoneTimeout::
Double value defines the timeout (in seconds) used in waitUntilDone().
running() is called until it returns false or until waitUntilDoneTimeout is exceeded. \\
'''Default''': 10.0
**waitUntilDoneTimeout**::<BR>
&emsp;Double value defines the timeout (in seconds) used in waitUntilDone().
running() is called until it returns false or until waitUntilDoneTimeout is exceeded.<BR>
&emsp;**Default**: 10.0
## Polarization
@@ -292,101 +290,118 @@ This file contains the positioner settings.
See source:trunk/PixelatorController/config/positioner.json for an example.
atPositionCheckInverval_Default::
Double value used for all positioners that don't define their own atPositionCheckInverval. \\
'''Default''': 0.002
**atPositionCheckInverval_Default**::<BR>
&emsp;Double value used for all positioners that don't define their own atPositionCheckInverval.<BR>
&emsp;**Default**: 0.002
atPositionCheckTimeout_Default::
Double value used for all positioners that don't define their own atPositionCheckTimeout. \\
'''Default''': 10.0
**atPositionCheckTimeout_Default**::<BR>
&emsp;Double value used for all positioners that don't define their own atPositionCheckTimeout.<BR>
&emsp;**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:
nexus_name::
String value defines the positioners name in the hdf5 file. \\
'''Default''': positioner name
axisName::
String value defines the name of the axis moved by this positioner. \\
Example: Coarse and Fine X both belong to SampleX. \\
'''Default''': positioner name
**nexus_name**::<BR>
&emsp;String value defines the positioners name in the hdf5 file.<BR>
&emsp;**Default**: positioner name
description::
String value describes the positioner.
**axisName**::<BR>
&emsp;String value defines the name of the axis moved by this positioner.<BR>
&emsp;Example: Coarse and Fine X both belong to SampleX.<BR>
&emsp;**Default**: positioner name
**description**::<BR>
&emsp;String value describes the positioner.
That value is written to the hdf5 file (NXcollection) and
it is sent to PixelatorGUI. \\
'''Default''': "" (empty string)
it is sent to PixelatorGUI. <BR>
&emsp;**Default**: "" (empty string)
unit::
String value defines the unit of the positioner values (on the GUI and in the hdf5 file). \\
'''Default''': "" (empty string)
**unit**::<BR>
&emsp;String value defines the unit of the positioner values (on the GUI and in the hdf5 file).<BR>
&emsp;**Default**: "" (empty string)
hardwareUnitFactor::
Double value defines the conversion factor used to convert hardware positioner values to '''unit'''. \\
'''Default''': 1.0
**hardwareUnitFactor**::<BR>
&emsp;Double value defines the conversion factor used to convert hardware positioner values to **unit***.<BR>
&emsp;**Default**: 1.0
distributionMode::
String value defines the discribution of points to an interval. \\
Example: 5 points from 0 to 10:
**distributionMode**::<BR>
&emsp;String value defines the discribution of points to an interval.<BR>
&emsp;Example: 5 points from 0 to 10:
* "n": 0, 2.5, 5, 7.5, 10
* "nPlus1": 0, 2, 4, 6, 8, 10
'''Default''': "n"
&emsp;**Default**: "n"
positionOffset::
Double value defines . \\
'''Default''': 0.0
**positionOffset**::<BR>
&emsp;Double value defines . <BR>
&emsp;**Default**: 0.0
upperSoftLimit::
Double value defines . \\
'''Default''': 0.0
**upperSoftLimit**::<BR>
&emsp;Double value defines . <BR>
&emsp;**Default**: 0.0
lowerSoftLimit::
Double value defines . \\
'''Default''': 0.0
**lowerSoftLimit**::<BR>
&emsp;Double value defines .<BR>
&emsp;**Default**: 0.0
coarsePositioner::
String value defines . \\
'''Default''': "" (empty string)
**coarsePositioner**::<BR>
&emsp;String value defines .<BR>
&emsp;**Default**: "" (empty string)
finePositioner::
String value defines . \\
'''Default''': "" (empty string)
**finePositioner**::<BR>
&emsp;String value defines .<BR>
&emsp;**Default**: "" (empty string)
maxVelocity::
Double value defines . \\
'''Default''': 0.0
**maxVelocity**::<BR>
&emsp;Double value defines . <BR>
&emsp;**Default**: 0.0
readOnly::
Boolean value true when the positioner can only be used to read its position. \\
'''Default''': false
**readOnly**::<BR>
&emsp;Boolean value true when the positioner can only be used to read its position (i.e. cannot request a move). <BR>
&emsp;**Default**: false
autoOff::
String value defines . \\
* "Never" :
**autoOff**::<BR>
&emsp;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
'''Default''': "Never"
&emsp;"Never" : Positioner remains powered after scanning moves and is unaffected by an "All Motors Off" request.<BR>
&emsp;"Always" : positioner is always unpowered after any move.<BR>
&emsp;"SlowAxis" : Positioner is unpowered after each scan move if it is not part of the fast scanning axis.<BR>
&emsp;"Disabled" : Positioner does not physically have powered and unpowered states.<BR>
&emsp;"Manual" : Positioner remains powered after scanning moves, but is unpowered by "All Motors Off" request.<BR>
&emsp;**Default**: "Never"
beamlineControlPosition::
Unsigned integer value defines . \\
'''Default''': 0
| autoOff value | direct | scan | "All Motors Off" |
|---------------|--------|------|------------------|
| "Never" | ON | ON | ON |
| "Always" | OFF | OFF | OFF |
| "SlowAxis" | OFF | ON* | OFF |
| "Disabled" | -- | -- | -- |
| "Manual" | ON | ON | OFF |
epsilon::
Double value defines . \\
'''Default''': 0.1
atPositionCheckInverval::
Double value defines the interval (in seconds) used in waitDoneMoving().
**beamlineControlPosition**::<BR>
&emsp;Unsigned integer value defines . <BR>
&emsp;**Default**: 0
**epsilon**::<BR>
&emsp;Double value defines .<BR>
&emsp;**Default**: 0.1
**atPositionCheckInverval**::<BR>
&emsp;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. \\
'''Default''': atPositionCheckInverval_Default (see above)
until atPositionCheckTimeout is exceeded. <BR>
&emsp;**Default**: atPositionCheckInverval_Default (see above)
atPositionCheckTimeout::
Double value defines the timeout (in seconds) used in waitDoneMoving().
getStatus() is called as long as it returns moving or until atPositionCheckTimeout is exceeded. \\
'''Default''': atPositionCheckTimeout_Default (see above)
**atPositionCheckTimeout**::<BR>
&emsp;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>
&emsp;**Default''': atPositionCheckTimeout_Default (see above)
stringPositions::
Optional array of objects with members