Files
mdif/README.md

61 lines
1.9 KiB
Markdown

MDIF Epics Module
-----------------
An Asyn and Stream Device based driver for the Multi-Detector Interface used at
some instrument within SINQ.
## How to Use
Unless a custom database is needed, a device can be configure simply by setting
the required environment variables when calling the MDIF start script.
Required Variables
| Environment Variable | Purpose |
|----------------------|-----------------------------------------|
| INSTR | Prefix of all device specific PVs |
| NAME | First field in all PVs after Prefix |
| MDIF\_IP | Network IP of device |
| MDIF\_PORT | Network Port of device |
All PVs take the form
```
$(INSTR)$(NAME):*
```
Available device startup scripts
* scripts/mdif.cmd
For example
```
epicsEnvSet("INSTR", "SQ:INSTRUMENT:") # can also be set in runScript call
runScript "$(mdif_DIR)mdif.cmd" "NAME=MDIF, MDIF_IP=focus-ts, MDIF_PORT=3016"
```
## PVs of Interest
| PV | Description |
|------------------------------|--------------------------------------------------|
| \$(INSTR)\$(NAME):MsgTxt | Contains unexpected response to executed command |
| \$(INSTR)\$(NAME):DELAY | Used to write a new delay value to the MDIF |
| \$(INSTR)\$(NAME):DELAY\_RBV | Read back the delay value configured in the MDIF |
## Simulation
Simulation of the Hardware can be toggled on as follows:
```
epicsEnvSet("SET_SIM_MODE","") # run MDIF simulation instead of connecting to actual system
runScript "$(mdif_DIR)mdif.cmd" "NAME=MDIF, MDIF_IP=localhost, MDIF_PORT=3016"
```
In such a case, the provided `MDIF_IP` is ignored, and a python program
simulating the hardware is started in the background, listening at the
specified `MDIF_PORT`.
See [sim/mdif\_sim.py](sim/mdif_sim.py).