From e0eb3cb9ecc32d547a9b2103d1d9edf024607b5f Mon Sep 17 00:00:00 2001 From: Cristian Bicheru Date: Thu, 25 Jan 2024 00:40:41 -0500 Subject: [PATCH] Push code to GitHub. --- .gitignore | 200 +++++++++++++ Controller/controller.py | 97 +++++++ Controller/interface.py | 108 +++++++ Controller/main.py | 97 +++++++ Controller/peripherals.py | 125 ++++++++ Controller/program.py | 118 ++++++++ Controller/sensor_array.py | 138 +++++++++ Controller/sensor_calib.py | 71 +++++ Controller/sensor_controller.py | 133 +++++++++ Controller/servo.py | 70 +++++ Controller/servo_calib.py | 16 ++ Engine Test Programs/static-fire.prog | 300 +++++++++++++++++++ Engine Test Programs/vent_fuel.prog | 4 + Engine Test Programs/vent_ox.prog | 4 + Monitor/Inconsolata.ttf | Bin 0 -> 343368 bytes Monitor/UbuntuMono-Regular.ttf | Bin 0 -> 189892 bytes Monitor/action_dispatcher.py | 56 ++++ Monitor/dpg_demo.py | 12 + Monitor/icon.ico | Bin 0 -> 135681 bytes Monitor/icon.png | Bin 0 -> 45642 bytes Monitor/main.py | 119 ++++++++ Monitor/menu.py | 154 ++++++++++ Monitor/message_handler.py | 54 ++++ Monitor/plot.py | 139 +++++++++ Monitor/plotarray.py | 31 ++ Monitor/sensorgrid.py | 36 +++ README.md | 43 +++ Scripts/convert_to_csv.py | 24 ++ Scripts/plot.py | 32 +++ Scripts/stats.py | 30 ++ fix_perms.sh | 2 + pylintrc | 400 ++++++++++++++++++++++++++ requirements.txt | 6 + requirements_pi.txt | 11 + sensors.cfg | 98 +++++++ start_camera.sh | 3 + start_controller.sh | 6 + start_pigpiod.sh | 1 + zerolib/__init__.py | 1 + zerolib/ads1120.py | 107 +++++++ zerolib/communications.py | 302 +++++++++++++++++++ zerolib/datalogging.py | 66 +++++ zerolib/enums.py | 109 +++++++ zerolib/message.py | 192 +++++++++++++ zerolib/sensorcfg.py | 127 ++++++++ zerolib/signal.py | 47 +++ zerolib/standard.py | 31 ++ 47 files changed, 3720 insertions(+) create mode 100644 .gitignore create mode 100644 Controller/controller.py create mode 100644 Controller/interface.py create mode 100644 Controller/main.py create mode 100644 Controller/peripherals.py create mode 100644 Controller/program.py create mode 100644 Controller/sensor_array.py create mode 100644 Controller/sensor_calib.py create mode 100644 Controller/sensor_controller.py create mode 100644 Controller/servo.py create mode 100644 Controller/servo_calib.py create mode 100644 Engine Test Programs/static-fire.prog create mode 100644 Engine Test Programs/vent_fuel.prog create mode 100644 Engine Test Programs/vent_ox.prog create mode 100644 Monitor/Inconsolata.ttf create mode 100644 Monitor/UbuntuMono-Regular.ttf create mode 100644 Monitor/action_dispatcher.py create mode 100644 Monitor/dpg_demo.py create mode 100644 Monitor/icon.ico create mode 100644 Monitor/icon.png create mode 100644 Monitor/main.py create mode 100644 Monitor/menu.py create mode 100644 Monitor/message_handler.py create mode 100644 Monitor/plot.py create mode 100644 Monitor/plotarray.py create mode 100644 Monitor/sensorgrid.py create mode 100644 README.md create mode 100644 Scripts/convert_to_csv.py create mode 100644 Scripts/plot.py create mode 100644 Scripts/stats.py create mode 100644 fix_perms.sh create mode 100644 pylintrc create mode 100644 requirements.txt create mode 100644 requirements_pi.txt create mode 100644 sensors.cfg create mode 100644 start_camera.sh create mode 100644 start_controller.sh create mode 100644 start_pigpiod.sh create mode 100644 zerolib/__init__.py create mode 100644 zerolib/ads1120.py create mode 100644 zerolib/communications.py create mode 100644 zerolib/datalogging.py create mode 100644 zerolib/enums.py create mode 100644 zerolib/message.py create mode 100644 zerolib/sensorcfg.py create mode 100644 zerolib/signal.py create mode 100644 zerolib/standard.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..834c71f --- /dev/null +++ b/.gitignore @@ -0,0 +1,200 @@ +# Created by https://www.toptal.com/developers/gitignore/api/visualstudiocode,python +# Edit at https://www.toptal.com/developers/gitignore?templates=visualstudiocode,python + +Controller/Data/* +*.csv +*.gz +.vscode + +### Python ### +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +### Python Patch ### +# Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration +poetry.toml + +# ruff +.ruff_cache/ + +# LSP config files +pyrightconfig.json + +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +!.vscode/*.code-snippets + +# Local History for Visual Studio Code +.history/ + +# Built Visual Studio Code Extensions +*.vsix + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history +.ionide + +# End of https://www.toptal.com/developers/gitignore/api/visualstudiocode,python \ No newline at end of file diff --git a/Controller/controller.py b/Controller/controller.py new file mode 100644 index 0000000..6e2c492 --- /dev/null +++ b/Controller/controller.py @@ -0,0 +1,97 @@ +import time +import logging + +from zerolib.message import MessageType, ActionType, SensorDataMessage, EngineProgramSettingsMessage + +from sensor_controller import SensorController + +logger = logging.getLogger(__name__) + +class TestBenchController: + """ + Handle the mainloop of the controller logic + """ + + def __init__(self, peripheral_manager, dispatcher, sens_cfg, test_program): + self.peripheral_manager = peripheral_manager + self.sens_cfg = sens_cfg + + self.dispatcher = dispatcher + self.test_program = test_program + + self.sb_rx = SensorController(sens_cfg, peripheral_manager) + self.sb_rx.register_callback(self.data_handler) + + self.initialization_time = time.perf_counter() + + def data_handler(self, timestamp, data): + """ + data is an array of sensor, reading pairs. + """ + msg = SensorDataMessage(timestamp, data) + self.dispatcher.dispatch(msg) + + def send_engine_program_list(self, status): + if status is True: + logger.info("Sending engine program list to monitor...") + self.dispatcher.dispatch( + EngineProgramSettingsMessage( + False, ','.join( self.test_program.list_programs() ) + ) + ) + + def handler(self, msg): + if msg.get_type() == MessageType.ENGINE_PROGRAM_SETTINGS: + if msg.is_assigning is False: + logger.error("EngineProgramSettings message is set as non-assigning!") + return + + if msg.payload == "": + logger.error("No program is specified!") + return + + self.test_program.load(f"../Engine Test Programs/{msg.payload}.prog") + return + + if msg.get_type() != MessageType.ACTION: + logger.error("Non-action type message received. This should not happen.") + return + + action = msg.action + logger.info(f"Received action type {action}.") + match action: + ### GENERAL ABORT SEQUENCE + # Ensure that the propellant valves and fill valves are closed. + # Then, open the vent valve. + case ActionType.ABORT: + self.test_program.abort() + self.peripheral_manager.close_propellant_valves() + self.peripheral_manager.fill_valve.close() + self.peripheral_manager.vent_valve.open() + + ### BURN PHASE ABORT + # Similar to the general abort sequence, but we will make sure that + # the ignitor is safed and the vent valve is not opened (in case a + # recycle is possible) + case ActionType.ABORT_BURN_PHASE: + self.test_program.abort() + self.peripheral_manager.ignitor.safe() + self.peripheral_manager.close_propellant_valves() + + ### INITIATE BURN PHASE + # This is used to start the testing program (burn or cold flow) + case ActionType.BEGIN_BURN_PHASE: + self.test_program.run_program() + + ### All other cases are simple and handled by the hw interface. + case _: + self.peripheral_manager.execute_action(action) + + def mainloop(self): + self.sb_rx.start_collection() + + while True: + time.sleep(1) + + def run(self): + self.mainloop() diff --git a/Controller/interface.py b/Controller/interface.py new file mode 100644 index 0000000..306f4f3 --- /dev/null +++ b/Controller/interface.py @@ -0,0 +1,108 @@ +""" Zero Shield V2 HW Interface. Uses pigpio. Thread-safe. + +""" +from enum import Enum +from threading import Lock + +import logging +logger = logging.getLogger(__name__) + +import pigpio + +GPIO_LOCK = Lock() + +def synchronized(func): + def sync_func(*args, **kwargs): + with GPIO_LOCK: + func(*args, **kwargs) + + return sync_func + +class IOMapping(Enum): + IGNITOR_RELAY = 23 + HEATING_RELAY = 24 + WARNING_LIGHT = 25 + DANGER_LIGHT = 8 + +class ServoMapping(Enum): + FILL_VALVE = 16 + VENT_VALVE = 26 + FUEL_VALVE = 13 # S2 + OXIDIZER_VALVE = 12 # S1 + +SERVO_PWM_FREQ = 180 #hz + +class HardwareInterface: + """ Controls the hardware outputs of the Zero Shield V2. + """ + def __init__(self,): + self.pi = pigpio.pi() + self.servo_state = {} + self.set_modes() + + def check_status(self): + # Raise error if attempting to use IO on uninitialized or stopped status + if not self.status: + raise RuntimeError("Hardware interface is not active!") + + @synchronized + def set_modes(self): + for io in IOMapping: + self.pi.set_mode(io.value, pigpio.OUTPUT) + + for io in ServoMapping: + self.pi.set_mode(io.value, pigpio.OUTPUT) + self.servo_state[io] = False + + self.status = True + + @synchronized + def activate_relay(self, relay): + self.check_status() + logger.debug(f"Set pin {relay} to HIGH.") + self.pi.write(relay, pigpio.HIGH) + + @synchronized + def deactivate_relay(self, relay): + self.check_status() + logger.debug(f"Set pin {relay} to LOW.") + self.pi.write(relay, pigpio.LOW) + + @synchronized + def set_servo(self, servo, duty, hardware=False): + # duty should be 0 to 1. + self.check_status() + if servo not in ServoMapping: + raise RuntimeError("Unknown servo object!") + pwm_type = "hardware" if hardware else "software" + + if duty == 0: + self.servo_state[servo] = False + + if hardware: + self.pi.hardware_PWM(servo.value, SERVO_PWM_FREQ, 0) + else: + self.pi.set_PWM_dutycycle(servo.value, 0) + self.pi.set_PWM_frequency(servo.value, 0) + + logger.debug(f"Disabled {pwm_type} PWM on {servo}.") + else: + if not self.servo_state[servo]: + self.servo_state[servo] = True + if not hardware: + self.pi.set_PWM_frequency(servo.value, SERVO_PWM_FREQ) + + if hardware: + self.pi.hardware_PWM( + servo.value, SERVO_PWM_FREQ, + int( duty * 0.0025 * SERVO_PWM_FREQ * 1000000 ) + ) + else: + self.pi.set_servo_pulsewidth(servo.value, duty*2500) + + logger.debug(f"Set servo output to {duty*100:.4g}% on {servo} ({pwm_type} PWM).") + + @synchronized + def teardown(self): + self.pi.stop() + self.status = False diff --git a/Controller/main.py b/Controller/main.py new file mode 100644 index 0000000..5f5acef --- /dev/null +++ b/Controller/main.py @@ -0,0 +1,97 @@ +### ADD IMPORT DIRECTORY +import sys +sys.path.append('../') + +### LOGGING SETUP +import logging +from zerolib.standard import logging_config +logging.basicConfig(**logging_config) + +### IMPORTS +import os +import signal +from argparse import ArgumentParser +from pint import UnitRegistry + +from zerolib.communications import MessageServer, DEFAULT_MONITOR_PORT +from zerolib.sensorcfg import SensorConfiguration +from zerolib.standard import formatter_config, sensor_cfg_location +from zerolib.message import LogForwarder +from zerolib.datalogging import LogLogger + +from controller import TestBenchController + +from interface import HardwareInterface +from peripherals import PeripheralManager +from program import EngineTestProgram + +#from hanging_threads import start_monitoring +#monitoring_thread = start_monitoring(seconds_frozen=0.5, test_interval=50) + +### ARGUMENT PARSING +parser = ArgumentParser(prog="Zero Controller Software") +parser.add_argument( + "--dest", + default = "127.0.0.1", + help = "The IP address of the monitor. If unspecified, localhost is used." +) +args = parser.parse_args() + +### SETUP +u = UnitRegistry() + +if not args.dest: + logging.warning("Monitor IP not specified so using localhost.") +server = MessageServer() +server.connect(args.dest, DEFAULT_MONITOR_PORT) + +# Log forwarding to monitor +log_fw = LogForwarder() +log_fw.set_callback(server.dispatch) +formatter = logging.Formatter(**formatter_config) +log_fw.setFormatter(formatter) +logging.getLogger().addHandler(log_fw) + +# Log saving to disk +log_writer = LogLogger() +log_writer.setFormatter(formatter) +log_writer.start() +logging.getLogger().addHandler(log_writer) + +# Read the sensor configuration +sens_cfg = SensorConfiguration(sensor_cfg_location) +sens_cfg.read_config() + +# Initialize the hardware interface and peripheral manager +interface = HardwareInterface() +peripheral_manager = PeripheralManager(interface) +peripheral_manager.set_default_states() + +# Initialize the valve programming for this test +program = EngineTestProgram(peripheral_manager) + +# Initialize the controller +controller = TestBenchController(peripheral_manager, server, sens_cfg, program) + +### SETUP SERVER +server.register_request_hook(controller.handler) +server.register_connection_hook(controller.send_engine_program_list) +server.run() + +def teardown_handler(*args, **kwargs): + # Teardown the pigpio interface. Prevent KeyboardInterruprt during the + # teardown process. + signal.signal(signal.SIGINT, signal.SIG_IGN) + print("Cleaning up...") + peripheral_manager.teardown() + controller.sb_rx.data_logger.close() + log_writer.cleanup() + os.kill(os.getpid(), signal.SIGTERM) + +signal.signal(signal.SIGINT, teardown_handler) + +### RUN MAINLOOP +try: + controller.run() +finally: + teardown_handler() diff --git a/Controller/peripherals.py b/Controller/peripherals.py new file mode 100644 index 0000000..54a53d4 --- /dev/null +++ b/Controller/peripherals.py @@ -0,0 +1,125 @@ +""" Implements the PeripheralManager which interfaces with the Zero Shield V2. + +""" +from enum import Enum + +from interface import IOMapping, ServoMapping +from servo import ServoBallValve, ValveCalibration +from zerolib.enums import ActionType + +class LightStatus(Enum): + Safe = 1 + Warning = 2 + Danger = 3 + +""" +Set this value appropriately if the vent valve is the throttling object. (I.e if +there is not a flow control orifice downstream of the vent valve) +""" +VENT_THROTTLE = 1 + +class RelayDevice: + def __init__(self, io_mapping, hw_interface): + self.hw_intf = hw_interface + self.io_port = io_mapping.value + + def fire(self): + self.hw_intf.activate_relay(self.io_port) + + def safe(self): + self.hw_intf.deactivate_relay(self.io_port) + +class PeripheralManager: + """ + Peripherals are hardcoded as these are not expected to change. + """ + def __init__(self, hw_interface): + self.hw_intf = hw_interface + + ### VALVES + self.fill_valve = ServoBallValve( + ServoMapping.FILL_VALVE, hw_interface, **ValveCalibration.FILL_VALVE.value + ) + self.vent_valve = ServoBallValve( + ServoMapping.VENT_VALVE, hw_interface, **ValveCalibration.VENT_VALVE.value + ) + self.fuel_valve = ServoBallValve( + ServoMapping.FUEL_VALVE, hw_interface, + **ValveCalibration.OXIDIZER_VALVE.value, hardware_pwm=True + ) + self.oxidizer_valve = ServoBallValve( + ServoMapping.OXIDIZER_VALVE, hw_interface, + **ValveCalibration.FUEL_VALVE.value, hardware_pwm=True + ) # SWAPPED FOR THIS TEST + + ### RELAY-CONTROLLED DEVICES + self.tank_heater = RelayDevice(IOMapping.HEATING_RELAY, hw_interface) + self.ignitor = RelayDevice(IOMapping.IGNITOR_RELAY, hw_interface) + self.warning_light = RelayDevice(IOMapping.WARNING_LIGHT, hw_interface) + self.danger_light = RelayDevice(IOMapping.DANGER_LIGHT, hw_interface) + + self.valves = [ + self.fill_valve, self.vent_valve, self.fuel_valve, self.oxidizer_valve + ] + + def set_default_states(self): + for valve in self.valves: + valve.close() + + self.ignitor.safe() + self.tank_heater.safe() + self.warning_light.safe() + self.danger_light.safe() + + def teardown(self): + for valve in self.valves: + valve.close() + + self.ignitor.safe() + self.tank_heater.safe() + self.warning_light.safe() + self.danger_light.safe() + + self.hw_intf.teardown() + + def close_propellant_valves(self): + self.fuel_valve.close() + self.oxidizer_valve.close() + + def set_light_status(self, status): + match status: + case LightStatus.Safe: + self.warning_light.safe() + self.danger_light.safe() + case LightStatus.Warning: + self.warning_light.fire() + self.danger_light.safe() + case LightStatus.Danger: + self.warning_light.fire() + self.danger_light.fire() + + def execute_action(self, action): + match action: + ### FILL VALVE CONTROLS + case ActionType.OPEN_FILL: + self.fill_valve.open() + case ActionType.CLOSE_FILL: + self.fill_valve.close() + + ### VENT VALVE CONTROLS + case ActionType.OPEN_VENT: + self.vent_valve.set_throttle(VENT_THROTTLE) + case ActionType.CLOSE_VENT: + self.vent_valve.close() + + ### TANK HEATING + case ActionType.ENABLE_TANK_HEATING: + self.tank_heater.fire() + case ActionType.DISABLE_TANK_HEATING: + self.tank_heater.safe() + + ### IGNITOR + case ActionType.FIRE_IGNITOR: + self.ignitor.fire() + case ActionType.SAFE_IGNITOR: + self.ignitor.safe() \ No newline at end of file diff --git a/Controller/program.py b/Controller/program.py new file mode 100644 index 0000000..2006353 --- /dev/null +++ b/Controller/program.py @@ -0,0 +1,118 @@ +""" Implements the logic executing valve programs. + +""" +import time +import logging +import os +from threading import Thread + +logger = logging.getLogger(__name__) + +class EngineTestProgram: + """ + Load and execute a testing program. The program should be specified as a + csv file with time, fuel valve position, oxidizer valve position, and ignitor status. + """ + def __init__(self, peripheral_manager): + self.program = [] + self.thread = None + self.running = False + self.pm = peripheral_manager + self.callback = None + + def list_programs(self): + return [ + filename.split(".prog")[0] + for filename in os.listdir("../Engine Test Programs/") + if filename.endswith(".prog") + ] + + + def load(self, filename): + if not os.path.exists(filename): + logger.error(f"File {filename} does not exist!") + return + + if self.running is True: + logger.error("Cannot set engine program while another is running!") + return + + with open(filename, "r") as f: + self.program = [ + list(map(float, row.split(','))) for row in f.readlines() + ] + + for row in self.program: + if len(row) != 4: + logger.error("Malformed engine program.") + print("Bad row:", row) + + logger.info(f"Successfully loaded program {filename}") + + def run_program(self, callback=None): + self.running = True + self.callback = callback + self.thread = Thread(target=self._run, name="EngineProgramMainThread") + self.thread.start() + + def abort(self): + if self.thread is not None: + self.running = False + self.thread.join() + self.thread = None + else: + logger.warning("Tried to abort test but no test is running!") + + def _run(self): + i = 0 + stime = time.perf_counter() + logger.warning("Executing valve program...") + ign_off = True + + while self.running: + ctime = time.perf_counter() - stime + + t2, fp2, op2, ign2 = self.program[i+1] + + if ctime > t2: + i += 1 + if i+1 == len(self.program): + break + continue + + t1, fp1, op1, ign1 = self.program[i] + + if t2 == t1: + lerp = 1. + else: + lerp = (ctime - t1) / (t2 - t1) + + fp = fp1 + (fp2 - fp1) * lerp + op = op1 + (op2 - op1) * lerp + ign = ign1 + (ign2 - ign1) * lerp + + self.pm.fuel_valve.set_throttle(fp) + self.pm.oxidizer_valve.set_throttle(op) + + if ign > 0.5: + if ign_off: + self.pm.ignitor.fire() + ign_off = False + logger.warning("Ignitor activated.") + elif not ign_off: + self.pm.ignitor.safe() + ign_off = True + logger.warning("Ignitor safed.") + + # Give other parts of the program time to run + time.sleep(0.01) + + self.pm.close_propellant_valves() + self.pm.ignitor.safe() + + self.running = False + + logger.warning("Valve program complete.") + + if self.callback: + self.callback() diff --git a/Controller/sensor_array.py b/Controller/sensor_array.py new file mode 100644 index 0000000..d029ef4 --- /dev/null +++ b/Controller/sensor_array.py @@ -0,0 +1,138 @@ +""" Interface to the sensor hardware. + +Adafruit drivers are used as much of the work has already been done. The only +exception is the ADS1120 chip which did not have a driver available. +""" +import collections +import logging +import time + +import board +import adafruit_bitbangio as bitbangio + +from digitalio import DigitalInOut +from adafruit_max31855 import MAX31855 +from adafruit_tca9548a import TCA9548A +from cedargrove_nau7802 import NAU7802, ConversionRate + +from zerolib.ads1120 import ADS1120 +from zerolib.enums import SensorType + +from sensor_calib import apply_calibration + +logger = logging.getLogger(__name__) + +### PINOUT +# TC Sensor Bindings +TC_CS = [ + board.D6, # TC 1 CS on GPIO 6 + board.D17, # TC 2 CS on GPIO 17 + board.D27, # TC 3 CS on GPIO 27 + board.D22, # TC 4 CS on GPIO 22 + board.D5 # TC 5 CS on GPIO 5 +] + +ADC_CS = board.D4 # ADC CS on GPIO 4 +# ADC Sensor Bindings +ADC_CHANNELS = { + SensorType.BATTERY_LEVEL : 2, + SensorType.CC_PRESSURE : 0, + SensorType.TANK_PRESSURE : 1 +} + +# Time in seconds between log propagation. +LOG_TIMEOUT = 1 + + +class SensorArray: + """ + LC1-3 are the mdot load cells + LC4 is the thrust load cell + """ + def __init__(self, peripheral_manager): + # Store a ref to the perf_mgr to read valve states + self.perf_mgr = peripheral_manager + + # Using software SPI, hardware SPI appears to not work + self.spi = bitbangio.SPI(board.D11, MISO=board.D9, MOSI=board.D10) + # Hardware I2C. Make sure to boost the Pi I2C freq to 400khz! + self.i2c = board.I2C() + + # Default MAX31855 baudrate is set to 100khz. Increase this to 2 MHz + self.TCs = [ + MAX31855(self.spi, DigitalInOut(pin)) + for pin in TC_CS + ] + + # Using custom ADS1120 driver. Important to initialize after all of the + # CS pins have been defined and TCs instantiated to prevent SPI collision. + self.ADC = ADS1120(self.spi, DigitalInOut(ADC_CS)) + self.ADC.initialize() + + # TC9548A IC is used to multiplex the 4x NAU7802 load cells + self.I2C_switch = TCA9548A(self.i2c) + # The first four channels of the switch are used + self.LCs = [ + NAU7802(self.I2C_switch[i], address=0x2A, active_channels=1) + for i in range(4) + ] + for lc in self.LCs: + lc._c2_conv_rate = ConversionRate.RATE_80SPS + [lc.enable(True) for lc in self.LCs] + + # Sensors are read frequently, so we need to throttle logs to prevent + # flooding the console. + self.last_log_time = collections.defaultdict(lambda: 0) + + def read(self, sensor): + # Perform sensor lookup and call the respective method. + try: + reading = None + + match sensor.get_type(): + case SensorType.CC_PRESSURE | SensorType.TANK_PRESSURE: + reading = self.ADC.read(ADC_CHANNELS[sensor.get_type()]) + + case SensorType.BATTERY_LEVEL: + reading = self.ADC.read( + ADC_CHANNELS[sensor.get_type()] + (sensor.get_number()-1) + ) + + case SensorType.LOAD_CELL: + reading = self.LCs[sensor.get_number() - 1].read() + + case SensorType.THRUST: + reading = self.LCs[3].read() + + case SensorType.THERMOCOUPLE: + reading = self.TCs[sensor.get_number() - 1].temperature + + case SensorType.OXIDIZER_VALVE_THROTTLE: + reading = self.perf_mgr.oxidizer_valve.get_state() + + case SensorType.FUEL_VALVE_THROTTLE: + reading = self.perf_mgr.fuel_valve.get_state() + + case _: + logger.error("Tried to read from a sensor that does not exist!") + return + + return apply_calibration(sensor, reading) + except Exception as e: + self.log_error(sensor, e) + + def log_error(self, sensor, error): + # Log a sensor reading failure, with timeout to prevent flooding. + error_time = time.perf_counter() + if error_time - self.last_log_time[sensor] < LOG_TIMEOUT: + return + + logger.critical(f"{sensor.get_name()}: {error}") + self.last_log_time[sensor] = error_time + + def is_physical_sensor(self, sensor): + """ + return True if the sensor is not a computed quantity -- i.e it is + an actual sensor to be read by this class. + """ + return sensor.get_rate() is not None diff --git a/Controller/sensor_calib.py b/Controller/sensor_calib.py new file mode 100644 index 0000000..6664895 --- /dev/null +++ b/Controller/sensor_calib.py @@ -0,0 +1,71 @@ +""" Handles the application of calibration data on sensors. + +The apply_calibration function is used to call the correct calibration function +with the data provided in this file. +""" +import numpy as np + +from scipy.interpolate import interp1d + +from zerolib.enums import SensorType + + +def linear_calibration(calib_data, rval): + return (rval - calib_data[0]) * calib_data[1] + +def fn_calibration(calib_fn, rval): + return calib_fn(rval) + + +CALIBRATION_FUNCTIONS = { + SensorType.LOAD_CELL : linear_calibration, + SensorType.THRUST : linear_calibration, + SensorType.CC_PRESSURE : linear_calibration, + SensorType.TANK_PRESSURE : linear_calibration, + SensorType.BATTERY_LEVEL : fn_calibration, +} + +CALIBRATION_DATA = { + SensorType.LOAD_CELL : { + 1 : ( 696.467*423.076, 1/(-423.076*1000)), + 2 : (-1835.83*437.764, 1/( 437.764*1000)), + 3 : ( 2666.21*436.016, 1/(-436.016*1000)) + }, + + SensorType.THRUST : (-145500, -0.0000267753), + + # PTs are 0.5-4.5V. + SensorType.CC_PRESSURE : (0.5, 300/4.), + SensorType.TANK_PRESSURE : (0.5, 1000/4.), + + # Interpolate from data at https://blog.ampow.com/lipo-voltage-chart/ + SensorType.BATTERY_LEVEL : { + 1: interp1d( + x = np.array([ + 0.0, 13.09, 14.43, 14.75, 14.83, 14.91, 14.99, 15.06, 15.14, 15.18, + 16.26, 15.34, 15.42, 15.50, 15.66, 15.81, 15.93, 16.09, 16.33, 16.45, + 16.6, 16.8, 20.0 + ]) / 4, # Hardware uses 4:1 voltage divider. + y = [0] + [x for x in range(0, 101, 5)] + [100], + kind = "linear" + ), + 2: lambda x: x # TODO: Calibrate servo battery sensor. + }, + + # Thermocouples, valve sensors do not require calibration +} + + +def apply_calibration(sensor, reading): + # Some sensors don't require calibration + if sensor.get_type() not in CALIBRATION_DATA.keys(): + return reading + + # If there are multiple sensors connected of the same type, get the + # respective calibration data. + if sensor.get_number(): + cdata = CALIBRATION_DATA[sensor.get_type()][sensor.get_number()] + else: + cdata = CALIBRATION_DATA[sensor.get_type()] + + return CALIBRATION_FUNCTIONS[sensor.get_type()](cdata, reading) diff --git a/Controller/sensor_controller.py b/Controller/sensor_controller.py new file mode 100644 index 0000000..4eed2fc --- /dev/null +++ b/Controller/sensor_controller.py @@ -0,0 +1,133 @@ +""" Main logic for reading the sensors. + +""" +import time +import logging +import numpy as np + +logger = logging.getLogger(__name__) + +from threading import Thread + +try: + from sensor_array import SensorArray +except (NotImplementedError, AttributeError): + logger.critical("Sensor driver import failed! This can be ignored if running in debug mode.") + +from zerolib.datalogging import DataLogger + +DATA_DELAY = 1/60 # Send data at a peak of 60 Hz + +class SensorController: + """ Class to continously sample the sensors at (roughly) the specified rates. + """ + def __init__(self, sensor_config, peripheral_manager): + self.thread = None + self.running = False + self.data_callback = None + self.init_time = time.perf_counter() + + self.p_mgr = peripheral_manager + self.sens_cfg = sensor_config + self.array = SensorArray(peripheral_manager) + + self.physical_sensors = [ + sensor for sensor in sensor_config.get_sensors() + if self.array.is_physical_sensor(sensor) + ] + self.num_sensors = len(self.physical_sensors) + + # Target time per loop iteration + self.loop_timestep = None + # Number of iterations per reading for each sensor + self.mods = {} + + self.data_logger = DataLogger() + self.data_logger.start() + # Make the header + self.data_logger.add_row( + "Time [s]," + ','.join([ + f"{sensor.get_name()} [{sensor.get_units()[0]}]" + for sensor in self.physical_sensors + ]) + ) + + self.compute_delay_parameters() + + def register_callback(self, fn): + self.data_callback = fn + + def compute_delay_parameters(self): + hfreq = max([sensor.get_rate() for sensor in self.physical_sensors]) + + self.loop_timestep = 1/hfreq + self.mods = { + sensor : int( hfreq / sensor.get_rate() ) + for sensor in self.physical_sensors + } + + def mainloop(self): + i = 0 + last_time = time.perf_counter() + + data_row = {sensor:[] for sensor in self.physical_sensors} + next_cb_time = time.perf_counter() + DATA_DELAY + + while True: + timestamp = last_time-self.init_time + row = f"{timestamp}," + + j = 0 + for sensor, mod in self.mods.items(): + # Readings are staggered to reduce jitter + j += 1 + if (i+j) % mod == 0: + reading = self.array.read(sensor) + + if reading is None: + # There was an error... Logs are sent to the monitor. + row += "Ø," + continue + + data_row[sensor].append(reading) + row += f"{reading}," + else: + row += "Ø," + + if time.perf_counter() > next_cb_time: + # Average collected data + avg_data = [ + (sensor.get_id(), np.mean(values)) + for sensor, values in data_row.items() + if values + ] + # Pass it to the callback + self.data_callback(timestamp, avg_data) + # Refresh the params + next_cb_time = time.perf_counter() + DATA_DELAY + data_row = {sensor:[] for sensor in self.physical_sensors} + + self.data_logger.add_row(row[:-1]) + i += 1 + + sleep_time = self.loop_timestep - (time.perf_counter() - last_time) + if sleep_time > 0: + time.sleep(sleep_time) + + last_time = time.perf_counter() + + def start_collection(self): + # Entry point. + if not self.data_callback: + raise RuntimeError("Data callback must be provided!") + + self.thread = Thread( + target=self.mainloop, + daemon=True, name="SensorControllerMainThread" + ) + self.running = True + self.thread.start() + + def stop(self): + self.running = False + self.thread.join() \ No newline at end of file diff --git a/Controller/servo.py b/Controller/servo.py new file mode 100644 index 0000000..eaa9969 --- /dev/null +++ b/Controller/servo.py @@ -0,0 +1,70 @@ +""" Servo ball valve control. + +""" +from enum import Enum + +class ValveCalibration(Enum): + # Calibration data for the valves + FUEL_VALVE = { + "closed_duty" : 0.98, + "cracking_duty" : 0.93, + "open_duty" : 0.74 + } + OXIDIZER_VALVE = { + "closed_duty" : 0.95, + "cracking_duty" : 0.91, + "open_duty" : 0.71 + } + FILL_VALVE = { + "closed_duty" : 0.98, + "cracking_duty" : 0.92, + "open_duty" : 0.74 + } + VENT_VALVE = { + "closed_duty" : 0.95, + "cracking_duty" : 0.89, + "open_duty" : 0.71 + } + +class ServoBallValve: + """ + Class implementing servo ball valve control. movement_range cooresponds to + the range of pwm signal with the first value being the minimum (closed) + state and the second value being the fully opened state. throttle_range + likewise corresponds to the pwm values with minimum and maximum throttle, + i.e, when the valve first cracks open and first fully opens. + """ + def __init__( + self, io_mapping, hw_interface, closed_duty=None, cracking_duty=None, + open_duty=None, hardware_pwm=False + ): + if closed_duty is None or cracking_duty is None or open_duty is None: + raise RuntimeError("All duty values must be specified!") + + self.port = io_mapping + self.hw_itf = hw_interface + self.closed_duty = closed_duty + self.cracking_duty = cracking_duty + self.open_duty = open_duty + self.throttle_state = -1 + self.hardware_pwm = hardware_pwm + + def get_state(self): + # return 0 for closed, 1 for open, and in between for throttled. + return self.throttle_state + + def set_throttle(self, throttle): + self.throttle_state = throttle + + x = self.cracking_duty + ( + self.open_duty - self.cracking_duty + ) * throttle + self.hw_itf.set_servo(self.port, x, hardware=self.hardware_pwm) + + def open(self): + self.throttle_state = 1 + self.hw_itf.set_servo(self.port, self.open_duty, hardware=self.hardware_pwm) + + def close(self): + self.throttle_state = 0 + self.hw_itf.set_servo(self.port, self.closed_duty, hardware=self.hardware_pwm) \ No newline at end of file diff --git a/Controller/servo_calib.py b/Controller/servo_calib.py new file mode 100644 index 0000000..ee228d3 --- /dev/null +++ b/Controller/servo_calib.py @@ -0,0 +1,16 @@ +### ADD IMPORT DIRECTORY +import sys +sys.path.append('../') + +### LOGGING SETUP +import logging +from zerolib.standard import logging_config +logging.basicConfig(**logging_config) + +from interface import HardwareInterface, ServoMapping + +interface = HardwareInterface() + +while True: + x = float(input("Enter the duty cycle: ")) + interface.set_servo(ServoMapping.FUEL_VALVE, x) diff --git a/Engine Test Programs/static-fire.prog b/Engine Test Programs/static-fire.prog new file mode 100644 index 0000000..b0bb840 --- /dev/null +++ b/Engine Test Programs/static-fire.prog @@ -0,0 +1,300 @@ +0.0, 0.00858112684477125, 0.00783930385940432, 1.0 +0.048494983277591976, 0.012116687724701666, 0.013035587027217535, 1.0 +0.09698996655518395, 0.015190891337412435, 0.017053341703185954, 1.0 +0.14548494983277593, 0.018331991460828367, 0.021178773483777127, 1.0 +0.1939799331103679, 0.021546973739765864, 0.025402232816658727, 1.0 +0.24247491638795987, 0.02484394140384857, 0.029752643642487017, 1.0 +0.29096989966555187, 0.028221818973627157, 0.03421308909539874, 1.0 +0.3394648829431438, 0.03168569547262638, 0.038806110513938175, 1.0 +0.3879598662207358, 0.03525163289612032, 0.0435377888614359, 1.0 +0.4364548494983278, 0.03891598595741858, 0.0484020350099044, 1.0 +0.48494983277591974, 0.042688851416561674, 0.053437709628675376, 1.0 +0.5334448160535117, 0.04392847944630371, 0.062298946775038215, 1.0 +0.5819397993311037, 0.04399273537834992, 0.07345774135563424, 1.0 +0.6304347826086957, 0.04405140447885722, 0.08540760664799497, 1.0 +0.6789297658862876, 0.04410865341364931, 0.09826348357735712, 1.0 +0.7274247491638797, 0.044164583869851504, 0.11213917756634202, 1.0 +0.7759197324414716, 0.04421603995424351, 0.12708234596430504, 1.0 +0.8244147157190636, 0.04426800758828713, 0.14313276580738774, 1.0 +0.8729096989966556, 0.04431981370065938, 0.16024130830819328, 1.0 +0.9214046822742475, 0.04436707899331362, 0.1782426368310171, 1.0 +0.9698996655518395, 0.04441701556849685, 0.19685066504939303, 1.0 +1.0183946488294315, 0.04445129528920472, 0.20851239613008582, 1.0 +1.0668896321070234, 0.04445820948738611, 0.20855614048996582, 1.0 +1.1153846153846154, 0.04446647835759815, 0.20860070260973854, 1.0 +1.1638795986622075, 0.04447474863135526, 0.20864676762577597, 1.0 +1.2123745819397993, 0.04448301679860114, 0.20869130366475494, 1.0 +1.2608695652173914, 0.04449127949346609, 0.2087350943496315, 1.0 +1.3093645484949834, 0.04449953348804354, 0.20877894265080826, 1.0 +1.3578595317725752, 0.04450777568804204, 0.208826177821537, 1.0 +1.4063545150501673, 0.04451600312975437, 0.2088701202185742, 1.0 +1.4548494983277593, 0.044524212979196114, 0.20891409989147836, 1.0 +1.5033444816053512, 0.0445324025334904, 0.20895811086430266, 1.0 +1.5518394648829432, 0.044540616922761594, 0.20900214756420865, 1.0 +1.6003344481605353, 0.04454885637209141, 0.2090462048120792, 1.0 +1.648829431438127, 0.04455665649793267, 0.20909027781537545, 1.0 +1.6973244147157192, 0.044564861573663656, 0.2091343621538909, 1.0 +1.7458193979933112, 0.044572899959348405, 0.20918179020394487, 1.0 +1.794314381270903, 0.044580919679734377, 0.20922600285004359, 1.0 +1.842809364548495, 0.04458892139665439, 0.20927050407033204, 1.0 +1.8913043478260871, 0.0445969057685421, 0.20931497095672172, 1.0 +1.939799331103679, 0.04460487345008026, 0.20935933425538297, 1.0 +1.988294314381271, 0.04461282509304722, 0.20940441159600562, 1.0 +2.036789297658863, 0.05402151356145676, 0.24752011714201427, 0.0 +2.085284280936455, 0.06758592501274638, 0.29165641105659135, 0.0 +2.1337792642140467, 0.08280025895011553, 0.32817098770524367, 0.0 +2.182274247491639, 0.10000325325147516, 0.35868832317786764, 0.0 +2.230769230769231, 0.11965048108944301, 0.38506741263567107, 0.0 +2.279264214046823, 0.1422023689155495, 0.4083719335623095, 0.0 +2.327759197324415, 0.16789984427506058, 0.4294029716292431, 0.0 +2.376254180602007, 0.19636338135381431, 0.4488703750109749, 0.0 +2.4247491638795986, 0.22633033579493994, 0.4670836063158628, 0.0 +2.4732441471571907, 0.25602299775345067, 0.4844075984239794, 0.0 +2.5217391304347827, 0.284141587084935, 0.5010836782952676, 0.0 +2.5702341137123748, 0.31022762852926317, 0.5172319225390128, 0.0 +2.618729096989967, 0.33435601145192073, 0.5331035192963038, 0.0 +2.667224080267559, 0.35693168735303016, 0.5488100839659987, 0.0 +2.7157190635451505, 0.3783674162881997, 0.5645732550148054, 0.0 +2.7642140468227425, 0.3990241291784807, 0.5804724189801858, 0.0 +2.8127090301003346, 0.41928577867512395, 0.5967599977235997, 0.0 +2.8612040133779266, 0.43945207935535224, 0.613561385218859, 0.0 +2.9096989966555187, 0.4599628488566692, 0.6312252361135796, 0.0 +2.9581939799331107, 0.4812254479422811, 0.649976380822298, 0.0 +3.0066889632107023, 0.5006375491754869, 0.6674730754725489, 0.0 +3.0551839464882944, 0.5013109725420948, 0.6680514595095429, 0.0 +3.1036789297658864, 0.5019884583168388, 0.6686298170111727, 0.0 +3.1521739130434785, 0.5026828697038956, 0.6692105922944697, 0.0 +3.2006688963210705, 0.5033781345666691, 0.6697846431526004, 0.0 +3.249163879598662, 0.5040732032499093, 0.6703618371423766, 0.0 +3.297658862876254, 0.5047682251987679, 0.6709349985777707, 0.0 +3.3461538461538463, 0.5054600572525803, 0.6715062667242366, 0.0 +3.3946488294314383, 0.5061534816712382, 0.6720772687638279, 0.0 +3.4431438127090304, 0.5068556795226298, 0.6726609223506073, 0.0 +3.4916387959866224, 0.5075571600713689, 0.6732450041497023, 0.0 +3.540133779264214, 0.5082605716843026, 0.6738251151827683, 0.0 +3.588628762541806, 0.5089615870734499, 0.6744043510612878, 0.0 +3.637123745819398, 0.5096620175820731, 0.6749835401960063, 0.0 +3.68561872909699, 0.5103617376012777, 0.6755602358132536, 0.0 +3.7341137123745822, 0.5110596810014087, 0.6761364278484944, 0.0 +3.7826086956521743, 0.5117582178500357, 0.6767127534597112, 0.0 +3.831103678929766, 0.5124560051878883, 0.6772871297696736, 0.0 +3.879598662207358, 0.5131543150775111, 0.6778602128388685, 0.0 +3.92809364548495, 0.5138542791679641, 0.6784343455804717, 0.0 +3.976588628762542, 0.5145615357451615, 0.6790202126784262, 0.0 +4.025083612040134, 0.5152646531557599, 0.6796011437296258, 0.0 +4.073578595317726, 0.5159729252427078, 0.680183099206612, 0.0 +4.122073578595318, 0.5166831900691675, 0.6807651161206563, 0.0 +4.17056856187291, 0.5174210468426006, 0.6813431026069652, 0.0 +4.219063545150502, 0.5181575165674677, 0.6819237600650718, 0.0 +4.2675585284280935, 0.5188924102690844, 0.6825007477440278, 0.0 +4.316053511705686, 0.5196266537379891, 0.6830763817368082, 0.0 +4.364548494983278, 0.5203626774460274, 0.6836511369319469, 0.0 +4.41304347826087, 0.5210967933831282, 0.6842254610867867, 0.0 +4.461538461538462, 0.5218302416218287, 0.6848045895106581, 0.0 +4.510033444816054, 0.5225777274716523, 0.68544122027705, 0.0 +4.558528428093646, 0.5233235502321999, 0.6860804407437869, 0.0 +4.607023411371237, 0.524067570586865, 0.6867142419715005, 0.0 +4.65551839464883, 0.5248144842241012, 0.6873514851047677, 0.0 +4.7040133779264215, 0.5255577399270606, 0.687982473963131, 0.0 +4.752508361204014, 0.5263007609791437, 0.6886165157636095, 0.0 +4.801003344481606, 0.5270435784468029, 0.6892456718302584, 0.0 +4.849498327759197, 0.5277845597426365, 0.6898756724299251, 0.0 +4.89799331103679, 0.5285298057785888, 0.6905025425408271, 0.0 +4.946488294314381, 0.5292673097315218, 0.6911310624983231, 0.0 +4.994983277591974, 0.5300096103127335, 0.6917568546345234, 0.0 +5.043478260869565, 0.530756020237156, 0.6923881748508968, 0.0 +5.091973244147157, 0.5315069819172862, 0.6930284635148876, 0.0 +5.1404682274247495, 0.5322979587576155, 0.6936684598419117, 0.0 +5.188963210702341, 0.5330930466901613, 0.6943056436393011, 0.0 +5.237458193979934, 0.5338876608170534, 0.6949409200752247, 0.0 +5.285953177257525, 0.5346838433738789, 0.6955771244394412, 0.0 +5.334448160535118, 0.5354777076728131, 0.6962101649500343, 0.0 +5.382943143812709, 0.5362724231997565, 0.6968442795154889, 0.0 +5.431438127090301, 0.5370615517440509, 0.6974753889897266, 0.0 +5.479933110367893, 0.537855831907854, 0.6981074314919252, 0.0 +5.528428093645485, 0.5386468385122688, 0.6987368517385463, 0.0 +5.5769230769230775, 0.539441461915353, 0.6993668555422307, 0.0 +5.625418060200669, 0.5402350610135553, 0.6999967973151953, 0.0 +5.673913043478261, 0.5410391484199892, 0.7006409428130019, 0.0 +5.722408026755853, 0.5418413303423759, 0.7012824212569391, 0.0 +5.770903010033445, 0.5426491294122344, 0.7019227597575268, 0.0 +5.819397993311037, 0.5434538895045733, 0.7025624626773372, 0.0 +5.867892976588629, 0.5442571534827909, 0.7032018963670545, 0.0 +5.9163879598662215, 0.5450602455055166, 0.7038386153456531, 0.0 +5.964882943143813, 0.545863482618267, 0.7045315094357277, 0.0 +6.013377926421405, 0.5373127360127333, 0.6999383652358293, 0.0 +6.061872909698997, 0.5066095814489956, 0.6821881077395586, 0.0 +6.110367892976589, 0.47883615048462574, 0.6659086559045904, 0.0 +6.158862876254181, 0.45260039178387057, 0.6508309670415785, 0.0 +6.207357859531773, 0.42701934986776247, 0.6366157659999028, 0.0 +6.2558528428093645, 0.4012830103311526, 0.6229667152863446, 0.0 +6.304347826086957, 0.37473079569677753, 0.6098542024528213, 0.0 +6.352842809364549, 0.346459675527464, 0.5971325229690335, 0.0 +6.401337792642141, 0.3156816688100598, 0.5847611074443044, 0.0 +6.449832775919733, 0.28146449924381056, 0.5725332945436481, 0.0 +6.498327759197324, 0.24347145606214093, 0.5604491035556709, 0.0 +6.546822742474917, 0.24233747708340833, 0.5602034516176059, 0.0 +6.595317725752508, 0.24257842403021537, 0.5603746639500136, 0.0 +6.643812709030101, 0.2428237821277748, 0.5605485550623982, 0.0 +6.6923076923076925, 0.2430644263727473, 0.5607220534131472, 0.0 +6.740802675585285, 0.24330830038953374, 0.5608944203795683, 0.0 +6.789297658862877, 0.24354803841562414, 0.5610675320896807, 0.0 +6.837792642140468, 0.2437916047526012, 0.5612413132593174, 0.0 +6.886287625418061, 0.24403217986428885, 0.5614150148265383, 0.0 +6.934782608695652, 0.2442734386395842, 0.5615864417836062, 0.0 +6.983277591973245, 0.24451480548235782, 0.56176152239575, 0.0 +7.031772575250836, 0.24475609923373784, 0.5619301211427205, 0.0 +7.080267558528428, 0.24499795156594378, 0.562104326858075, 0.0 +7.1287625418060205, 0.2452404198175343, 0.5622752239244112, 0.0 +7.177257525083612, 0.24548322330438407, 0.5624470076542808, 0.0 +7.225752508361205, 0.24572082362066586, 0.5626177040951821, 0.0 +7.274247491638796, 0.2459537805495885, 0.5627886664551403, 0.0 +7.322742474916389, 0.24619301287768236, 0.5629648248634629, 0.0 +7.37123745819398, 0.24643466330280983, 0.563139917993599, 0.0 +7.419732441471572, 0.24667135466282297, 0.5633129548094038, 0.0 +7.4682274247491645, 0.24691550197364692, 0.5634888351269982, 0.0 +7.516722408026756, 0.24715106356678584, 0.5636640711203248, 0.0 +7.565217391304349, 0.24739316950010073, 0.5638371595757413, 0.0 +7.61371237458194, 0.24763076749158444, 0.5640136168345206, 0.0 +7.662207357859532, 0.24787188478566258, 0.564185963952693, 0.0 +7.710702341137124, 0.24811043203394909, 0.5643615125715288, 0.0 +7.759197324414716, 0.24835125179402381, 0.564534984551453, 0.0 +7.807692307692308, 0.24858831105101578, 0.5647080040063134, 0.0 +7.8561872909699, 0.24882774280375383, 0.5648844266232866, 0.0 +7.904682274247492, 0.2490668799469616, 0.565055498332618, 0.0 +7.953177257525084, 0.24930334122852177, 0.5652288631254334, 0.0 +8.001672240802677, 0.24954338927007474, 0.5654039527443246, 0.0 +8.050167224080267, 0.24978270410722184, 0.5655756899485811, 0.0 +8.09866220735786, 0.25001935231300776, 0.5657507205405685, 0.0 +8.147157190635452, 0.2502567297114573, 0.5659215540033621, 0.0 +8.195652173913043, 0.2504947078423942, 0.5660950607005161, 0.0 +8.244147157190636, 0.25073457901233376, 0.5662691292227473, 0.0 +8.292642140468228, 0.250972542316143, 0.5664399156103055, 0.0 +8.34113712374582, 0.2512087424631425, 0.566614590244827, 0.0 +8.389632107023411, 0.2514480163419747, 0.5667855786152783, 0.0 +8.438127090301004, 0.25168423886188174, 0.5669584866358998, 0.0 +8.486622073578596, 0.2519274913196477, 0.5671338312819695, 0.0 +8.535117056856187, 0.2805075215451404, 0.5764678762666359, 0.0 +8.58361204013378, 0.3163759030077153, 0.589499320695357, 0.0 +8.632107023411372, 0.34869020426713393, 0.6028811310993555, 0.0 +8.680602006688964, 0.3783614369227252, 0.616673142607229, 0.0 +8.729096989966555, 0.40651005937012685, 0.631044456619973, 0.0 +8.777591973244148, 0.4339948986933807, 0.6462324848762343, 0.0 +8.82608695652174, 0.4617404837726344, 0.6625089492228711, 0.0 +8.87458193979933, 0.4908074192517664, 0.6800986913736241, 0.0 +8.923076923076923, 0.5226452734313212, 0.6994959497264747, 0.0 +8.971571906354516, 0.5595004230742703, 0.7212636410291047, 0.0 +9.020066889632108, 0.585724083422174, 0.7361544387558704, 0.0 +9.068561872909699, 0.5867942321761609, 0.7369530233907088, 0.0 +9.117056856187292, 0.5878685557285294, 0.7377516248462469, 0.0 +9.165551839464884, 0.5889369799870252, 0.7385501596927041, 0.0 +9.214046822742475, 0.5900114699335308, 0.7393463102205563, 0.0 +9.262541806020067, 0.5910923801044751, 0.7401525258434513, 0.0 +9.31103678929766, 0.5921862366316126, 0.740970243967046, 0.0 +9.35953177257525, 0.593281189677359, 0.7417861300587514, 0.0 +9.408026755852843, 0.5943755702690883, 0.7426030076243827, 0.0 +9.456521739130435, 0.5954685843683372, 0.7434180557140061, 0.0 +9.505016722408028, 0.5966680208281288, 0.7443046592603756, 0.0 +9.553511705685619, 0.5978782010220244, 0.7452216490495399, 0.0 +9.602006688963211, 0.5990855717795803, 0.7461364116090969, 0.0 +9.650501672240804, 0.6002967139249689, 0.7470503120575224, 0.0 +9.698996655518394, 0.601509873791972, 0.7479637325560241, 0.0 +9.747491638795987, 0.6027190013592149, 0.7488756858538753, 0.0 +9.79598662207358, 0.6039292322562604, 0.7497860060536504, 0.0 +9.844481605351172, 0.6051397113165515, 0.7506935853307731, 0.0 +9.892976588628763, 0.606349153383247, 0.7516045507469628, 0.0 +9.941471571906355, 0.6075605171580134, 0.752511641650953, 0.0 +9.989966555183948, 0.608774652050915, 0.7534245916629203, 0.0 +10.038461538461538, 0.6100137272660262, 0.7543535645866403, 0.0 +10.08695652173913, 0.6112531775674477, 0.7552860659037812, 0.0 +10.135451505016723, 0.6124920844683096, 0.756217084924978, 0.0 +10.183946488294314, 0.613864804266175, 0.7571482223370666, 0.0 +10.232441471571907, 0.6152481118962134, 0.758077481439017, 0.0 +10.280936454849499, 0.6166326274597281, 0.7590068386410181, 0.0 +10.329431438127092, 0.6180178849376352, 0.7599345598743987, 0.0 +10.377926421404682, 0.6194001840553819, 0.7608614087767755, 0.0 +10.426421404682275, 0.6207853834070739, 0.7617860452996329, 0.0 +10.474916387959867, 0.622171638229455, 0.7627106721826515, 0.0 +10.523411371237458, 0.6235536252167974, 0.7636369608790508, 0.0 +10.57190635451505, 0.6249396003787798, 0.7646012726181457, 0.0 +10.620401337792643, 0.6263242493330041, 0.7656490909426203, 0.0 +10.668896321070235, 0.6277101535299947, 0.7666983502473796, 0.0 +10.717391304347826, 0.6290954026049809, 0.7677463483423872, 0.0 +10.765886287625419, 0.6305571157157152, 0.76879886690501, 0.0 +10.814381270903011, 0.6321592549760309, 0.7698780185325234, 0.0 +10.862876254180602, 0.6337612947870577, 0.7709566670445144, 0.0 +10.911371237458194, 0.6353638914869952, 0.7720308483022652, 0.0 +10.959866220735787, 0.6369630804766042, 0.7731052213278722, 0.0 +11.008361204013378, 0.6385705930307087, 0.7741824150074784, 0.0 +11.05685618729097, 0.6401720250139786, 0.7752565821983768, 0.0 +11.105351170568563, 0.6417763094966484, 0.7763273498758755, 0.0 +11.153846153846155, 0.643379248589292, 0.7773992966274579, 0.0 +11.202341137123746, 0.6449818880681736, 0.7784719221467032, 0.0 +11.250836120401338, 0.6465876390058773, 0.7795416980503214, 0.0 +11.29933110367893, 0.6482471416079473, 0.7806108806468479, 0.0 +11.347826086956522, 0.6500743546790306, 0.7816780547481144, 0.0 +11.396321070234114, 0.6519025978555666, 0.7827436186390021, 0.0 +11.444816053511706, 0.65373290985825, 0.783811700319142, 0.0 +11.493311036789299, 0.655565065421854, 0.7848770810472097, 0.0 +11.54180602006689, 0.6573932532755119, 0.7860281508606688, 0.0 +11.590301003344482, 0.659253430668677, 0.7872745684452149, 0.0 +11.638795986622075, 0.6611297832619102, 0.7885389395589348, 0.0 +11.687290969899665, 0.6630070544509788, 0.789800245249015, 0.0 +11.735785953177258, 0.6648886975701329, 0.7910631808962733, 0.0 +11.78428093645485, 0.6668717465013799, 0.7923232100100372, 0.0 +11.832775919732443, 0.6690291334776869, 0.7935831372493418, 0.0 +11.881270903010034, 0.6711895803875987, 0.7948411610103536, 0.0 +11.929765886287626, 0.6733498609427504, 0.7960962413221735, 0.0 +11.978260869565219, 0.6755114706956956, 0.7973559312026985, 0.0 +12.02675585284281, 0.6776724897853716, 0.7986110995646768, 0.0 +12.075250836120402, 0.679836701240697, 0.7998644264303164, 0.0 +12.123745819397994, 0.6819990549404997, 0.8011168372461431, 0.0 +12.172240802675585, 0.6841635588691665, 0.8023711461672722, 0.0 +12.220735785953178, 0.6865776915324817, 0.8036216379044013, 0.0 +12.26923076923077, 0.6890838499293472, 0.8048733287130108, 0.0 +12.317725752508363, 0.6915968058076737, 0.8061221192021567, 0.0 +12.366220735785953, 0.6941042112559148, 0.8074392489259284, 0.0 +12.414715719063546, 0.6966232232547913, 0.8088965993218858, 0.0 +12.463210702341138, 0.699201857565926, 0.8103980766673691, 0.0 +12.511705685618729, 0.7017818430242355, 0.8119013749727252, 0.0 +12.560200668896321, 0.7044393962378047, 0.813398922310017, 0.0 +12.608695652173914, 0.7074478878314499, 0.8148978229653933, 0.0 +12.657190635451506, 0.7104596816556447, 0.8163970275421143, 0.0 +12.705685618729097, 0.713474006197341, 0.8178928716560697, 0.0 +12.75418060200669, 0.716486169882846, 0.8193897042437344, 0.0 +12.802675585284282, 0.7195005500653235, 0.8208872790822606, 0.0 +12.851170568561873, 0.7225145805110622, 0.8223819470080451, 0.0 +12.899665551839465, 0.7258822648690005, 0.8238746953656514, 0.0 +12.948160535117058, 0.7294254651181353, 0.8253661747924265, 0.0 +12.996655518394649, 0.7329739817348001, 0.8268564700655636, 0.0 +13.045150501672241, 0.6524973668186036, 0.7653983054237263, 0.0 +13.093645484949834, 0.6009605056780571, 0.7196244708550217, 0.0 +13.142140468227426, 0.5628945066648953, 0.6830477439967524, 0.0 +13.190635451505017, 0.5322124861348267, 0.6521994836595213, 0.0 +13.23913043478261, 0.5055332033582318, 0.6243757615264812, 0.0 +13.287625418060202, 0.481385614924292, 0.5986063357061526, 0.0 +13.336120401337793, 0.4587226423516482, 0.5738891176564316, 0.0 +13.384615384615385, 0.43701404891669066, 0.5497050997052878, 0.0 +13.433110367892978, 0.41564448091273554, 0.5253849841294749, 0.0 +13.48160535117057, 0.3942639624065577, 0.500501727490927, 0.0 +13.53010033444816, 0.37241034051771615, 0.47435612039308456, 0.0 +13.578595317725753, 0.34963864172817244, 0.44620236036157823, 0.0 +13.627090301003346, 0.3255305136651809, 0.41485840137138547, 0.0 +13.675585284280936, 0.29971078471486406, 0.37870591325610264, 0.0 +13.724080267558529, 0.2718078785681734, 0.33473429731075843, 0.0 +13.772575250836121, 0.24188340488056798, 0.2776382125810799, 0.0 +13.821070234113714, 0.21099123000515504, 0.2038038534301104, 0.0 +13.869565217391305, 0.18079266667683505, 0.1300157686585009, 0.0 +13.918060200668897, 0.15295426175665286, 0.07422876881054921, 0.0 +13.96655518394649, 0.12814313751623915, 0.03260935167130668, 0.0 +14.01505016722408, 0.10683461987556667, 0.007253928647592732, 0.0 +14.063545150501673, 0.09365832056514237, 0.007260943636683992, 0.0 +14.112040133779265, 0.08154163965577226, 0.0072701788592424346, 0.0 +14.160535117056856, 0.0703171621390716, 0.007278286779110303, 0.0 +14.209030100334449, 0.059871617798126026, 0.007281922298670874, 0.0 +14.257525083612041, 0.05014085944768775, 0.007287742860905993, 0.0 +14.306020066889634, 0.04100007637167277, 0.007291862912435623, 0.0 +14.354515050167224, 0.03238617499358108, 0.007295523322363335, 0.0 +14.403010033444817, 0.024238547405261664, 0.007297349268782941, 0.0 +14.45150501672241, 0.01649228216398732, 0.007298279176120482, 0.0 +14.5, 0.008581210526173628, 0.007298279176120482, 0.0 diff --git a/Engine Test Programs/vent_fuel.prog b/Engine Test Programs/vent_fuel.prog new file mode 100644 index 0000000..5808780 --- /dev/null +++ b/Engine Test Programs/vent_fuel.prog @@ -0,0 +1,4 @@ +0,0,0,0 +1,1,0,0 +20,1,0,0 +21,0,0,0 \ No newline at end of file diff --git a/Engine Test Programs/vent_ox.prog b/Engine Test Programs/vent_ox.prog new file mode 100644 index 0000000..2ce1bd2 --- /dev/null +++ b/Engine Test Programs/vent_ox.prog @@ -0,0 +1,4 @@ +0,0,0,0 +1,0,1,0 +20,0,1,0 +21,0,0,0 \ No newline at end of file diff --git a/Monitor/Inconsolata.ttf b/Monitor/Inconsolata.ttf new file mode 100644 index 0000000000000000000000000000000000000000..95ad7181c2d64e5e7079ebbbb39a7014a6d17109 GIT binary patch literal 343368 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
Ygy-Qd{u3`QBx(XbLN-cRdlxW%=+N=nq9 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

    R=s8(RKV{N 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 z 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

    g%s6&a`+xmBX2KXy z5$==pnJ3f76ud{c@&$|)AQm!a(a4llDB}gFrr4wN1l;xW{u5&!~<+;`37V})jofs G)&Bt-g?48E literal 0 HcmV?d00001 diff --git a/Monitor/UbuntuMono-Regular.ttf b/Monitor/UbuntuMono-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4977028d132b681c035d427748f74afab9fd70bf GIT binary patch literal 189892 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

    b4Hr}E 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 QoVh7}@^j`ZoavbV1{kz;MF0Q* literal 0 HcmV?d00001 diff --git a/Monitor/action_dispatcher.py b/Monitor/action_dispatcher.py new file mode 100644 index 0000000..b12d1d5 --- /dev/null +++ b/Monitor/action_dispatcher.py @@ -0,0 +1,56 @@ +import logging + +from zerolib.enums import ActionType +from zerolib.message import ActionMessage +from zerolib.communications import DEFAULT_CONTROLLER_PORT + +logger = logging.getLogger(__name__) + +ACTION_BUTTONS = [ + "Fill Valve", + "Vent Valve", + "Tank Heating", + "Fire Ignitor", + "Startup Sequence", + "Abort", +] + +class ActionDispatcher: + def __init__(self, zmq_server, dest="", port=DEFAULT_CONTROLLER_PORT): + self.dest_addr = dest + self.dest_port = port + + self.dispatcher = zmq_server + + def set_dest(self, dest): + self.dest_addr = dest + self.dispatcher.connect(self.dest_addr, self.dest_port) + + def get_callback(self, action): + """ + Generates a callback for the requested action button. The callback is + given one value (the state of the button) which determines which action + to send. + """ + tv = fv = None + + match action: + case "Fill Valve": + tv, fv = ActionType.OPEN_FILL, ActionType.CLOSE_FILL + case "Tank Heating": + tv, fv = ActionType.ENABLE_TANK_HEATING, ActionType.DISABLE_TANK_HEATING + case "Fire Ignitor": + tv, fv = ActionType.FIRE_IGNITOR, ActionType.SAFE_IGNITOR + case "Startup Sequence": + tv, fv = ActionType.BEGIN_BURN_PHASE, ActionType.ABORT_BURN_PHASE + case "Abort": + tv, fv = ActionType.ABORT, ActionType.ABORT + case "Vent Valve": + tv, fv = ActionType.OPEN_VENT, ActionType.CLOSE_VENT + + def f(x): + axn = tv if x else fv + self.dispatcher.dispatch(ActionMessage(axn)) + logger.info(f"Sending action {axn.name} to client.") + + return f \ No newline at end of file diff --git a/Monitor/dpg_demo.py b/Monitor/dpg_demo.py new file mode 100644 index 0000000..cf6b64f --- /dev/null +++ b/Monitor/dpg_demo.py @@ -0,0 +1,12 @@ +import dearpygui.dearpygui as dpg +import dearpygui.demo as demo + +dpg.create_context() +dpg.create_viewport(title='Custom Title', width=600, height=600) + +demo.show_demo() + +dpg.setup_dearpygui() +dpg.show_viewport() +dpg.start_dearpygui() +dpg.destroy_context() \ No newline at end of file diff --git a/Monitor/icon.ico b/Monitor/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d38f49217db0321381bf0b4c6d389af6b825f82f GIT binary patch literal 135681 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 UD82Ru@LY$2&$<>oR*<^?0C^HzWB>pF literal 0 HcmV?d00001 diff --git a/Monitor/icon.png b/Monitor/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..532fa828489f662c5c568687307fb98016e3b2a6 GIT binary patch literal 45642 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 literal 0 HcmV?d00001 diff --git a/Monitor/main.py b/Monitor/main.py new file mode 100644 index 0000000..5fb7c99 --- /dev/null +++ b/Monitor/main.py @@ -0,0 +1,119 @@ +### ADD IMPORT DIRECTORY +import sys +sys.path.append('../') + +import os +import signal +import dearpygui.dearpygui as dpg +from pint import UnitRegistry + +from sensorgrid import SensorGrid +from plotarray import PlotArray +from menu import Menu +from action_dispatcher import ActionDispatcher, ACTION_BUTTONS +from message_handler import MessageHandler + +from zerolib.communications import MessageServer, DEFAULT_CONTROLLER_PORT, DEFAULT_MONITOR_PORT +from zerolib.sensorcfg import SensorConfiguration +from zerolib.standard import logging_config, sensor_cfg_location +from zerolib.message import EngineProgramSettingsMessage + +### LOGGING SETUP +import logging +logging.basicConfig(**logging_config) + +### SETUP +units = UnitRegistry() + +dpg.create_context() +with dpg.font_registry(): + font = dpg.add_font("UbuntuMono-Regular.ttf", 12.5) + small_font = dpg.add_font("UbuntuMono-Regular.ttf", 11.5) +dpg.bind_font(font) +dpg.create_viewport( + title='Zero Monitor', small_icon="icon.ico", large_icon="icon.ico" +) + +### GUI CREATION +sens_cfg = SensorConfiguration(sensor_cfg_location) +sens_cfg.read_config() + +sn_grid = SensorGrid(sens_cfg) +sn_grid.create_grid() + +tab_labels = [ + "Primary Sensors", + "Secondary Sensors", + "Tertiary Sensors" +] +plt_arrs = [] + +with dpg.window() as w: + bg_window = w + + with dpg.group(parent=bg_window): + with dpg.tab_bar() as tb: + for i in range(sens_cfg.get_tab_count()): + with dpg.tab(label=tab_labels[i]) as tab: + plt_arrs.append( + PlotArray( + dpg, tab, units, sn_grid.get_grid(i) + ) + ) + + menu = Menu(dpg, bg_window, small_font=small_font, + indicators = [ + "Connection" + ], + buttons = ACTION_BUTTONS + ) + +logging.getLogger().addHandler(menu.get_log_handler()) + +dpg.setup_dearpygui() +dpg.show_viewport() +dpg.set_primary_window(bg_window, True) + +### SETUP SERVER +server = MessageServer(host="0.0.0.0", port=DEFAULT_MONITOR_PORT) + +# Register the button callbacks +dispatcher = ActionDispatcher(server, port=DEFAULT_CONTROLLER_PORT) +for button in ACTION_BUTTONS: + menu.set_button_callback(button, dispatcher.get_callback(button)) + +msg_handler = MessageHandler(units, sens_cfg, menu, plt_arrs) +server.register_request_hook(msg_handler.handle) + +menu_indicator_cb = menu.get_indicator_callback("Connection") +def connection_hook(status): + # Called when the connection status is changed. Update the GUI and register + # the new ip with the dispatcher if available. + menu_indicator_cb(status) + msg_handler.update_offset() + +def program_callback(selected_program): + # Called when a program is selected by the user. + msg = EngineProgramSettingsMessage(True, selected_program) + server.dispatch(msg) +menu.set_program_dropdown_callback(program_callback) + +server.register_connection_hook(connection_hook) +server.run() + +dpg.set_viewport_title(f"Zero Monitor") +dpg.maximize_viewport() + +# Join the server threads on exit +dpg.set_exit_callback(server.stop) + +### RENDER LOOP +while dpg.is_dearpygui_running(): + dpg.render_dearpygui_frame() + + [arr.update_plot_ranges() for arr in plt_arrs] + + menu.tick() + +### TEARDOWN +os.kill(os.getpid(), signal.SIGTERM) \ No newline at end of file diff --git a/Monitor/menu.py b/Monitor/menu.py new file mode 100644 index 0000000..95d7d69 --- /dev/null +++ b/Monitor/menu.py @@ -0,0 +1,154 @@ +import logging +from logging import Handler, LogRecord, Formatter + +from zerolib.standard import formatter_config + +logger = logging.getLogger(__name__) + +class LogHandler(Handler): + def handle(self, record: LogRecord): + msg = self.format(record) + if hasattr(self, "callback_fn"): + self.callback_fn(msg) + + def set_callback(self, fn): + self.callback_fn = fn + +RED = (255,0,0) +GREEN = (0,255,0) + +class Indicator: + def __init__(self, dpg, label): + self.dpg = dpg + self.enabled = False + + with dpg.group(horizontal=True, height=20): + dpg.add_text(label) + with dpg.drawlist(width=10, height=20): + self.indicator = dpg.draw_circle((5, 10), 5, fill=RED) + + def set(self, status): + self.dpg.configure_item(self.indicator, fill=GREEN if status else RED) + + +class Button: + def __init__(self, dpg, label): + self.callback = None + self.label = label + + dpg.add_checkbox(label=label, callback=self.callback_fn) + + def callback_fn(self, _, value): + if self.callback: + self.callback(value) + else: + logger.warning(f"{self.label} button pressed but no callback configured!") + + def register_callback(self, fn): + self.callback = fn + + +class ProgramDropdown: + def __init__(self, dpg): + self.dpg = dpg + self.callback = None + + self.combo = dpg.add_combo(callback=self.callback_fn) + + def callback_fn(self, _, value): + if self.callback: + self.callback(value) + else: + logger.warning(f"Attempted to select program but no callback configured!") + + def register_callback(self, fn): + self.callback = fn + + def set_programs(self, program_list): + self.dpg.configure_item(self.combo, items=program_list) + logger.info("Updated program list.") + + +class Menu: + def __init__(self, dpg, master, small_font = None, + indicators = [], buttons = [] + ): + self.dpg = dpg + self.master = master + + # button callbacks + self.indicators = {} + self.buttons = {} + self.program_dropdown = None + self.tank_heating_callback = None + + self.pause_scroll = False + + with dpg.group(label="Control Panel", parent=master, height=200) as window: + self.window = window + + with dpg.group(horizontal=True): + # Add logbox + with dpg.child(width=1200): + with dpg.group(horizontal=True): + dpg.add_text("Logs") + dpg.add_checkbox(label="Freeze", default_value=False, callback=self.freeze) + + with dpg.table(header_row=False, scrollY=True) as table: + self.logger_box = table + dpg.add_table_column() + + if small_font: + dpg.bind_item_font(self.logger_box, small_font) + + # Add control panel + with dpg.child(): + self.program_dropdown = ProgramDropdown(dpg) + + for indicator in indicators: + self.indicators[indicator] = Indicator(dpg, indicator) + + for button in buttons: + self.buttons[button] = Button(dpg, button) + + def freeze(self, _, val): + self.pause_scroll = val + + def get_indicator_callback(self, indicator): + return self.indicators[indicator].set + + def set_button_callback(self, button, fn): + self.buttons[button].register_callback(fn) + + def set_program_dropdown_callback(self, fn): + self.program_dropdown.register_callback(fn) + + def add_log(self, item): + color = None + + ltext = item.lower() + if "warning" in ltext: + color = (255, 168, 82) + elif "error" in ltext: + color = (255, 80, 80) + elif "critical" in ltext: + color = (255, 82, 212) + elif "controller" in ltext: + color = (180, 180, 180) + + with self.dpg.table_row(parent=self.logger_box): + self.dpg.add_text(item, color=color) + + def set_programs(self, program_list): + self.program_dropdown.set_programs(program_list) + + def get_log_handler(self): + handler = LogHandler() + handler.set_callback(self.add_log) + formatter = Formatter(**formatter_config) + handler.setFormatter(formatter) + return handler + + def tick(self): + if not self.pause_scroll: + self.dpg.set_y_scroll(self.logger_box, self.dpg.get_y_scroll_max(self.logger_box)) \ No newline at end of file diff --git a/Monitor/message_handler.py b/Monitor/message_handler.py new file mode 100644 index 0000000..024bdfb --- /dev/null +++ b/Monitor/message_handler.py @@ -0,0 +1,54 @@ +""" Processor for incoming sensor data. + +""" +import time + +from zerolib.enums import SensorType, MessageType, SENSOR_UNITS + +class MessageHandler: + """ Handles incoming messages from the controller. + + """ + def __init__(self, units, sensor_config, menu, plot_arrays): + self.units = units + self.sens_cfg = sensor_config + self.menu = menu + self.plt_arrs = plot_arrays + + self.tank_mass_sensor = sensor_config.get_by_type(SensorType.TANK_MASS)[0] + + self.start_time = time.perf_counter() + self.offset = 0 + + def handle_sensor_data(self, msg): + load_cell_data = 0 + + for dp in msg.data: + id, val = dp + sensor = self.sens_cfg.get(s_id=id) + + val = self.units.Quantity(val, SENSOR_UNITS[sensor.get_type()][0]) + plt_arr = self.plt_arrs[sensor.get_tab()] + plt_arr.add_datapoint(id, (msg.timestamp + self.offset, val)) + + if sensor.get_type() == SensorType.LOAD_CELL: + load_cell_data += val + + if load_cell_data != 0: + plt_arr = self.plt_arrs[self.tank_mass_sensor.get_tab()] + plt_arr.add_datapoint( + self.tank_mass_sensor.get_id(), + (msg.timestamp + self.offset, load_cell_data) + ) + + def update_offset(self): + self.offset = time.perf_counter() - self.start_time + + def handle(self, msg): + match msg.get_type(): + case MessageType.SENSOR_DATA: + self.handle_sensor_data(msg) + case MessageType.NOTIFICATION: + self.menu.add_log(f"{msg.notification} (CONTROLLER)") + case MessageType.ENGINE_PROGRAM_SETTINGS: + self.menu.set_programs(msg.payload.split(',')) \ No newline at end of file diff --git a/Monitor/plot.py b/Monitor/plot.py new file mode 100644 index 0000000..3b57dd8 --- /dev/null +++ b/Monitor/plot.py @@ -0,0 +1,139 @@ +import numpy as np +import bisect + +class Plot: + def __init__(self, dpg, units, sensor): + self.dpg = dpg + self.u = units + + self.retain = 10 + + self.desc = sensor.get_name() + self.id = sensor.get_id() + + self.data_range = np.array(sensor.get_range()) + self.xdata = [] + self.ydata = [] + + self.fixed_range = True + self.paused = False + + self.x_axis = None + self.y_axis = None + + self.available_units = sensor.get_units() + self.y_units = self.u(self.available_units[0]) + self.update_units(None, self.available_units[0]) + + # create GUI + with dpg.group(label=self.desc) as window: + self.window = window + + with dpg.plot(anti_aliased=True, width=-1, height=270) as plot: + self.plot = plot + self.x_axis = dpg.add_plot_axis(dpg.mvXAxis, label="Time (s)") + self.y_axis = dpg.add_plot_axis(dpg.mvYAxis, label=self.y_label) + self.series = dpg.add_line_series(self.xdata, self.ydata, parent=self.y_axis) + + with dpg.group(horizontal=True): + if len(self.available_units) > 1: + dpg.add_text("Units") + dpg.add_combo( + items = self.available_units, callback = self.update_units, + default_value = self.available_units[0], width=50 + ) + dpg.add_text(" Window") + else: + dpg.add_text("Window") + + dpg.add_combo( + items = [5, 10, 20, 60, 120, 240], + callback = self.update_x_window, default_value=10, width=45 + ) + + dpg.add_text(" Auto Range") + dpg.add_checkbox(default_value = False, callback = self.toggle_fixed) + + dpg.add_text(" Pause") + dpg.add_checkbox(default_value = False, callback = self.pause) + + self.update_range() + + def update_x_window(self, _, xwin): + self.retain = int(xwin) + + def get_xlim_idx(self, xlim): + xmin, xmax = xlim + + return bisect.bisect_right(self.xdata, xmin), bisect.bisect_left(self.xdata, xmax) + + def update_units(self, _, new_units): + new_units = self.u(new_units) + + self.data_range = self.u.Quantity(self.data_range, self.y_units ).to(new_units).m + self.ydata = list(self.u.Quantity(np.array(self.ydata), self.y_units).to(new_units).m) + + self.y_units = new_units + u_label = f"{new_units.units:~P}" + if u_label != "": + self.y_label = f"{self.desc} [{u_label}]" + else: + self.y_label = f"{self.desc}" + + if self.y_axis: + self.dpg.set_item_label(self.y_axis, self.y_label) + + def update_range(self): + if not self.y_axis or not self.x_axis or not self.xdata or not self.ydata: + return + + li, ri = self.get_xlim_idx(self.dpg.get_axis_limits(self.x_axis)) + + if self.fixed_range: + padding = abs(self.data_range[1]) * 0.025 + self.dpg.set_axis_limits( + self.y_axis, + self.data_range[0] - padding, + self.data_range[1] + padding + ) + else: + ymin = min(self.ydata[li:ri]) + ymax = max(self.ydata[li:ri]) + + padding = 0.01 * max(abs(ymin), abs(ymax)) + if padding == 0: + padding = abs(self.data_range[1]) * 0.025 + + self.dpg.set_axis_limits(self.y_axis, ymin-padding, ymax+padding) + + self.update_series(li, ri) + + if self.paused: + self.dpg.set_axis_limits_auto(self.x_axis) + else: + if len(self.xdata) > 1: + latest_x = self.xdata[-1] + self.dpg.set_axis_limits( + self.x_axis, + max(latest_x-self.retain, self.xdata[0]), + latest_x + ) + + def toggle_fixed(self, _, val): + self.fixed_range = not val + if val: + self.dpg.set_axis_limits_auto(self.y_axis) + + def pause(self, _, val): + self.paused = val + + if not self.paused: + self.update_range() + + def add_datapoint(self, dp): + x, y = dp + self.xdata.append(x) + self.ydata.append(y.to(self.y_units).m) + + def update_series(self, li, ri): + self.dpg.set_value(self.series, [self.xdata[li:ri], self.ydata[li:ri]]) \ No newline at end of file diff --git a/Monitor/plotarray.py b/Monitor/plotarray.py new file mode 100644 index 0000000..325a499 --- /dev/null +++ b/Monitor/plotarray.py @@ -0,0 +1,31 @@ +from plot import Plot + + +class PlotArray: + def __init__(self, dpg, master, units, sensors): + self.dpg = dpg + self.master = master + self.units = units + self.id_mapping = {} + + self.plots = [] + with dpg.table(header_row=False): + [dpg.add_table_column() for _ in range(len(sensors[0]))] + + for i in range(len(sensors)): + self.plots.append([]) + num_plots = len(sensors[i]) + + with dpg.table_row(): + for j in range(num_plots): + sensor = sensors[i][j] + self.id_mapping[sensor.get_id()] = (i, j) + self.plots[-1].append(Plot(dpg, units, sensor)) + + + def add_datapoint(self, sensor_id, datapoint): + i, j = self.id_mapping[sensor_id] + self.plots[i][j].add_datapoint(datapoint) + + def update_plot_ranges(self): + [[plot.update_range() for plot in row] for row in self.plots] \ No newline at end of file diff --git a/Monitor/sensorgrid.py b/Monitor/sensorgrid.py new file mode 100644 index 0000000..d53032a --- /dev/null +++ b/Monitor/sensorgrid.py @@ -0,0 +1,36 @@ +from math import floor + +class SensorGrid: + def __init__(self, sensor_config): + self.sens_cfg = sensor_config + self.grids = [] + + def tile(self, sensors, arr): + num_rows = floor( len(sensors)**0.5 ) + num_cols = len(sensors) // num_rows + + for i in range(num_rows - 1): + arr.append([]) + for j in range(num_cols): + arr[-1].append( + sensors[i*num_cols+j] + ) + + rem = len(sensors) - ( num_rows - 1 ) * num_cols + if rem > 0: + arr.append([]) + for i in range(len(sensors)-rem, len(sensors)): + arr[-1].append( + sensors[i] + ) + + def create_grid(self): + for i in range(self.sens_cfg.get_tab_count()): + self.grids.append([]) + self.tile([ + sensor for sensor in self.sens_cfg.get_sensors() + if sensor.get_tab() == i + ], self.grids[-1]) + + def get_grid(self, i): + return self.grids[i] \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..221bf1f --- /dev/null +++ b/README.md @@ -0,0 +1,43 @@ +# Zero Test Bench Software Stack +Author: Cristian Bicheru +For questions, feel free to reach out to `c.bicheru0@gmail.com`. + +## Introduction +The hardware stack consists of a laptop and a Raspberry Pi 4B. Each device has +its own software located in the appropriate directories. ZeroMQ is used to link +the monitor software on the laptop to the controller software on the Pi. Onboard +sensors and their settings are defined in `sensors.cfg`. + +`zerolib` is a library containing code used by both the monitor and the +controller. + +The `Engine Test Programs` directory contains valve throttle profiles to be +executed during a cold flow or static fire test. The format is a 4 column +csv file. The first column is the time (in seconds) since the test begins, the +second column holds the desired fuel valve throttle position and the third column +holds the desired oxidizer valve throttle position at this timestep. The last +column controls the torch ignitor state. A 1 turns the ignitor on at this +timestep and a 0 turns it off. Between timesteps, the throttles are linearly +interpolated based on the current time. + +## Testing Procedure +Once the all of the hardware is setup, an ethernet link should be established +between the laptop and the Raspberry Pi. Then, the battery pack is connected to +the electrical box. + +At this point, an SSH link is established to the Pi. The `pigpiod` service is +started using `./start_pigpiod.sh`. Then, the controller is started with +`./start_controller.sh`. Once the controller software is finished initializing, +the monitor should begin to show live data collected from the controller. Any +warnings/errors from the Pi are shown either in the SSH console or the monitor +software. + +## Pi Setup +To improve the reliability and performance of the Pi, it is running a custom +compiled kernel with `PREEMPT_RT` enabled. The Pi is also overlocked to 2 GHz. + +## Video Feed +To establish a live camera feed, connect an android phone to the Pi via USB and +run the `./start_camera.sh` command. This will forward the 8080 port on the +phone to 8081 on the Pi. A camera server (e.g. IP Webcam) can then be run on the +phone (broadcasting on port 8080) and accessed on the laptop. \ No newline at end of file diff --git a/Scripts/convert_to_csv.py b/Scripts/convert_to_csv.py new file mode 100644 index 0000000..5f2438f --- /dev/null +++ b/Scripts/convert_to_csv.py @@ -0,0 +1,24 @@ +""" Convert datalogger output to a standard csv file. +""" +import sys +import zlib + +CHECK_AMT = 10 + +filename = sys.argv[1] +output = sys.argv[2] + +print(f"Reading file {filename} ...") + +with open(filename, "rb") as f: + data = f.read() + +decompressor = zlib.decompressobj() +data = decompressor.decompress(data) + +print(f"Writing to {output} ...") +with open(output, "w") as f: + try: + f.write(data.decode()) + except UnicodeDecodeError: + f.write(data[:-1].decode()) diff --git a/Scripts/plot.py b/Scripts/plot.py new file mode 100644 index 0000000..9a6e83f --- /dev/null +++ b/Scripts/plot.py @@ -0,0 +1,32 @@ +import sys + +import numpy as np +import matplotlib.pyplot as plt + +filename = sys.argv[1] +idx = int(sys.argv[2]) + +print(f"Plotting index {idx} of file {filename}.") + +with open(filename, "r") as f: + data = f.readlines() + col_name = data[0].strip().split(',')[idx] + print(f"Reading column {col_name}...") + + data = [x.strip().split(',') for x in data[1:-1]] + t = np.array([float(x[0]) for x in data if x[idx] != "Ø"]) + y = np.array([float(x[idx]) for x in data if x[idx] != "Ø"]) + + +t_freq = 1. / np.diff(t, 1) +mean_freq = np.mean(t_freq) +stddev_freq = np.std(t_freq) + +print(f"Mean sample frequency: {mean_freq:.3g} Hz") +print(f"Standard deviation: {stddev_freq:.3g} Hz") + +plt.plot(t, y) +plt.title("Sensor Data Plot") +plt.xlabel("Time [s]") +plt.ylabel(col_name) +plt.show() diff --git a/Scripts/stats.py b/Scripts/stats.py new file mode 100644 index 0000000..3c88a12 --- /dev/null +++ b/Scripts/stats.py @@ -0,0 +1,30 @@ +import sys + +import numpy as np + +filename = sys.argv[1] +idx = int(sys.argv[2]) + +print(f"Computing statistics of index {idx} of file {filename}.") + +with open(filename, "r") as f: + data = f.readlines() + col_name = data[0].strip().split(',')[idx] + print(f"Reading column {col_name}...") + + data = [x.strip().split(',') for x in data[1:-1]] + t = np.array([float(x[0]) for x in data if x[idx] != "Ø"]) + y = np.array([float(x[idx]) for x in data if x[idx] != "Ø"]) + + +t_diff = np.diff(t, 1) +t_freq = 1. / t_diff +mean_freq = np.mean(t_freq) +stddev_freq = np.std(t_freq) +mean_timestep = np.mean(t_diff) +max_timestep = np.max(t_diff) + +print(f"Mean sample frequency: {mean_freq:.3g} Hz") +print(f"Standard deviation: {stddev_freq:.3g} Hz") +print(f"Mean sample timestep: {mean_timestep :.3g} s") +print(f"Max sample timestep: {max_timestep: .3g} s") diff --git a/fix_perms.sh b/fix_perms.sh new file mode 100644 index 0000000..442373c --- /dev/null +++ b/fix_perms.sh @@ -0,0 +1,2 @@ +sudo chown root.gpio /dev/gpiomem +sudo chmod g+rw /dev/gpiomem diff --git a/pylintrc b/pylintrc new file mode 100644 index 0000000..c632e75 --- /dev/null +++ b/pylintrc @@ -0,0 +1,400 @@ +# This Pylint rcfile contains a best-effort configuration to uphold the +# best-practices and style described in the Google Python style guide: +# https://google.github.io/styleguide/pyguide.html +# +# Its canonical open-source location is: +# https://google.github.io/styleguide/pylintrc + +[MAIN] + +# Files or directories to be skipped. They should be base names, not paths. +ignore=third_party + +# Files or directories matching the regex patterns are skipped. The regex +# matches against base names, not paths. +ignore-patterns= + +# Pickle collected data for later comparisons. +persistent=no + +# List of plugins (as comma separated values of python modules names) to load, +# usually to register additional checkers. +load-plugins= + +# Use multiple processes to speed up Pylint. +jobs=4 + +# Allow loading of arbitrary C extensions. Extensions are imported into the +# active Python interpreter and may run arbitrary code. +unsafe-load-any-extension=no + + +[MESSAGES CONTROL] + +# Only show warnings with the listed confidence levels. Leave empty to show +# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED +confidence= + +# Enable the message, report, category or checker with the given id(s). You can +# either give multiple identifier separated by comma (,) or put this option +# multiple time (only on the command line, not in the configuration file where +# it should appear only once). See also the "--disable" option for examples. +#enable= + +# Disable the message, report, category or checker with the given id(s). You +# can either give multiple identifiers separated by comma (,) or put this +# option multiple times (only on the command line, not in the configuration +# file where it should appear only once).You can also use "--disable=all" to +# disable everything first and then reenable specific checks. For example, if +# you want to run only the similarities checker, you can use "--disable=all +# --enable=similarities". If you want to run only the classes checker, but have +# no Warning level messages displayed, use"--disable=all --enable=classes +# --disable=W" +disable=R, + abstract-method, + apply-builtin, + arguments-differ, + attribute-defined-outside-init, + backtick, + bad-option-value, + basestring-builtin, + buffer-builtin, + c-extension-no-member, + consider-using-enumerate, + cmp-builtin, + cmp-method, + coerce-builtin, + coerce-method, + delslice-method, + div-method, + eq-without-hash, + execfile-builtin, + file-builtin, + filter-builtin-not-iterating, + fixme, + getslice-method, + global-statement, + hex-method, + idiv-method, + implicit-str-concat, + import-error, + import-self, + import-star-module-level, + input-builtin, + intern-builtin, + invalid-str-codec, + locally-disabled, + long-builtin, + long-suffix, + map-builtin-not-iterating, + misplaced-comparison-constant, + missing-function-docstring, + metaclass-assignment, + next-method-called, + next-method-defined, + no-absolute-import, + no-init, # added + no-member, + no-name-in-module, + no-self-use, + nonzero-method, + oct-method, + old-division, + old-ne-operator, + old-octal-literal, + old-raise-syntax, + parameter-unpacking, + print-statement, + raising-string, + range-builtin-not-iterating, + raw_input-builtin, + rdiv-method, + reduce-builtin, + relative-import, + reload-builtin, + round-builtin, + setslice-method, + signature-differs, + standarderror-builtin, + suppressed-message, + sys-max-int, + trailing-newlines, + unichr-builtin, + unicode-builtin, + unnecessary-pass, + unpacking-in-except, + useless-else-on-loop, + useless-suppression, + using-cmp-argument, + wrong-import-order, + xrange-builtin, + zip-builtin-not-iterating, + + +[REPORTS] + +# Set the output format. Available formats are text, parseable, colorized, msvs +# (visual studio) and html. You can also give a reporter class, eg +# mypackage.mymodule.MyReporterClass. +output-format=text + +# Tells whether to display a full report or only the messages +reports=no + +# Python expression which should return a note less than 10 (10 is the highest +# note). You have access to the variables errors warning, statement which +# respectively contain the number of errors / warnings messages and the total +# number of statements analyzed. This is used by the global evaluation report +# (RP0004). +evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) + +# Template used to display messages. This is a python new-style format string +# used to format the message information. See doc for all details +#msg-template= + + +[BASIC] + +# Good variable names which should always be accepted, separated by a comma +good-names=main,_ + +# Bad variable names which should always be refused, separated by a comma +bad-names= + +# Colon-delimited sets of names that determine each other's naming style when +# the name regexes allow several styles. +name-group= + +# Include a hint for the correct naming format with invalid-name +include-naming-hint=no + +# List of decorators that produce properties, such as abc.abstractproperty. Add +# to this list to register other decorators that produce valid properties. +property-classes=abc.abstractproperty,cached_property.cached_property,cached_property.threaded_cached_property,cached_property.cached_property_with_ttl,cached_property.threaded_cached_property_with_ttl + +# Regular expression matching correct function names +function-rgx=^(?:(?PsetUp|tearDown|setUpModule|tearDownModule)|(?P_?[A-Z][a-zA-Z0-9]*)|(?P_?[a-z][a-z0-9_]*))$ + +# Regular expression matching correct variable names +variable-rgx=^[a-z][a-z0-9_]*$ + +# Regular expression matching correct constant names +const-rgx=^(_?[A-Z][A-Z0-9_]*|__[a-z0-9_]+__|_?[a-z][a-z0-9_]*)$ + +# Regular expression matching correct attribute names +attr-rgx=^_{0,2}[a-z][a-z0-9_]*$ + +# Regular expression matching correct argument names +argument-rgx=^[a-z][a-z0-9_]*$ + +# Regular expression matching correct class attribute names +class-attribute-rgx=^(_?[A-Z][A-Z0-9_]*|__[a-z0-9_]+__|_?[a-z][a-z0-9_]*)$ + +# Regular expression matching correct inline iteration names +inlinevar-rgx=^[a-z][a-z0-9_]*$ + +# Regular expression matching correct class names +class-rgx=^_?[A-Z][a-zA-Z0-9]*$ + +# Regular expression matching correct module names +module-rgx=^(_?[a-z][a-z0-9_]*|__init__)$ + +# Regular expression matching correct method names +method-rgx=(?x)^(?:(?P_[a-z0-9_]+__|runTest|setUp|tearDown|setUpTestCase|tearDownTestCase|setupSelf|tearDownClass|setUpClass|(test|assert)_*[A-Z0-9][a-zA-Z0-9_]*|next)|(?P_{0,2}[A-Z][a-zA-Z0-9_]*)|(?P_{0,2}[a-z][a-z0-9_]*))$ + +# Regular expression which should only match function or class names that do +# not require a docstring. +no-docstring-rgx=(__.*__|main|test.*|.*test|.*Test)$ + +# Minimum line length for functions/classes that require docstrings, shorter +# ones are exempt. +docstring-min-length=12 + + +[TYPECHECK] + +# List of decorators that produce context managers, such as +# contextlib.contextmanager. Add to this list to register other decorators that +# produce valid context managers. +contextmanager-decorators=contextlib.contextmanager,contextlib2.contextmanager + +# List of module names for which member attributes should not be checked +# (useful for modules/projects where namespaces are manipulated during runtime +# and thus existing member attributes cannot be deduced by static analysis. It +# supports qualified module names, as well as Unix pattern matching. +ignored-modules= + +# List of class names for which member attributes should not be checked (useful +# for classes with dynamically set attributes). This supports the use of +# qualified names. +ignored-classes=optparse.Values,thread._local,_thread._local + +# List of members which are set dynamically and missed by pylint inference +# system, and so shouldn't trigger E1101 when accessed. Python regular +# expressions are accepted. +generated-members= + + +[FORMAT] + +# Maximum number of characters on a single line. +max-line-length=80 + +# TODO(https://github.com/pylint-dev/pylint/issues/3352): Direct pylint to exempt +# lines made too long by directives to pytype. + +# Regexp for a line that is allowed to be longer than the limit. +ignore-long-lines=(?x)( + ^\s*(\#\ )??$| + ^\s*(from\s+\S+\s+)?import\s+.+$) + +# Allow the body of an if to be on the same line as the test if there is no +# else. +single-line-if-stmt=yes + +# Maximum number of lines in a module +max-module-lines=99999 + +# String used as indentation unit. The internal Google style guide mandates 2 +# spaces. Google's externaly-published style guide says 4, consistent with +# PEP 8. Here, we use 2 spaces, for conformity with many open-sourced Google +# projects (like TensorFlow). +# This software will use 4... +indent-string=' ' + +# Number of spaces of indent required inside a hanging or continued line. +indent-after-paren=4 + +# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. +expected-line-ending-format= + + +[MISCELLANEOUS] + +# List of note tags to take in consideration, separated by a comma. +notes=TODO + + +[STRING] + +# This flag controls whether inconsistent-quotes generates a warning when the +# character used as a quote delimiter is used inconsistently within a module. +check-quote-consistency=yes + + +[VARIABLES] + +# Tells whether we should check for unused import in __init__ files. +init-import=no + +# A regular expression matching the name of dummy variables (i.e. expectedly +# not used). +dummy-variables-rgx=^\*{0,2}(_$|unused_|dummy_) + +# List of additional names supposed to be defined in builtins. Remember that +# you should avoid to define new builtins when possible. +additional-builtins= + +# List of strings which can identify a callback function by name. A callback +# name must start or end with one of those strings. +callbacks=cb_,_cb + +# List of qualified module names which can have objects that can redefine +# builtins. +redefining-builtins-modules=six,six.moves,past.builtins,future.builtins,functools + + +[LOGGING] + +# Logging modules to check that the string format arguments are in logging +# function parameter format +logging-modules=logging,absl.logging,tensorflow.io.logging + + +[SIMILARITIES] + +# Minimum lines number of a similarity. +min-similarity-lines=4 + +# Ignore comments when computing similarities. +ignore-comments=yes + +# Ignore docstrings when computing similarities. +ignore-docstrings=yes + +# Ignore imports when computing similarities. +ignore-imports=no + + +[SPELLING] + +# Spelling dictionary name. Available dictionaries: none. To make it working +# install python-enchant package. +spelling-dict= + +# List of comma separated words that should not be checked. +spelling-ignore-words= + +# A path to a file that contains private dictionary; one word per line. +spelling-private-dict-file= + +# Tells whether to store unknown words to indicated private dictionary in +# --spelling-private-dict-file option instead of raising a message. +spelling-store-unknown-words=no + + +[IMPORTS] + +# Deprecated modules which should not be used, separated by a comma +deprecated-modules=regsub, + TERMIOS, + Bastion, + rexec, + sets + +# Create a graph of every (i.e. internal and external) dependencies in the +# given file (report RP0402 must not be disabled) +import-graph= + +# Create a graph of external dependencies in the given file (report RP0402 must +# not be disabled) +ext-import-graph= + +# Create a graph of internal dependencies in the given file (report RP0402 must +# not be disabled) +int-import-graph= + +# Force import order to recognize a module as part of the standard +# compatibility libraries. +known-standard-library= + +# Force import order to recognize a module as part of a third party library. +known-third-party=enchant, absl + +# Analyse import fallback blocks. This can be used to support both Python 2 and +# 3 compatible code, which means that the block might have code that exists +# only in one or another interpreter, leading to false positives when analysed. +analyse-fallback-blocks=no + + +[CLASSES] + +# List of method names used to declare (i.e. assign) instance attributes. +defining-attr-methods=__init__, + __new__, + setUp + +# List of member names, which should be excluded from the protected access +# warning. +exclude-protected=_asdict, + _fields, + _replace, + _source, + _make + +# List of valid names for the first argument in a class method. +valid-classmethod-first-arg=cls, + class_ + +# List of valid names for the first argument in a metaclass class method. +valid-metaclass-classmethod-first-arg=mcs diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..c0230fd --- /dev/null +++ b/requirements.txt @@ -0,0 +1,6 @@ +pyzmq +dearpygui +numpy +scipy +pint +psutil \ No newline at end of file diff --git a/requirements_pi.txt b/requirements_pi.txt new file mode 100644 index 0000000..9012551 --- /dev/null +++ b/requirements_pi.txt @@ -0,0 +1,11 @@ +pyzmq +numpy +scipy +pint +adafruit-blinka +adafruit-circuitpython-max31855 +adafruit-circuitpython-bitbangio +adafruit-circuitpython-tca9548a +cedargrove-nau7802 +RPi.GPIO +psutil \ No newline at end of file diff --git a/sensors.cfg b/sensors.cfg new file mode 100644 index 0000000..a3fbc84 --- /dev/null +++ b/sensors.cfg @@ -0,0 +1,98 @@ +[Thrust Sensor] +ID = 1 +Type = THRUST +Rate = 80 + +[Tank Mass] +ID = 2 +Type = TANK_MASS + +[Thermocouple 1] +ID = 3 +Type = THERMOCOUPLE +Rate = 10 +Number = 1 +Tab = 3 + +[Thermocouple 2] +ID = 4 +Type = THERMOCOUPLE +Rate = 10 +Number = 2 +Tab = 3 + +[Thermocouple 3] +ID = 5 +Type = THERMOCOUPLE +Rate = 10 +Number = 3 +Tab = 3 + +[Thermocouple 4] +ID = 6 +Type = THERMOCOUPLE +Rate = 10 +Number = 4 +Tab = 3 + +[Thermocouple 5] +ID = 7 +Type = THERMOCOUPLE +Rate = 10 +Number = 5 +Tab = 2 + +[Tank Pressure] +ID = 8 +Type = TANK_PRESSURE +Rate = 200 + +[CC Pressure] +ID = 9 +Type = CC_PRESSURE +Rate = 400 + +[Main Battery Level] +ID = 10 +Type = BATTERY_LEVEL +Rate = 10 +Tab = 2 +Number = 1 + +[Tank Load Cell 1] +ID = 11 +Type = LOAD_CELL +Rate = 80 +Number = 1 +Tab = 2 + +[Tank Load Cell 2] +ID = 12 +Type = LOAD_CELL +Rate = 80 +Number = 2 +Tab = 2 + +[Tank Load Cell 3] +ID = 13 +Type = LOAD_CELL +Rate = 80 +Number = 3 +Tab = 2 + +[Fuel Valve Throttle] +ID = 14 +Type = FUEL_VALVE_THROTTLE +Rate = 80 + +[Oxidizer Valve Throttle] +ID = 15 +Type = OXIDIZER_VALVE_THROTTLE +Rate = 80 + +[Servo Battery Level] +ID = 16 +Type = BATTERY_LEVEL +#Rate = 10 +Tab = 2 +Number = 2 \ No newline at end of file diff --git a/start_camera.sh b/start_camera.sh new file mode 100644 index 0000000..4598c44 --- /dev/null +++ b/start_camera.sh @@ -0,0 +1,3 @@ +adb forward tcp:8080 tcp:8080 +screen -S gnirehtet -dm bash -c 'gnirehtet run; exec sh' +screen -S socat -dm socat tcp-listen:8081,reuseaddr,fork tcp:localhost:8080 diff --git a/start_controller.sh b/start_controller.sh new file mode 100644 index 0000000..8547ff3 --- /dev/null +++ b/start_controller.sh @@ -0,0 +1,6 @@ +./fix_perms.sh +cd Controller +taskset -c 3 python3.11 main.py "$@" --dest ${SSH_CLIENT%% *} & +sudo renice -n -20 -p $! +sudo cpufreq-set -r --governor performance +wait diff --git a/start_pigpiod.sh b/start_pigpiod.sh new file mode 100644 index 0000000..4abe98f --- /dev/null +++ b/start_pigpiod.sh @@ -0,0 +1 @@ +sudo nice -n -20 taskset -c 2 pigpiod diff --git a/zerolib/__init__.py b/zerolib/__init__.py new file mode 100644 index 0000000..7a61f12 --- /dev/null +++ b/zerolib/__init__.py @@ -0,0 +1 @@ +LIB_VERSION_STRING = "v1.0" \ No newline at end of file diff --git a/zerolib/ads1120.py b/zerolib/ads1120.py new file mode 100644 index 0000000..9e00823 --- /dev/null +++ b/zerolib/ads1120.py @@ -0,0 +1,107 @@ +""" High throughput ADS1120 driver. + +Does not support all chip features. This driver runs the chip in "turbo mode" +with all inputs assumed to be single-ended, and an analog vref provided. +""" +import time + +from adafruit_bus_device.spi_device import SPIDevice +from busio import SPI +from digitalio import DigitalInOut + +CMD_NOP = 0xFF +CMD_WREG = 0x40 +CMD_RREG = 0x20 +CMD_RESET = 0x06 +CMD_START_SYNC = 0x08 + +class ADS1120: + """ Baseline high-throughput ADS1120 driver. + + Does not support all features on the chip. This particular driver runs the + ADC in turbo mode at 2k SPS. The gain is set to 1 and the PGA bypassed. No + 50/60 Hz rejection is performed and the voltage reference is set to AVDD. + + Many implementations seem to add random delays everywhere. They are not + necessary except after the chip resets and in order to give the chip time to + acquire a new reading. + """ + def __init__(self, spi : SPI, cs : DigitalInOut): + # IMPORTANT: phase=1 + self.dev = SPIDevice(spi, cs, baudrate=1000000, phase=1) + + # Remember the multiplexer state, switch if necessary to perform a read. + self.mux_state = None + + def initialize(self): + self.reset() + # Chip needs 50us, we will give it 1ms + time.sleep(0.001) + + # REG0: MUX[3:0], GAIN[2:0], PGA_BYPASS + self.write_register(0, 0b10000001) + # REG1: DR[2:0], MODE[1:0], CM, TS, BCS + self.write_register(1, 0b11010100) + # REG2: VREF[1:0], 50/60[1:0], PSW, IDAC[2:0] + self.write_register(2, 0b11000000) + # REG3: I1MUX[2:0], I2MUC[2:0], DRDYM, 0 + # Defaults are ok. + + self.start_sync() + + def read(self, mux_state): + if self.mux_state != mux_state: + self.set_multiplexer(mux_state) + time.sleep(1/1800) # Allow the sensor time to acquire a reading + + return self._read() + + def reset(self): + self.send_command(CMD_RESET) + + def start_sync(self): + self.send_command(CMD_START_SYNC) + + def _read(self): + rdata = bytearray(2) + + with self.dev as spi: + spi.readinto(rdata, write_value=CMD_NOP) + + val = (rdata[0] << 8) | rdata[1] + return val / 2**15 * 5 # Converted to voltage + + def read_register(self, address): + recv = bytearray(1) + + with self.dev as spi: + spi.write([ (address<<2) | CMD_RREG ]) + spi.readinto(recv, write_value=CMD_NOP) + + return recv[0] + + def send_command(self, cmd): + with self.dev as spi: + spi.write([cmd]) + + def write_register(self, address, byte): + with self.dev as spi: + spi.write([ + (address<<2) | CMD_WREG, + byte + ]) + + def print_registers(self): + reg0 = self.read_register(0) + reg1 = self.read_register(1) + reg2 = self.read_register(2) + reg3 = self.read_register(3) + print("----REGISTERS----") + print(reg0, reg1, reg2, reg3) + + def set_multiplexer(self, value): + if not isinstance(value, int) or not 0 <= value <= 3: + raise RuntimeError(f"Bad mux value {value}.") + + self.mux_state = value + self.write_register(0, 0b10000001 + (value<<4)) \ No newline at end of file diff --git a/zerolib/communications.py b/zerolib/communications.py new file mode 100644 index 0000000..489e22a --- /dev/null +++ b/zerolib/communications.py @@ -0,0 +1,302 @@ +"""Handles communications between the controller and monitor software. + +The communications library defines the MessageServer class, used to create a +bidrectional link between two applications. The link is powered by a PyZMQ +socket. Only zerolib.Message instances can be sent across the link. The messages +are serialized to a bytearray before transmission to save bandwidth (data is not +sent as plaintext). +""" +import zmq +import time +import logging +import traceback + +from threading import Thread, Event +from queue import Queue + +from zerolib.message import Message, MessageType + +logger = logging.getLogger(__name__) + +# Heartbeat constants +PING_BYTES = b"ZERO PING" +HEARTBEAT_HZ = 10 + +# Default port mappings +DEFAULT_MONITOR_PORT = 9376 +DEFAULT_CONTROLLER_PORT = 9378 + +class ThreadedBidirectionalSocket: + """ Threaded wrapper around a PyZMQ socket. + + PyZMQ sockets are not thread-safe so they cannot be used by more than one + thread. This class solves this issue by caching send/recv operations into + a queue (caching operations are thread-safe) and executing them in a single + thread. + + Caching is done in the send_queue and receive_queue. Incoming requests + are detected by the Poller object and then pushed to the receive_queue. + Outgoing requests are cached to the send_queue and pushed as fast as + possible. + + NOTE: Binding the socket or connecting to a destination should be done + before creating an instance. + """ + + def __init__(self, context): + self.context = context + self.host = None + self.dest = None + + self.send_queue = Queue() + self.receive_queue = Queue() + + self.push_thread = None + self.pull_thread = None + self.running = False + + def send(self, msg): + self.send_queue.put(msg) + + def recv(self): + return self.receive_queue.get() + + def bind(self, host): + if self.running: + raise RuntimeError("Attempted to bind socket while it is running!") + self.host = host + + def connect(self, dest): + if self.running: + raise RuntimeError("Attempted to connect socket while it is running!") + self.dest = dest + + def recv_loop(self): + pull_socket = self.context.socket(zmq.PULL) + pull_socket.setsockopt(zmq.CONFLATE, 1) + + if self.host: + pull_socket.bind(self.host[0]) + elif self.dest: + pull_socket.connect(self.dest[1]) + + while self.running: + self.receive_queue.put(pull_socket.recv()) + + def send_loop(self): + push_socket = self.context.socket(zmq.PUSH) + push_socket.setsockopt(zmq.CONFLATE, 1) + push_socket.setsockopt(zmq.IMMEDIATE, 1) + + if self.host: + push_socket.bind(self.host[1]) + elif self.dest: + push_socket.connect(self.dest[0]) + + while self.running: + push_socket.send(self.send_queue.get()) + + def run(self): + if not self.host and not self.dest: + raise RuntimeError("Attempted to spawn an unconnected socket!") + + self.push_thread = Thread( + target=self.send_loop, + daemon=True, name="ThreadedSocketPushThread" + ) + self.pull_thread = Thread( + target=self.recv_loop, + daemon=True, name="ThreadedSocketPullThread" + ) + self.running = True + self.push_thread.start() + self.pull_thread.start() + + def stop(self): + self.running = False + self.push_thread.join() + self.pull_thread.join() + + +class MessageServer: + """ + Bidirectional Zero MQ server. Both the controller and monitor run an + instance of this class to communicate. A simple zmq pair type socket is used + instead of a traditional TCP socket. + + NOTE: Zero MQ sockets are **NOT** thread-safe!! So, socket operations must + be handled by a single thread. To facilitate this, a ThreadedSocket object + is used, which is just a zmq Socket wrapped in a send/receive queue. + """ + def __init__(self, host=None, port=None, timeout=0.5): + # Create a ZMQ context, allowing up to 4 threads to be used for I/O + self.context = zmq.Context(4) + self.socket = ThreadedBidirectionalSocket(self.context) + + # Only the server needs to bind to a port + if host and port: + self.socket.bind([ + f"tcp://{host}:{port}", + f"tcp://{host}:{port+1}" + ]) + logger.info(f"Server running at {host}, ports {port}, {port+1}.") + else: + logger.info("Client ZMQ socket initialized.") + + # Function hooks on request or connection status change + self.request_hook = None + self.connection_hook = None + + # Used to determine connection status changes + self.connection_event = Event() + self.last_msg_time = 0 + self.timeout = timeout + self.connection_status = False + + # Three threads are required for server operation. The self.running + # variable is continutally checked against within the thread loops. + # Setting it to false will terminate threads. + self.threads = [None, None, None] + self.running = False # Lock not required, Python assignments are atomic. + + def connect(self, host, port): + """ + Connect to another MessageServer. + """ + self.socket.connect([ + f"tcp://{host}:{port}", + f"tcp://{host}:{port+1}" + ]) + logger.info(f"Connecting to {host}, ports {port}, {port+1}...") + + def dispatch(self, msg, log=True): + """ + Send a zerolib.Message to another MessageServer. + """ + try: + self.socket.send(msg.to_bytes()) + except: + logger.error("Error sending message.") + self.format_traceback() + + if log and msg.get_type() != MessageType.SENSOR_DATA: + logger.debug(f"Sent message of type {msg.get_type()}.") + + def register_request_hook(self, fn): + self.request_hook = fn + logger.info("Registered request hook.") + + def register_connection_hook(self, fn): + self.connection_hook = fn + logger.info("Registered connection hook.") + + def format_traceback(self): + print() + print("-"*10 + " TRACEBACK " + "-"*10) + print(traceback.format_exc()) + print("-"*31) + print() + + def update_connection_hook(self, status): + if self.connection_hook: + try: + self.connection_hook(status) + except: + logger.error( + "Error calling connection status hook with status {status}." + ) + self.format_traceback() + + def connection_polling_loop(self): + """ + The code waits until the connection event is triggered, executes the + connection hook if it exists, then it sleeps for the timeout duration and + if the connection has been dropped, it runs the appropriate callback. + """ + while self.running: + # Blocks until the event is triggered by the receiver loop + self.connection_event.wait() + + logger.info("Client connected.") + self.connection_status = True + self.update_connection_hook(True) + + while self.running: + # Sleep for self.timeout seconds. If no message has been received + # within the timespan, consider the connection to be timed out. + time.sleep(self.timeout) + + if time.perf_counter() - self.last_msg_time > self.timeout: + self.connection_event.clear() + logger.warning("Client timed out.") + self.connection_status = False + self.update_connection_hook(False) + break + + def receiver_loop(self): + """ + Main receiver loop. The code blocks until a message has been received by + the ZMQ socket. Then, if it is a simple ping message, it is ignored. + Otherwise, attempt to deserialize the bytes into a Message instance. + """ + while self.running: + # Blocks until a message has been received + msg_bytes = self.socket.recv() + + # Update the connection status + self.connection_event.set() + self.last_msg_time = time.perf_counter() + + if msg_bytes == PING_BYTES: + # This is just a heartbeat signal, don't proceed + continue + + try: + msg = Message.from_bytes(msg_bytes) + except: + logger.error("Error decoding message.") + # Dump the traceback into the console for debugging + self.format_traceback() + return + + # Execute the callback with the deserialized message + if self.request_hook: + try: + self.request_hook(msg) + except: + logger.error( + f"Failed to execute request hook on {msg.get_type()}." + ) + self.format_traceback() + + def heartbeat_loop(self): + """ + Continously ping the other server. + """ + while self.running: + self.socket.send(PING_BYTES) + time.sleep(1/HEARTBEAT_HZ) + + def run(self): + self.threads = [ + Thread( + target=self.connection_polling_loop, + daemon=True, name="MessageServerPollingThread" + ), + Thread( + target=self.receiver_loop, + daemon=True, name="MessageServerReceivingThread" + ), + Thread( + target=self.heartbeat_loop, + daemon=True, name="MessageServerHeartbeatThread" + ) + ] + self.running = True + self.socket.run() + [thd.start() for thd in self.threads] + + def stop(self): + self.running = False + [thd.join() for thd in self.threads] + self.socket.stop() diff --git a/zerolib/datalogging.py b/zerolib/datalogging.py new file mode 100644 index 0000000..8ad4dcc --- /dev/null +++ b/zerolib/datalogging.py @@ -0,0 +1,66 @@ +""" Datalogging class. Resistant to ctrl-c or process termination. Thread-safe. + +Also implements the LogLogger class for writing logs to disk. +""" +import zlib +import datetime +import logging + +from threading import Thread +from queue import Queue, Empty + +class DataLogger: + def __init__(self, filename=None, debug=False, prefix=None): + if not filename: + filename = datetime.datetime.today().strftime('%Y %b %d %I.%M %p') + + if debug: + filename = f"DEBUG {filename}.csv.gz" + else: + filename = f"{filename}.csv.gz" + + if prefix: + filename = f"{prefix} {filename}" + + self.filename = filename + self.data_queue = Queue() + self.thread = None + self.running = False + + def add_row(self, row): + self.data_queue.put((row + "\n").encode()) + + def mainloop(self): + compressor = zlib.compressobj(level=3) + + with open(f"Data/{self.filename}", mode="wb") as file: + while self.running: + try: + file.write(compressor.compress(self.data_queue.get(timeout=1))) + except Empty: + pass + file.write(compressor.flush()) + + def start(self): + self.thread = Thread(target=self.mainloop, name="DataLoggerThread", daemon=True) + self.running = True + self.thread.start() + + def close(self): + self.running = False + self.thread.join() + + +class LogLogger(logging.Handler, DataLogger): + """ Write all logs to disk. + + """ + def __init__(self, filename=None, debug=False): + DataLogger.__init__(self, filename, debug, "LOG") + logging.Handler.__init__(self) + + def cleanup(self): + DataLogger.close(self) + + def handle(self, record): + self.add_row(self.format(record)) diff --git a/zerolib/enums.py b/zerolib/enums.py new file mode 100644 index 0000000..7491391 --- /dev/null +++ b/zerolib/enums.py @@ -0,0 +1,109 @@ +""" Standard enums used by zerolib. + +Common enums are stored here. +""" +from enum import Enum + +### MESSAGE TYPES +class MessageType(Enum): + SENSOR_DATA = 1 + ACTION = 2 + NOTIFICATION = 3 + ENGINE_PROGRAM_SETTINGS = 4 + +### ACTIONS +class ActionType(Enum): + OPEN_FILL = 1 + CLOSE_FILL = 2 + ENABLE_TANK_HEATING = 3 + DISABLE_TANK_HEATING = 4 + FIRE_IGNITOR = 5 + SAFE_IGNITOR = 6 + BEGIN_BURN_PHASE = 7 + ABORT_BURN_PHASE = 8 + ABORT = 9 + OPEN_VENT = 10 + CLOSE_VENT = 11 + +### SENSORS +class SensorType(Enum): + THRUST = 1 + TANK_MASS = 2 + THERMOCOUPLE = 3 + TANK_PRESSURE = 4 + CC_PRESSURE = 5 + BATTERY_LEVEL = 6 + LOAD_CELL = 7 + FUEL_VALVE_THROTTLE = 8 + OXIDIZER_VALVE_THROTTLE = 9 + MDOT = 10 + +# The first value is used for logging and communications, as well as the default +# for plotting. +SENSOR_UNITS = { + SensorType.THRUST : ["lbf", "kN"], + SensorType.TANK_MASS : ["kg", "lb"], + SensorType.THERMOCOUPLE : ["degC", "K"], + SensorType.TANK_PRESSURE : ["psi", "MPa", "bar"], + SensorType.CC_PRESSURE : ["psi", "MPa", "bar"], + SensorType.BATTERY_LEVEL : ["dimensionless"], + SensorType.LOAD_CELL : ["kg", "lb"], + SensorType.FUEL_VALVE_THROTTLE : ["dimensionless"], + SensorType.OXIDIZER_VALVE_THROTTLE : ["dimensionless"], + SensorType.MDOT : ["kg/s", "g/s"] +} + +# The range should be specified in the default units. +SENSOR_RANGE = { + SensorType.THRUST : [-20, 220], + SensorType.TANK_MASS : [0, 35], + SensorType.THERMOCOUPLE : [-20, 300], + SensorType.TANK_PRESSURE : [0, 1000], + SensorType.CC_PRESSURE : [0, 300], + SensorType.BATTERY_LEVEL : [0, 100], + SensorType.LOAD_CELL : [0, 10], + SensorType.FUEL_VALVE_THROTTLE : [0, 1], + SensorType.OXIDIZER_VALVE_THROTTLE : [0, 1], + SensorType.MDOT : [0, 1] +} + +# Standard deviation of measured noise in default units. +SENSOR_NOISE = { + SensorType.THRUST : 1, + SensorType.TANK_MASS : 0.1, + SensorType.THERMOCOUPLE : 0.1, + SensorType.TANK_PRESSURE : 10, + SensorType.CC_PRESSURE : 3, + SensorType.BATTERY_LEVEL : 1, + SensorType.LOAD_CELL : 0.1, + SensorType.FUEL_VALVE_THROTTLE : 0, + SensorType.OXIDIZER_VALVE_THROTTLE : 0, + SensorType.MDOT : 0.01 +} + +# The type of the raw reading supplied by the sensor board. See the +# documentation for the python library 'struct' for information about the type. +SENSOR_READING_TYPE = { + SensorType.THRUST : "I", + SensorType.THERMOCOUPLE : "H", + SensorType.TANK_PRESSURE : "H", + SensorType.CC_PRESSURE : "H", + SensorType.BATTERY_LEVEL : "H", + SensorType.LOAD_CELL : "I" + +} + +def get_default_sensor_units(u): + return { + stype : u( SENSOR_UNITS[stype][0] ) for stype in SensorType + } + +def get_estimated_sensor_noise(u): + du = get_default_sensor_units(u) + #for stype in du: + # if du[stype].is_compatible_with(u("K")): + # du[stype] = u(f"delta_{str(du[stype].units)}") + + return { + stype : u.Quantity(SENSOR_NOISE[stype], du[stype]) for stype in SensorType + } diff --git a/zerolib/message.py b/zerolib/message.py new file mode 100644 index 0000000..4a5236f --- /dev/null +++ b/zerolib/message.py @@ -0,0 +1,192 @@ +""" Defines the Message ABC and its implementations. + +These messages are transmitted over a MessageServer. Messages can be serialized +and deserialized for lower bandwidth requirements. The following message types +exist: + SensorDataMessage - Arbitrary length message containing sensor datapoints. + ActionMessage - Carries only an item from the ActionType enum. + NotificationMessage - Carries a string. Encoded/decoded with UTF-8. +""" +import struct +import logging + +from abc import ABC, abstractmethod + +from zerolib.enums import MessageType, ActionType, SENSOR_READING_TYPE + +logger = logging.getLogger(__name__) + +# Each sensor data point is formatted as follows: +# Byte 1: Sensor ID (uchar8) +# Byte 2-5: Sensor Reading (float64) +SENSOR_DATA_FORMAT = struct.Struct(" str: + return self.name + + def get_type(self) -> SensorType: + return self.type + + def get_id(self) -> int: + return self.s_id + + def get_rate(self) -> int | None: + return self.rate + + def get_number(self) -> int | None: + return self.number + + def get_tab(self) -> int: + return self.tab + + def get_units(self) -> list[str]: + return SENSOR_UNITS[self.type] + + def get_range(self) -> list[float]: + return SENSOR_RANGE[self.type] + + def get_noise(self) -> float: + return SENSOR_NOISE[self.type] + + def get_reading_type(self) -> str: + return SENSOR_READING_TYPE[self.type] diff --git a/zerolib/signal.py b/zerolib/signal.py new file mode 100644 index 0000000..760b1d4 --- /dev/null +++ b/zerolib/signal.py @@ -0,0 +1,47 @@ +""" Real-time data interpretation algorithms. +""" +import numpy as np + +from scipy import signal + +def ema(arr, k=0.3): + ret = [arr[0]] + for x in arr[1:]: + ret.append(x * k + ret[-1] * (1-k)) + return np.array(ret) + +def get_crit_freq(sr): + return (sr/1000)**0.5 * 5 + +class GenericSensorDenoiser: + """ Denoising algorithms for analog sensors. + + """ + def __init__(self, sample_rate): + self.freq = sample_rate + self.filter = signal.butter(3, get_crit_freq(sample_rate), output="sos", fs=sample_rate) + self.lookback = max(int(self.freq**0.75), 20) + + self.signal = [] + self.filtered_signal = [] + + def update(self, y): + if not self.signal: + self.signal = [y for _ in range(self.lookback)] + + self.signal.append(y) + sample = self.signal[-self.lookback:] + + output = signal.sosfiltfilt(self.filter, sample)[-1] + self.filtered_signal.append(output) + + return output + + def get_value(self): + if self.filtered_signal: + return self.filtered_signal[-1] + else: + return 0 + + def get_curve(self): + return self.filtered_signal \ No newline at end of file diff --git a/zerolib/standard.py b/zerolib/standard.py new file mode 100644 index 0000000..9c5e9cf --- /dev/null +++ b/zerolib/standard.py @@ -0,0 +1,31 @@ +""" +This file contains code which appears across the Monitor/Controller codebases +for the purpose of standardization. +""" +import os +import logging + +logging_config = { + "format" : "%(asctime)s | %(levelname)s: %(message)s [%(name)s line %(lineno)d in %(threadName)s]", + "level" : logging.INFO, + "datefmt" : "%m/%d/%Y %I:%M:%S %p" +} + +formatter_config = { + "fmt" : logging_config["format"], + "datefmt" : logging_config["datefmt"] +} + +def get_sensor_cfg_location(): + """ + The sensors.cfg file is intended to be in the root directory, so just + recurse backwards until it exists. + """ + path = "." + + while "sensors.cfg" not in os.listdir(path): + path = f"../{path}" + + return path[:-1] + "sensors.cfg" + +sensor_cfg_location = get_sensor_cfg_location()