Tango device for the PandABox position-based triggering at SoftiMAX.
-
Provides:
tangods-softimax-pandapostrig -
Requeriments:
PyTango >= 8.1.6
This tango device interacts with the PandABox at SoftiMAX and provides position-based triggering capability.
Currently, it is used in combination with the BlackFreq acquisition FPGA controller. It sends a position-based trigger signal to the BlackFreq controller at the beginning of each new scanning line. In turn, the BlackFreq controller is responsible for the time-based acquisition of the signal from the 0D detectors, such as PMT and photo-diode.
The functionality of the present tango device is based on a SoftiMAX specific PandABox layout that is called pos_trig_stxm_ctrl, which is also saved as a json file here and can be copied without any modification to the PandABox /opt/share/designs/PANDA folder.
The PandaPosTrig device requires the following property:
| Property | Purpose | Default value |
|---|---|---|
| PandaHost | PandABox hostname or IP | "b-softimax-panda-0" |
| PandaPort | PandABox control port | 8888 |
| AbsXSign | Sign of the X-axis | -1 |
| AbsYSign | Sign of the Y-axis | 1 |
The PandaPosTrig device exposes the following attributes:
| Attribute | Type | R/W | Unit | Purpose |
|---|---|---|---|---|
| AbsX | DevDouble | R/W | µm | Absolute sample X position |
| AbsY | DevDouble | R/W | µm | Absolute sample Y position |
| AbsXOffset | DevDouble | R/W | µm | Sample X position offset |
| AbsXOffset | DevDouble | R/W | µm | Sample X position offset |
| TrigAxis | TrigAxis | R/W | Selection of the axis for triggering | |
| TrigXPos | DevDouble | R/W | µm | Position for the X axis triggering |
| TrigYPos | DevDouble | R/W | µm | Position for the Y axis triggering |
| TrigState | DevString | R | µm | Status of the PandABox concerning triggering |
The PandaPosTrig device exposes the following attributes:
| Attribute | Type | R/W | Unit | Purpose |
|---|---|---|---|---|
| DetDwell | DevDouble | R/W | ms | 0D detectors dwell time |
The PandaPosTrig device exposes the following commands:
| Command | Action |
|---|---|
| Init | Re-initialize the device |
| ArmSingle | Prepare PCAP block according to the given TrigXPos or TrigYPos value |
| Disarm | Disarm the PCAP block |
| SetXTrigToCurr | Set TrigXPos to the current absolute position value |
| SetYTrigToCurr | Set TrigYPos to the current absolute position value |
| ZeroAbs | Sets absolute positions to zero by reseting increm. enc. block |
The PandaPosTrig device has the following states:
| State | Event |
|---|---|
| ON | The device is On and can be prepared for triggering |
| FAULT | The device has failed to execute the last command or communication is lost |
| Block name | Description |
|---|---|
| INENC1 | Y Position input from the Attocube interferometer A&B output |
| INENC2 | X Position input from the Attocube interferometer A&B output |
| OUTENC1, OUTENC2 | Respective X and Y A&B outputs that go to the ACS position oscilloscope |
| PCOMP1 | Block that produces a position-based pulse to mark the beginning of a new line |
| PULSE1 | Triggers and gates position and 0D detecetors signals acquisition |
| TTLIN5 | PMT signal input |
| TTLIN6 | Photodiode signal input |
| TTLOUT9 | Output of the position-based trigger that goes to BlackFreq |
| PULSE2 | Produces time-based pulses to trigger 0D det. acquisition for monitoring purposes |
| CLOCK1 | Produces pulse with 1 µs period for precise internal time stamping |
| COUNTER1 | Measures the duration of the pulse produced by PULSE2 in µs |