From fe857e08138132d77be06497e29a3c7c5a9fcee9 Mon Sep 17 00:00:00 2001 From: thetazero Date: Fri, 21 Oct 2022 17:52:36 -0400 Subject: [PATCH 1/3] Initial config work --- .../applications/example/StateMachineConfig.py | 2 +- .../applications/example/{config.py => states.py} | 0 .../applications/flight/StateMachineConfig.py | 2 +- .../applications/flight/application_config.py | 7 +++++++ .../applications/flight/{config.py => states.py} | 0 state_machine/drivers/emulation/config/driver.py | 8 ++++++++ state_machine/drivers/emulation/lib/pycubed.py | 9 ++++----- state_machine/drivers/pycubedmini/config/driver.py | 8 ++++++++ state_machine/drivers/pycubedmini/lib/pycubed.py | 11 +++++------ state_machine/frame/config/__init__.py | 14 ++++++++++++++ 10 files changed, 48 insertions(+), 13 deletions(-) rename state_machine/applications/example/{config.py => states.py} (100%) create mode 100644 state_machine/applications/flight/application_config.py rename state_machine/applications/flight/{config.py => states.py} (100%) create mode 100644 state_machine/drivers/emulation/config/driver.py create mode 100644 state_machine/drivers/pycubedmini/config/driver.py create mode 100644 state_machine/frame/config/__init__.py diff --git a/state_machine/applications/example/StateMachineConfig.py b/state_machine/applications/example/StateMachineConfig.py index ed80a648..63a20772 100644 --- a/state_machine/applications/example/StateMachineConfig.py +++ b/state_machine/applications/example/StateMachineConfig.py @@ -5,7 +5,7 @@ from TransitionFunctions import announcer -from config import config # noqa: F401 +from states import config # noqa: F401 TaskMap = { 'Battery': battery, diff --git a/state_machine/applications/example/config.py b/state_machine/applications/example/states.py similarity index 100% rename from state_machine/applications/example/config.py rename to state_machine/applications/example/states.py diff --git a/state_machine/applications/flight/StateMachineConfig.py b/state_machine/applications/flight/StateMachineConfig.py index 7d27e850..f571dacf 100644 --- a/state_machine/applications/flight/StateMachineConfig.py +++ b/state_machine/applications/flight/StateMachineConfig.py @@ -6,7 +6,7 @@ from Tasks.gnc import task as gnc from Tasks.radio import task as radio from TransitionFunctions import announcer, low_power_on, low_power_off -from config import config # noqa: F401 +from states import config # noqa: F401 TaskMap = { "Safety": safety, diff --git a/state_machine/applications/flight/application_config.py b/state_machine/applications/flight/application_config.py new file mode 100644 index 00000000..4d8f4032 --- /dev/null +++ b/state_machine/applications/flight/application_config.py @@ -0,0 +1,7 @@ +driver_config = { + "LOW_VOLTAGE": 69, +} + +application_config = { + "TEST": 69, +} diff --git a/state_machine/applications/flight/config.py b/state_machine/applications/flight/states.py similarity index 100% rename from state_machine/applications/flight/config.py rename to state_machine/applications/flight/states.py diff --git a/state_machine/drivers/emulation/config/driver.py b/state_machine/drivers/emulation/config/driver.py new file mode 100644 index 00000000..765bdb90 --- /dev/null +++ b/state_machine/drivers/emulation/config/driver.py @@ -0,0 +1,8 @@ +driver_config = { + "FREQ": 433, + "LOW_VOLTAGE": 3.0, + # Max opperating temp on specsheet for ATSAMD51J19A (Celsius) + "HIGH_TEMP": 125, + # Min opperating temp on specsheet for ATSAMD51J19A (Celsius) + "LOW_TEMP": -40, +} diff --git a/state_machine/drivers/emulation/lib/pycubed.py b/state_machine/drivers/emulation/lib/pycubed.py index 03f6b017..7fd5fc85 100644 --- a/state_machine/drivers/emulation/lib/pycubed.py +++ b/state_machine/drivers/emulation/lib/pycubed.py @@ -1,5 +1,6 @@ import time import tasko +import config import lib.reader as reader try: @@ -54,12 +55,10 @@ class Satellite: BOOTTIME = time.monotonic() data_cache = {} - # Max opperating temp on specsheet for ATSAMD51J19A (Celsius) - HIGH_TEMP = 125 - # Min opperating temp on specsheet for ATSAMD51J19A (Celsius) - LOW_TEMP = -40 - # Low battery voltage threshold LOW_VOLTAGE = 4.0 + LOW_VOLTAGE = config.driver_config['LOW_VOLTAGE'] + HIGH_TEMP = config.driver_config['HIGH_TEMP'] + LOW_TEMP = config.driver_config['LOW_TEMP'] def __init__(self): self.task = None diff --git a/state_machine/drivers/pycubedmini/config/driver.py b/state_machine/drivers/pycubedmini/config/driver.py new file mode 100644 index 00000000..765bdb90 --- /dev/null +++ b/state_machine/drivers/pycubedmini/config/driver.py @@ -0,0 +1,8 @@ +driver_config = { + "FREQ": 433, + "LOW_VOLTAGE": 3.0, + # Max opperating temp on specsheet for ATSAMD51J19A (Celsius) + "HIGH_TEMP": 125, + # Min opperating temp on specsheet for ATSAMD51J19A (Celsius) + "LOW_TEMP": -40, +} diff --git a/state_machine/drivers/pycubedmini/lib/pycubed.py b/state_machine/drivers/pycubedmini/lib/pycubed.py index 9b508e08..1ac14f72 100644 --- a/state_machine/drivers/pycubedmini/lib/pycubed.py +++ b/state_machine/drivers/pycubedmini/lib/pycubed.py @@ -21,6 +21,7 @@ import time import tasko from ulab.numpy import array +import config class device: """ @@ -73,17 +74,15 @@ class _Satellite: c_downlink = multiBitFlag(register=_DWNLINK, lowest_bit=0, num_bits=8) c_logfail = multiBitFlag(register=_LOGFAIL, lowest_bit=0, num_bits=8) - UHF_FREQ = 401.82 + UHF_FREQ = config.driver_config['FREQ'] instance = None data_cache = {} # Satellite attributes - LOW_VOLTAGE = 3.0 - # Max opperating temp on specsheet for ATSAMD51J19A (Celsius) - HIGH_TEMP = 125 - # Min opperating temp on specsheet for ATSAMD51J19A (Celsius) - LOW_TEMP = -40 + LOW_VOLTAGE = config.driver_config['LOW_VOLTAGE'] + HIGH_TEMP = config.driver_config['HIGH_TEMP'] + LOW_TEMP = config.driver_config['LOW_TEMP'] def __new__(cls): """ diff --git a/state_machine/frame/config/__init__.py b/state_machine/frame/config/__init__.py new file mode 100644 index 00000000..d491b0bd --- /dev/null +++ b/state_machine/frame/config/__init__.py @@ -0,0 +1,14 @@ +from email.mime import application +from config.driver import driver_config as dc + +driver_config = dc +application_config = {} +try: + import application_config as ac + if hasattr(ac, 'application_config'): + application_config = ac.application_config + if hasattr(ac, 'driver_config'): + for param in ac.driver_config: + driver_config[param] = ac.driver_config[param] +except ImportError: + print('No application config found') From 85bba9ab492ee417fece5b7aa1129e94370fb9f8 Mon Sep 17 00:00:00 2001 From: thetazero Date: Fri, 21 Oct 2022 17:55:30 -0400 Subject: [PATCH 2/3] Remove duplicated neopixel prop --- state_machine/drivers/emulation/lib/pycubed.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/state_machine/drivers/emulation/lib/pycubed.py b/state_machine/drivers/emulation/lib/pycubed.py index 7fd5fc85..4c0583b3 100644 --- a/state_machine/drivers/emulation/lib/pycubed.py +++ b/state_machine/drivers/emulation/lib/pycubed.py @@ -137,9 +137,5 @@ def imu(self): def neopixel(self): return True - @property - def neopixel(self): - return True - cubesat = Satellite() From a3566b42f82d73e30cb838182e6b0a9fbd4860c3 Mon Sep 17 00:00:00 2001 From: thetazero Date: Fri, 21 Oct 2022 17:56:04 -0400 Subject: [PATCH 3/3] lint fix --- state_machine/frame/config/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/state_machine/frame/config/__init__.py b/state_machine/frame/config/__init__.py index d491b0bd..f9e9353a 100644 --- a/state_machine/frame/config/__init__.py +++ b/state_machine/frame/config/__init__.py @@ -1,4 +1,3 @@ -from email.mime import application from config.driver import driver_config as dc driver_config = dc