diff --git a/.gitignore b/.gitignore index 772c9f5..e85edb4 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,6 @@ test/DAQexperimental/__pycache__ # Output data output/* + +build/* +liquid_engine_gui.egg-info \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 9c14e78..e98ef17 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,4 @@ [submodule "sdec"] path = sdec - url = git@github.com:SunDevilRocketry/sdec.git + url = https://github.com/SunDevilRocketry/sdec + branch = pip-packaging diff --git a/Arduino/serialtest/serialtest.ino b/Extras/Arduino/serialtest/serialtest.ino similarity index 100% rename from Arduino/serialtest/serialtest.ino rename to Extras/Arduino/serialtest/serialtest.ino diff --git a/test/DAQexperimental.zip b/Extras/test/DAQexperimental.zip similarity index 100% rename from test/DAQexperimental.zip rename to Extras/test/DAQexperimental.zip diff --git a/test/DAQexperimental/.DS_Store b/Extras/test/DAQexperimental/.DS_Store similarity index 100% rename from test/DAQexperimental/.DS_Store rename to Extras/test/DAQexperimental/.DS_Store diff --git a/test/DAQexperimental/AvTest.py b/Extras/test/DAQexperimental/AvTest.py similarity index 100% rename from test/DAQexperimental/AvTest.py rename to Extras/test/DAQexperimental/AvTest.py diff --git a/test/DAQexperimental/DAQexperimental.ino b/Extras/test/DAQexperimental/DAQexperimental.ino similarity index 100% rename from test/DAQexperimental/DAQexperimental.ino rename to Extras/test/DAQexperimental/DAQexperimental.ino diff --git a/test/DAQexperimental/DataGUI.py b/Extras/test/DAQexperimental/DataGUI.py similarity index 100% rename from test/DAQexperimental/DataGUI.py rename to Extras/test/DAQexperimental/DataGUI.py diff --git a/test/DAQexperimental/Gauge.py b/Extras/test/DAQexperimental/Gauge.py similarity index 100% rename from test/DAQexperimental/Gauge.py rename to Extras/test/DAQexperimental/Gauge.py diff --git a/test/DAQexperimental/Gauge.pyc b/Extras/test/DAQexperimental/Gauge.pyc similarity index 100% rename from test/DAQexperimental/Gauge.pyc rename to Extras/test/DAQexperimental/Gauge.pyc diff --git a/test/DAQexperimental/SDRlogo5.ico b/Extras/test/DAQexperimental/SDRlogo5.ico similarity index 100% rename from test/DAQexperimental/SDRlogo5.ico rename to Extras/test/DAQexperimental/SDRlogo5.ico diff --git a/test/DAQexperimental/Servo.py b/Extras/test/DAQexperimental/Servo.py similarity index 100% rename from test/DAQexperimental/Servo.py rename to Extras/test/DAQexperimental/Servo.py diff --git a/test/DAQexperimental/VTC/results.png b/Extras/test/DAQexperimental/VTC/results.png similarity index 100% rename from test/DAQexperimental/VTC/results.png rename to Extras/test/DAQexperimental/VTC/results.png diff --git a/test/DAQexperimental/VTC/spice_sim.csv b/Extras/test/DAQexperimental/VTC/spice_sim.csv similarity index 100% rename from test/DAQexperimental/VTC/spice_sim.csv rename to Extras/test/DAQexperimental/VTC/spice_sim.csv diff --git a/test/DAQexperimental/VTC/vtc.py b/Extras/test/DAQexperimental/VTC/vtc.py similarity index 100% rename from test/DAQexperimental/VTC/vtc.py rename to Extras/test/DAQexperimental/VTC/vtc.py diff --git a/test/DAQexperimental/arduinoCom.py b/Extras/test/DAQexperimental/arduinoCom.py similarity index 100% rename from test/DAQexperimental/arduinoCom.py rename to Extras/test/DAQexperimental/arduinoCom.py diff --git a/test/DAQexperimental/convertDAQ.py b/Extras/test/DAQexperimental/convertDAQ.py similarity index 100% rename from test/DAQexperimental/convertDAQ.py rename to Extras/test/DAQexperimental/convertDAQ.py diff --git a/test/DAQexperimental/data/injector_test_700psi.txt b/Extras/test/DAQexperimental/data/injector_test_700psi.txt similarity index 100% rename from test/DAQexperimental/data/injector_test_700psi.txt rename to Extras/test/DAQexperimental/data/injector_test_700psi.txt diff --git a/test/DAQexperimental/debug.py b/Extras/test/DAQexperimental/debug.py similarity index 100% rename from test/DAQexperimental/debug.py rename to Extras/test/DAQexperimental/debug.py diff --git a/images/SDRLogo5.png b/Extras/test/DAQexperimental/images/SDRLogo5.png similarity index 100% rename from images/SDRLogo5.png rename to Extras/test/DAQexperimental/images/SDRLogo5.png diff --git a/images/SDRlogont2.png b/Extras/test/DAQexperimental/images/SDRlogont2.png similarity index 100% rename from images/SDRlogont2.png rename to Extras/test/DAQexperimental/images/SDRlogont2.png diff --git a/test/DAQexperimental/orificeCalData.txt b/Extras/test/DAQexperimental/orificeCalData.txt similarity index 100% rename from test/DAQexperimental/orificeCalData.txt rename to Extras/test/DAQexperimental/orificeCalData.txt diff --git a/liquid_engine_gui/__init__.py b/liquid_engine_gui/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/main.py b/liquid_engine_gui/__main__.py similarity index 99% rename from main.py rename to liquid_engine_gui/__main__.py index 3f950bb..17409cb 100644 --- a/main.py +++ b/liquid_engine_gui/__main__.py @@ -33,6 +33,7 @@ import sys import datetime import math +from importlib.resources import files # Serial (USB) import serial @@ -54,20 +55,17 @@ sys.path.insert(0, './sdec') # Imports -import solenoid -import gauge as SDR_gauge -import valve as SDR_valve -import engine_display as SDR_engine_display -import sequence as SDR_sequence -import buttons as SDR_buttons -import sensor as SDR_sensor +from liquid_engine_gui.plumbing import solenoid +from liquid_engine_gui import gauge as SDR_gauge +from liquid_engine_gui import valve as SDR_valve +from liquid_engine_gui import engine_display as SDR_engine_display +from liquid_engine_gui import sequence as SDR_sequence +from liquid_engine_gui import buttons as SDR_buttons +from liquid_engine_gui import sensor as SDR_sensor # SDEC -import sdec -import commands -import hw_commands -import sensor_conv -import engineController +import sdec.__main__ as sdec +from sdec import commands, hw_commands, sensor_conv, engineController #################################################################################### @@ -514,8 +512,10 @@ def update_valve_states( valve_states ): ) # Program icon - SDRlogo = tk.PhotoImage(file='images/SDRLogo5.png') - SDRImage = Image.open("images/SDRlogont2.png") + # SDRlogo = tk.PhotoImage(file='images/SDRLogo5.png') + # SDRImage = Image.open("images/SDRlogont2.png") + SDRlogo = tk.PhotoImage(files("liquid_engine_gui").joinpath("images").joinpath("SDRLogo5.png")) + SDRImage = Image.open(files("liquid_engine_gui").joinpath("images").joinpath("SDRlogont2.png")) SDRImage = SDRImage.resize( (int(0.8*140),int(0.8*125)), Image.Resampling.LANCZOS diff --git a/buttons.py b/liquid_engine_gui/buttons.py similarity index 100% rename from buttons.py rename to liquid_engine_gui/buttons.py diff --git a/engine_display.py b/liquid_engine_gui/engine_display.py similarity index 97% rename from engine_display.py rename to liquid_engine_gui/engine_display.py index 670da66..2ca3f85 100644 --- a/engine_display.py +++ b/liquid_engine_gui/engine_display.py @@ -19,16 +19,16 @@ ############################################################### # Project Modules # ############################################################### -import component_template -import solenoid as SDR_solenoid -import ball_valve as SDR_ball_valve -import orifice as SDR_orifice -import pressure_sensor as SDR_pressure_sensor -import temp_sensor as SDR_temp_sensor -import tank as SDR_tank -import pipe as SDR_pipe -import nozzle as SDR_nozzle -import main +from liquid_engine_gui.plumbing import component_template +from liquid_engine_gui.plumbing import solenoid as SDR_solenoid +from liquid_engine_gui.plumbing import ball_valve as SDR_ball_valve +from liquid_engine_gui.plumbing import orifice as SDR_orifice +from liquid_engine_gui.plumbing import pressure_sensor as SDR_pressure_sensor +from liquid_engine_gui.plumbing import temp_sensor as SDR_temp_sensor +from liquid_engine_gui.plumbing import tank as SDR_tank +from liquid_engine_gui.plumbing import pipe as SDR_pipe +from liquid_engine_gui.plumbing import nozzle as SDR_nozzle +# import main ############################################################### diff --git a/gauge.py b/liquid_engine_gui/gauge.py similarity index 100% rename from gauge.py rename to liquid_engine_gui/gauge.py diff --git a/test/DAQexperimental/images/SDRLogo5.png b/liquid_engine_gui/images/SDRLogo5.png similarity index 100% rename from test/DAQexperimental/images/SDRLogo5.png rename to liquid_engine_gui/images/SDRLogo5.png diff --git a/test/DAQexperimental/images/SDRlogont2.png b/liquid_engine_gui/images/SDRlogont2.png similarity index 100% rename from test/DAQexperimental/images/SDRlogont2.png rename to liquid_engine_gui/images/SDRlogont2.png diff --git a/images/engine_gui.png b/liquid_engine_gui/images/engine_gui.png similarity index 100% rename from images/engine_gui.png rename to liquid_engine_gui/images/engine_gui.png diff --git a/images/engine_gui_2023.png b/liquid_engine_gui/images/engine_gui_2023.png similarity index 100% rename from images/engine_gui_2023.png rename to liquid_engine_gui/images/engine_gui_2023.png diff --git a/images/gui.png b/liquid_engine_gui/images/gui.png similarity index 100% rename from images/gui.png rename to liquid_engine_gui/images/gui.png diff --git a/plumbing/ball_valve.py b/liquid_engine_gui/plumbing/ball_valve.py similarity index 97% rename from plumbing/ball_valve.py rename to liquid_engine_gui/plumbing/ball_valve.py index e08ec0c..eeaa961 100644 --- a/plumbing/ball_valve.py +++ b/liquid_engine_gui/plumbing/ball_valve.py @@ -12,7 +12,7 @@ ############################################################### # Standard Imports # ############################################################### -import component_template as SDR_component_template +from liquid_engine_gui.plumbing import component_template as SDR_component_template class Ball_Valve(SDR_component_template.Component): diff --git a/plumbing/component_template.py b/liquid_engine_gui/plumbing/component_template.py similarity index 100% rename from plumbing/component_template.py rename to liquid_engine_gui/plumbing/component_template.py diff --git a/plumbing/nozzle.py b/liquid_engine_gui/plumbing/nozzle.py similarity index 97% rename from plumbing/nozzle.py rename to liquid_engine_gui/plumbing/nozzle.py index bc99d78..1d4bdcc 100644 --- a/plumbing/nozzle.py +++ b/liquid_engine_gui/plumbing/nozzle.py @@ -18,7 +18,7 @@ ############################################################### # Project Imports # ############################################################### -import component_template as SDR_component_template +from liquid_engine_gui.plumbing import component_template as SDR_component_template class Nozzle: diff --git a/plumbing/orifice.py b/liquid_engine_gui/plumbing/orifice.py similarity index 98% rename from plumbing/orifice.py rename to liquid_engine_gui/plumbing/orifice.py index 71e694a..264173d 100644 --- a/plumbing/orifice.py +++ b/liquid_engine_gui/plumbing/orifice.py @@ -12,7 +12,7 @@ ############################################################### # Standard Imports # ############################################################### -import component_template as SDR_component_template +from liquid_engine_gui.plumbing import component_template as SDR_component_template class Orifice(SDR_component_template.Component): diff --git a/plumbing/pipe.py b/liquid_engine_gui/plumbing/pipe.py similarity index 99% rename from plumbing/pipe.py rename to liquid_engine_gui/plumbing/pipe.py index ba7a77e..956184c 100644 --- a/plumbing/pipe.py +++ b/liquid_engine_gui/plumbing/pipe.py @@ -18,7 +18,7 @@ ############################################################### # Project Imports # ############################################################### -import component_template as SDR_component_template +from liquid_engine_gui.plumbing import component_template as SDR_component_template ############################################################### diff --git a/plumbing/pressure_sensor.py b/liquid_engine_gui/plumbing/pressure_sensor.py similarity index 98% rename from plumbing/pressure_sensor.py rename to liquid_engine_gui/plumbing/pressure_sensor.py index c6b0e9d..789ad29 100644 --- a/plumbing/pressure_sensor.py +++ b/liquid_engine_gui/plumbing/pressure_sensor.py @@ -13,7 +13,7 @@ ############################################################### # Standard Imports # ############################################################### -import component_template as SDR_component_template +from liquid_engine_gui.plumbing import component_template as SDR_component_template class PressureSensor(SDR_component_template.Component): diff --git a/plumbing/solenoid.py b/liquid_engine_gui/plumbing/solenoid.py similarity index 98% rename from plumbing/solenoid.py rename to liquid_engine_gui/plumbing/solenoid.py index 83f3e19..cad24cd 100644 --- a/plumbing/solenoid.py +++ b/liquid_engine_gui/plumbing/solenoid.py @@ -12,7 +12,7 @@ ############################################################### # Project Imports # ############################################################### -import component_template as SDR_component_template +from liquid_engine_gui.plumbing import component_template as SDR_component_template class Solenoid(SDR_component_template.Component): diff --git a/plumbing/tank.py b/liquid_engine_gui/plumbing/tank.py similarity index 98% rename from plumbing/tank.py rename to liquid_engine_gui/plumbing/tank.py index 5198e5d..646305d 100644 --- a/plumbing/tank.py +++ b/liquid_engine_gui/plumbing/tank.py @@ -18,7 +18,7 @@ ############################################################### # Project Imports # ############################################################### -import component_template as SDR_component_template +from liquid_engine_gui.plumbing import component_template as SDR_component_template class Tank: diff --git a/plumbing/temp_sensor.py b/liquid_engine_gui/plumbing/temp_sensor.py similarity index 97% rename from plumbing/temp_sensor.py rename to liquid_engine_gui/plumbing/temp_sensor.py index 8c35337..16d95a8 100644 --- a/plumbing/temp_sensor.py +++ b/liquid_engine_gui/plumbing/temp_sensor.py @@ -13,7 +13,7 @@ ############################################################### # Standard Imports # ############################################################### -import component_template as SDR_component_template +from liquid_engine_gui.plumbing import component_template as SDR_component_template class TempSensor(SDR_component_template.Component): diff --git a/sensor.py b/liquid_engine_gui/sensor.py similarity index 98% rename from sensor.py rename to liquid_engine_gui/sensor.py index cc5cdae..2474f88 100644 --- a/sensor.py +++ b/liquid_engine_gui/sensor.py @@ -12,7 +12,7 @@ #################################################################################### # Imports # #################################################################################### -import controller as SDR_controller +from sdec import controller as SDR_controller #################################################################################### diff --git a/sequence.py b/liquid_engine_gui/sequence.py similarity index 99% rename from sequence.py rename to liquid_engine_gui/sequence.py index f09b1d1..5de12d5 100644 --- a/sequence.py +++ b/liquid_engine_gui/sequence.py @@ -19,8 +19,8 @@ #################################################################################### # Project Imports # #################################################################################### -import engineController -import valveController +from sdec import engineController +from sdec import valveController #################################################################################### diff --git a/valve.py b/liquid_engine_gui/valve.py similarity index 99% rename from valve.py rename to liquid_engine_gui/valve.py index 82225ba..3096836 100644 --- a/valve.py +++ b/liquid_engine_gui/valve.py @@ -19,7 +19,7 @@ #################################################################################### # Project Imports # #################################################################################### -import buttons as SDR_buttons +from liquid_engine_gui import buttons as SDR_buttons #################################################################################### diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..364453d --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,24 @@ +[build-system] +requires = ["setuptools"] +build-backend = "setuptools.build_meta" + +[tool.setuptools.packages] +find = {where=["."], include=["liquid_engine_gui*"], exclude = ["Extras"]} + +[tool.setuptools.package-data] +liquid_engine_gui = ["images/*"] + +[project] +name = "liquid_engine_gui" +authors = [ + {name = "Nitish Chennoju"}, + {name = "Ian Chandra"}, + {name = "Colton Acosta"}, + {name = "Nick Nguyen"} +] +version = "2024.9.0+packagingdev" +dependencies = [ + "pillow", + "sdec@git+https://github.com/SunDevilRocketry/sdec" +] +readme = "readme.md" \ No newline at end of file diff --git a/readme.md b/readme.md index ab42c77..3ff18de 100644 --- a/readme.md +++ b/readme.md @@ -1,10 +1,7 @@ # Rocket Engine GUI -## Getting Started -1) Open cmd / terminal -2) Navigate into the project folder -3) Ensure all required libraries are downloaded (pip install -r requirements.txt) -4) Run main program (python SDR_LiquidGUI.py) -5) Connect Arduino running SDR_DataLogger_Analog.ino via USB port +![A screenshot of the sdec gui](liquid_engine_gui/images/engine_gui_2023.png) + +The Liquid Engine GUI is a visual control and monitoring software for the SDR Liquid Engine Valve controller, written in Python using Tk and our [sdec](https://github.com/SunDevilRocketry/sdec) library. The following code on this repository has been designed to control the SDR Liquid Engine Switchbox to: - Automate Rocket Engine Startup @@ -12,6 +9,23 @@ The following code on this repository has been designed to control the SDR Liqui - Log Sensor Data - Have Pre-programmed actions to execute (i.e. Startup) -## GUI Layout - +## Installation +> In the near future, we intend to have an installer application for, at the minimum, Microsoft Windows. For now, the installation process +1. Make sure you have a working Python installation with pip. +2. Install the GUI with pip. + + pip install git+https://github.com/SunDevilRocketry/liquid_engine_gui +3. Run the GUI with the following command: + + python -m liquid_engine_gui +> If you are developing the software, make sure you don't execute this command in the same directory as the repository, or you may experience bugs. + +## Development +The source code is under the directory liquid_engine_gui. The versioning convention is the same as SDEC. + +Normally, sdec is automatically pulled with pip. However, it is also included as a submodule in this repo should you be working on sdec development. To test changes to sdec and/or liquids gui, pull your submodules, then use the repo as the current directory and run: + +```python3 -m liquid_engine_gui``` + +This project uses Tk and sdec as a library. diff --git a/sdec b/sdec index 636abd2..46bd532 160000 --- a/sdec +++ b/sdec @@ -1 +1 @@ -Subproject commit 636abd2a49019b63bff8d5e5417e6ea5997dceee +Subproject commit 46bd5329401687b14dfabc88e3f380a58abc3bdd