From 08f7960eb93a47f9acdd53576d62ff4efce45a5c Mon Sep 17 00:00:00 2001 From: Aurelie Vancraeyenest <34453546+avancra@users.noreply.github.com> Date: Tue, 26 Mar 2019 16:59:23 +0200 Subject: [PATCH] Add README --- Figures/HvGUI.png | Bin 0 -> 16608 bytes README.rst | 62 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 Figures/HvGUI.png create mode 100644 README.rst diff --git a/Figures/HvGUI.png b/Figures/HvGUI.png new file mode 100644 index 0000000000000000000000000000000000000000..30b99ab55988d3783407bbb93b56c2e7a0f5c69e GIT binary patch literal 16608 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 literal 0 HcmV?d00001 diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..4ac1899 --- /dev/null +++ b/README.rst @@ -0,0 +1,62 @@ +=============================================== +HvControllerGUI +=============================================== + +HvControllerGUI is a graphical application to control a Glassman HV power supply. It has been developed for a FJ series model, delivering positive high voltage up to 40 kV and 3 mA (model FJ40P03). + +Installation +============ + +Clone the repository to get a copy of the source code: + +.. code-block:: bash + + git clone https://github.com/avancra/HvControllerGUI.git + python HvControllerGUI.py + +License +======= + +HvControllerGUI is licensed under the Apache License, Version 2.0 (see LICENSE for full version of the license) + +Features +======== +The HV module is accessed through a serial port. Once the port open, it is possible to set high voltage to the desired value. + +The reset button allows to set the HV back to 0 kV and the HV off, but do not close the serial port. + +A query button allows to make a direct query to the HV device, which will output the HV voltage and current as well as the status (on, off), the mode (voltage, current) and the fault status in text format to the Command output. A query to the device is in any case performed every 500 ms as the device as a communication timeout of 1.5 s. + +.. image:: Figures/HvGUI.png + :align: center + +.. Note:: + The right hand side panel for a pre-defined HV program is not currently available. + +During the acquisition, the stability of the supplied voltage is checked every minute to ensure that it does not diverge from more than 0.2 kV from the target value. An entry log to a *hvCtrl.log* file is made each time the HV value deviate too much, and every 10 min otherwise. + +Software details +================ + +Design +------ + +The graphical interface has been designed using QtDesigner and PyQt5. Therefore any modifications to the interface should be done through QtDesigner and then exported to python using the :code:`pyuic5` command. + +The software makes a great use of PyQt signal and slot mechanism to communicate between different threads and keep the GUI responsive. The connecting slot by name convention has been used whenever possible. The software makes also extensive use of the *@PyQt.Slot()* decorator. + +Threading is done using QRunnables and a QThreadPool to allow small repetitive actions. QTimers are also used for the query and the stability check. + +Components +---------- + +**HvControllerGUI** contains the main GUI application with all the GUI logic for signal and slots as well as some GUI design. Most of the GUI design is nevertheless defined in the **HvGUI.ui/py** files. The **resources** files contains definitions of the visual resources used in the program. + +In the **HvController** class are defined all the methods for communication with the hardware. Some hardware characteristics are defined as class variables and can be adapted for other hardware(MAX_VOLTAGE, MAX_CURENT, MAX_HEX_VAL_RECEIVE, MAX_HEX_VAL_SENT). + +The thread workers are defined in the **workers.py** file and the **checksum module** import some functionalities to deal with checksum calculation and checking. The thread worker is designed to be very generic. It takes a function name as argument and its arguments as keyword arguments. This allow to be able to launch all the small function through the same worker. + + + + +