# ePowerSwitch Midas Frontend Midas frontend that wraps an EPICS ePowerSocket drivers ![alt text](.img/controlPanel.png) ## List of compatible EPICS driver https://gitea.psi.ch/lin-epics-modules/ePowerSwitch/src/branch/master/README.md # How to use ## Clone & Compile Clone the frontend code ```bash $ git clone --recurse-submodules -j8 $ cd ./ePowerSwitch_frontend ``` Compile it ```bash $ mkdir build $ cmake -B build $ cmake --build build ``` ## Run Start it with default name ```bash $ $PWD/build/ePowerSwitchFront ``` Start it with specified frontend name and default equipment name ```bash $ $PWD/build/ePowerSwitchFront ``` Start it with specified frontend name and equipment name ```bash $ $PWD/build/ePowerSwitchFront ``` # Features ## Controls The frontend exposes for each socket two ODB keys: ``` Socket n requested => indicates the requested state for the socket number n Socket n current => indicates the current state of the socket number ``` There are 3 state currently supported: - On - Off - Restart ## Dynamic grow / shrink This frontend will detect the number of sockets that EPICS declares. It will adapt accordingly. This feature also works at runtime. # Architecture ![alt text](.img/graph.png) ## power_switch_scfe This class extends the Midas frontend. ## power_switch This class extends Midas equipment. Its job is to handle a changing number of sockets. ## outlet This class allows handling each outlet separately, and managing all different possible transitions.