load-controller/main.py

43 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python3
import os
import sys
from PySide6.QtCore import QThread
from PySide6.QtWidgets import QApplication
from load_controller.gui import GUI
from load_controller.load import Load
from load_controller.profile_handler import ProfileHandler
from load_controller.temperatures import Temperatures
from load_controller.bms import BMSEvalBoard
def main(argv: list[str]) -> int:
app = QApplication(sys.argv)
profile_handler = ProfileHandler()
load = Load(argv[1], profile_handler)
temps = Temperatures(argv[2])
temp_thread = QThread()
temps.moveToThread(temp_thread)
temp_thread.started.connect(temps.run)
temp_thread.start()
bms = BMSEvalBoard(argv[3], temps.temperaturesUpdated, load)
bms_thread = QThread()
bms.moveToThread(bms_thread)
bms_thread.started.connect(bms.do_work)
bms_thread.start()
gui = GUI(profile_handler, bms.dataUpdated)
return app.exec()
if __name__ == "__main__":
if len(sys.argv) != 4:
print(f"Usage: {sys.argv[0]} LOAD-PORT TEMP-PORT BMS-PORT", file=sys.stderr)
sys.exit(os.EX_USAGE)
sys.exit(main(sys.argv))