hv-controls
Simple GUI for HV source controls.
Can be used for Mantigora devices.
Tested on Ubuntu 21.10 with HT-60-30-P. Proposal correct work on all platform for HT-60-*, HT-15-*, HT2000, HV2000, HV6000.
Installation
- Install USB/FTDI drivers. Application can be used different drivers for Linux and Windows. For Linux/Windows can be used
pyftdi
withlibusb
(On Debian/Ubuntu usesudo apt-get install libusb-1.0
). For Windows can be used FTD2XX (Not implemented). - Configure our system what would to allow using drivers from user-space. For linux see here or run application with
sudo
. - Install application:
- For installation from PyPI run
pip install mipt-npm-hv-controls
- For installation from source, move application source directory and run
pip install -e .
(Also you can install dependencies manuallypip install pyqt5 pyftdi matplotlib Jinja2
)
- For installation from PyPI run
- Run
hv-controls
in terminal (orpython3 main.py
). Use option--no-gui
for run console apps. Use options--debug
for getting debug information in log.
For developers
Devices parameters
Devices parameters located in hv/device_data
and based on file Unit1.pas
, inforamtion from vendor and specification of protocol.
Parameters of next devices isn't consistent:
- HT-15-10-P and HT-15-10-N: max current 3000 mcA or 750 mcA?
- HT-6-... absent current step.
- HT4000, HT6000, HR... absent codemax ADC and DAC.
Code overview
Π€Π°ΠΉΠ» hv_device.py
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠ»Π°ΡΡ HVDevice
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΡ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡ
Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ
Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ². Π€Π°ΠΉΠ»Ρ ftdi_device.py
ΠΈ ftd2xx_device.py
ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠ»Π°ΡΡΡ-ΠΎΠ±Π΅ΡΡΠΊΠΈ Π½Π°Π΄ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ STDI ΠΈ STD2XX (Π΄Π»Ρ Π½Π΅Π³ΠΎ ΠΏΠΎΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π³Π»ΡΡΠΊΠ°).
Π€Π°ΠΉΠ» cmd_ui.py
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΈΠ±ΠΎΡΠΎΠΌ, Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅.
ΠΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ hv/ui
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΈΠ±ΠΎΡΠΎΠΌ.
Π€Π°ΠΉΠ» run.py
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΡΠΊΠΈ Π²Ρ
ΠΎΠ΄Π°, Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΡΠΎΡΡΡ
pip
ΡΠΌΠ΅Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ shell ΠΈ bat ΡΠΊΡΠΈΠΏΡΡ.
Π€Π°ΠΉΠ» main.py
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
Π Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ hv/device_data
Ρ
ΡΠ°Π½ΠΈΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°Ρ
ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠ΅ΡΠΈΠΉ, ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΡΠ²ΠΎΡ ΡΠ΅ΡΠΈΡ, ΠΈ ΠΎΡΡΡΠ΄Π° Π±ΡΠ΄Ρ Π±ΡΠ°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅.