Github repository for hardware and software interfacing of the smart system used by the Hussein Ultrafast Plasma Science group at the University of Alberta for 15 TW laser experiments.
The smart system aims to interface a collection of hardware components necessary to perform high intensity laser-plasma interactions including FLIR Blackfly CCD, Newport XPS-D8 Motion Controller, Agilent XGS-600 Vacuum Controller, Andor iKon-M Vacuum X-ray CCD, and more. The various equipment will be controlled using Python code, and be designed in a modular structure to allow for quick changes in experimental setups.
The Amplitude Arco X laser system is a 500 mJ, 30 fs at spec laser system firing at a repetition rate of 10 Hz. This laser system will be used by the Hussein Lab for relativistic laser-driven plasma acceleration experiments.
We are standardized on Python 3.10 for all software in this repo
This project aims to provide a consistent and reliable way to handle relative imports across various modules. By including a default pathing block at the top of the main programs, we ensure that all relative imports are correctly resolved, preventing potential import errors.
To maintain consistent relative imports, we include the following default pathing block at the top of our main programs:
import os
import sys
cwd = os.getcwd()
if '15tw-smartsystem' not in cwd.split(os.path.sep):
raise ValueError("The directory does not contain '15tw-smartsystem' folder.")
# Rebuild the directory string up to and including '15tw-smartsystem', prevent import errors
cwd = os.path.sep.join(cwd.split(os.path.sep)[:cwd.split(os.path.sep).index('15tw-smartsystem') + 1])
sys.path.insert(0, cwd)
To convert PyQt5 Designer .ui
files to Python .py
files that can be imported into your software, you can use the pyuic5
tool. This tool is part of the PyQt5 package and allows you to generate Python code from the .ui
files created using the Qt Designer.
The basic command to convert a .ui
file to a .py
file is:
pyuic5 -x ui_file.ui -o out_file.py