diff --git a/tomcat_bec/devices/device_list.md b/tomcat_bec/devices/device_list.md
index a5d1188..8491d1a 100644
--- a/tomcat_bec/devices/device_list.md
+++ b/tomcat_bec/devices/device_list.md
@@ -1,9 +1,21 @@
// This file was autogenerated. Do not edit it manually.
## Device List
-### tomcat_bec (gitlab.psi.ch/bec/tomcat_bec)
+### tomcat_bec
| Device | Documentation | Module |
| :----- | :------------- | :------ |
-| GrashopperTOMCAT |
Grashopper detector for TOMCAT
Parent class: PSIDetectorBase
class attributes:
custom_prepare_cls (GrashopperTOMCATSetup) : Custom detector setup class for TOMCAT,
inherits from CustomDetectorMixin
cam (SLSDetectorCam) : Detector camera
image (SLSImagePlugin) : Image plugin for detector
| grashopper_tomcat |
-| SLSDetectorCam |
SLS Detector Camera - Grashoppter
Base class to map EPICS PVs to ophyd signals.
| grashopper_tomcat |
-| SLSImagePlugin | SLS Image Plugin
Image plugin for SLS detector imitating the behaviour of ImagePlugin from
ophyd's areadetector plugins.
| grashopper_tomcat |
-| TomcatAerotechRotation | Special motor class that provides flyer interface and progress bar. | tomcat_rotation_motors |
+| GrashopperTOMCAT |
Grashopper detector for TOMCAT
Parent class: PSIDetectorBase
class attributes:
custom_prepare_cls (GrashopperTOMCATSetup) : Custom detector setup class for TOMCAT,
inherits from CustomDetectorMixin
cam (SLSDetectorCam) : Detector camera
image (SLSImagePlugin) : Image plugin for detector
| [tomcat_bec.devices.grashopper_tomcat](https://gitlab.psi.ch/bec/tomcat_bec/-/blob/main/tomcat_bec/devices/grashopper_tomcat.py) |
+| SLSDetectorCam |
SLS Detector Camera - Grashoppter
Base class to map EPICS PVs to ophyd signals.
| [tomcat_bec.devices.grashopper_tomcat](https://gitlab.psi.ch/bec/tomcat_bec/-/blob/main/tomcat_bec/devices/grashopper_tomcat.py) |
+| SLSImagePlugin | SLS Image Plugin
Image plugin for SLS detector imitating the behaviour of ImagePlugin from
ophyd's areadetector plugins.
| [tomcat_bec.devices.grashopper_tomcat](https://gitlab.psi.ch/bec/tomcat_bec/-/blob/main/tomcat_bec/devices/grashopper_tomcat.py) |
+| TomcatAerotechRotation | Special motor class that provides flyer interface and progress bar. | [tomcat_bec.devices.tomcat_rotation_motors](https://gitlab.psi.ch/bec/tomcat_bec/-/blob/main/tomcat_bec/devices/tomcat_rotation_motors.py) |
+| EpicsMotorX | Special motor class that provides flyer interface and progress bar. | [tomcat_bec.devices.aerotech.AerotechAutomation1](https://gitlab.psi.ch/bec/tomcat_bec/-/blob/main/tomcat_bec/devices/aerotech/AerotechAutomation1.py) |
+| aa1AxisDriveDataCollection | Axis data collection
This class provides convenience wrappers around the Aerotech API's axis
specific data collection functionality. This module allows to record
hardware synchronized signals with up to 200 kHz.
The default configuration is using a fixed memory mapping allowing up to
1 million recorded data points on an XC4e (this depends on controller).
Usage:
# Configure the DDC with default internal triggers
ddc = aa1AxisPsoDistance(AA1_IOC_NAME+":ROTY:DDC:", name="ddc")
ddc.wait_for_connection()
ddc.configure(d={'npoints': 5000})
ddc.kickoff().wait()
...
ret = yield from ddc.collect()
| [tomcat_bec.devices.aerotech.AerotechAutomation1](https://gitlab.psi.ch/bec/tomcat_bec/-/blob/main/tomcat_bec/devices/aerotech/AerotechAutomation1.py) |
+| aa1AxisIo | Analog / digital Input-Output
This class provides convenience wrappers around the Aerotech API's axis
specific IO functionality. Note that this is a low-speed API, actual work
should be done in AeroScript. Only one pin can be writen directly but
several can be polled!
| [tomcat_bec.devices.aerotech.AerotechAutomation1](https://gitlab.psi.ch/bec/tomcat_bec/-/blob/main/tomcat_bec/devices/aerotech/AerotechAutomation1.py) |
+| aa1AxisPsoBase | Position Sensitive Output - Base class
This class provides convenience wrappers around the Aerotech IOC's PSO
functionality. As a base class, it's just a collection of PVs without
significant logic (that should be implemented in the child classes).
It uses event-waveform concept to produce signals on the configured
output pin: a specified position based event will trigger the generation
of a waveform on the oputput that can be either used as exposure enable,
as individual trigger or as a series of triggers per each event.
As a first approach, the module follows a simple pipeline structure:
Genrator --> Event --> Waveform --> Output
Specific operation modes should be implemented in child classes.
| [tomcat_bec.devices.aerotech.AerotechAutomation1](https://gitlab.psi.ch/bec/tomcat_bec/-/blob/main/tomcat_bec/devices/aerotech/AerotechAutomation1.py) |
+| aa1AxisPsoDistance | Position Sensitive Output - Distance mode
This class provides convenience wrappers around the Aerotech API's PSO
functionality in distance mode. It uses event-waveform concept to produce
signals on the configured output pin: a specified position based event
will trigger the generation af a waveform on the oputput that can be either
used as exposure enable, as individual trigger or as a series of triggers
per each event.
As a first approach, the module follows a simple pipeline structure:
Genrator (distance) --> Event --> Waveform --> Output
The module provides configuration interface to common functionality, such
as fixed distance or array based triggering and can serve as a base for
future advanced functionality. The relative distances ease the limitations
coming from 32 bit PSO positions.
For a more detailed description of additional signals and masking plase
refer to Automation1's online manual.
Usage:
# Configure the PSO to raise an 'enable' signal for 180 degrees
pso = aa1AxisPsoDistance(AA1_IOC_NAME+":ROTY:PSO:", name="pso")
pso.wait_for_connection()
pso.configure(d={'distance': [180, 0.1], 'wmode': "toggle"})
pso.kickoff().wait()
# Configure the PSO to emmit 5 triggers every 1.8 degrees
pso = aa1AxisPsoDistance(AA1_IOC_NAME+":ROTY:PSO:", name="pso")
pso.wait_for_connection()
pso.configure(d={'distance': 1.8, 'wmode': "pulsed", 'n_pulse': 5})
pso.kickoff().wait()
| [tomcat_bec.devices.aerotech.AerotechAutomation1](https://gitlab.psi.ch/bec/tomcat_bec/-/blob/main/tomcat_bec/devices/aerotech/AerotechAutomation1.py) |
+| aa1AxisPsoWindow | Position Sensitive Output - Window mode
This class provides convenience wrappers around the Aerotech API's PSO
functionality in window mode. It can either use the event-waveform concept
or provide a direct window output signal (in/out) to the output pin. The
latter is particularly well-suited for the generation of trigger enable
signals, while in event mode it allows the finetuning of trigger lenth.
As a first approach, the module follows a simple pipeline structure:
Genrator --> Event --> Waveform --> Output pin
Genrator --> Window output --> Output pin
The module provides configuration interface to common functionality, such
as repeated trigger enable signal or fixed area scaning. Unfortunately the
entered positions are absolute, meaning this mode has an inherent limitation
with encoder counters being kept in 32 bit integers.
For a more detailed description of additional signals and masking plase
refer to Automation1's online manual.
| [tomcat_bec.devices.aerotech.AerotechAutomation1](https://gitlab.psi.ch/bec/tomcat_bec/-/blob/main/tomcat_bec/devices/aerotech/AerotechAutomation1.py) |
+| aa1Controller | Ophyd proxy class for the Aerotech Automation 1's core controller functionality | [tomcat_bec.devices.aerotech.AerotechAutomation1](https://gitlab.psi.ch/bec/tomcat_bec/-/blob/main/tomcat_bec/devices/aerotech/AerotechAutomation1.py) |
+| aa1DataAcquisition | Controller Data Acquisition - DONT USE at Tomcat
This class implements the controller data collection feature of the
Automation1 controller. This feature logs various inputs at a
**fixed frequency** from 1 kHz up to 200 kHz.
Usage:
1. Start a new configuration with "startConfig"
2. Add your signals with "addXxxSignal"
3. Start your data collection
4. Read back the recorded data with "readback"
| [tomcat_bec.devices.aerotech.AerotechAutomation1](https://gitlab.psi.ch/bec/tomcat_bec/-/blob/main/tomcat_bec/devices/aerotech/AerotechAutomation1.py) |
+| aa1GlobalVariableBindings | Polled global variables
This class provides an interface to read/write the first few global variables
on the Automation1 controller. These variables are continuously polled
and are thus a convenient way to interface scripts with the outside word.
| [tomcat_bec.devices.aerotech.AerotechAutomation1](https://gitlab.psi.ch/bec/tomcat_bec/-/blob/main/tomcat_bec/devices/aerotech/AerotechAutomation1.py) |
+| aa1GlobalVariables | Global variables
This class provides an interface to directly read/write global variables
on the Automation1 controller. These variables are accesible from script
files and are thus a convenient way to interface with the outside word.
Read operations take as input the memory address and the size
Write operations work with the memory address and value
Usage:
var = aa1Tasks(AA1_IOC_NAME+":VAR:", name="var")
var.wait_for_connection()
ret = var.readInt(42)
var.writeFloat(1000, np.random.random(1024))
ret_arr = var.readFloat(1000, 1024)
| [tomcat_bec.devices.aerotech.AerotechAutomation1](https://gitlab.psi.ch/bec/tomcat_bec/-/blob/main/tomcat_bec/devices/aerotech/AerotechAutomation1.py) |
+| aa1TaskState | Task state monitoring API
This is the task state monitoring interface for Automation1 tasks. It
does not launch execution, but can wait for the execution to complete.
| [tomcat_bec.devices.aerotech.AerotechAutomation1](https://gitlab.psi.ch/bec/tomcat_bec/-/blob/main/tomcat_bec/devices/aerotech/AerotechAutomation1.py) |
+| aa1Tasks | Task management API
The place to manage tasks and AeroScript user files on the controller.
You can read/write/compile/execute AeroScript files and also retrieve
saved data files from the controller. It will also work around an ophyd
bug that swallows failures.
Execution does not require to store the script in a file, it will compile
it and run it directly on a certain thread. But there's no way to
retrieve the source code.
Write a text into a file on the aerotech controller and execute it with kickoff.
'''
script="var $axis as axis = ROTY\nMoveAbsolute($axis, 42, 90)"
tsk = aa1Tasks(AA1_IOC_NAME+":TASK:", name="tsk")
tsk.wait_for_connection()
tsk.configure({'text': script, 'filename': "foobar.ascript", 'taskIndex': 4})
tsk.kickoff().wait()
'''
Just execute an ascript file already on the aerotech controller.
'''
tsk = aa1Tasks(AA1_IOC_NAME+":TASK:", name="tsk")
tsk.wait_for_connection()
tsk.configure({'filename': "foobar.ascript", 'taskIndex': 4})
tsk.kickoff().wait()
'''
| [tomcat_bec.devices.aerotech.AerotechAutomation1](https://gitlab.psi.ch/bec/tomcat_bec/-/blob/main/tomcat_bec/devices/aerotech/AerotechAutomation1.py) |