This repo contains the source code for the hybrid engine ground system UI
- (Only required if working on UI) Follow steps on InSpace wiki to apply for Qt educational license and install Qt tools https://imaginary-fennel-36b.notion.site/PyQt-9af8dcdfb79d4bae98e3848670bb9994
- Create a Python virtual environment
python -m venv <virtual environment name>
- Activate the virtual environment
- On Windows: Run
.\<venv directory>\Scripts\Activate.ps1
. Note that you made need modify your machines execution policy if on Windows 11. To do so, runSet-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
- On Linux/Mac: Run
source <venv directory>\bin\activate
- On Windows: Run
- Install the required dependencies by running
pip install -r requirements.txt
- Build the UI either using custom build steps in Qt Creator or running the build script
python build.py
This application can be run either from the command line or in the Qt creator application. If running in Qt creator ensure that you have correctly added the custom build steps. To run this application from the command line run python main.py
Here's a quick breakdown of the files and directories of this project
main.py
- Entrypoint of project, creates and displays and instance ofMainWindow
. This is the only file that needs to be executedbuild.py
- Python script that compiles generated.ui
and.qrc
filespacket_spec.py
- Contains implementation of the hybrid communications packet specification and related parsing functionsmain_window
- Contains code for userMainWindow
interfaceui
- Contains generated and compiled UI code and imagesform.ui
- Generated XML-like file representation of UIui_form.py
- Compiled Python code ofform.ui
resources.qrc
- Generated file containing information of images and other assetsrc_resources.qrc
- Compiled Python code ofresources.qrc
main_window.py
- Contains code forMainWindow
class, primarily consists of imports from other filesudp.py
- Contains all slots and handler code for UDP stuffdata_handlers.py
- Contains all code for processing datarecording_and_playback.py
- Contains all code for handling recording and playback of datalogging.py
- Contains all code for handling logging