Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
8aec6c48a0 | |||
cab0aa027a | |||
457ccf1ca0 | |||
fbb078784f | |||
f50aac689f |
@ -10,6 +10,12 @@ list yields a list of all related PRs for each release.
|
|||||||
|
|
||||||
# [unreleased]
|
# [unreleased]
|
||||||
|
|
||||||
|
# [v2.12.0] 2023-02-06
|
||||||
|
|
||||||
|
## Changed
|
||||||
|
|
||||||
|
- Updated the subsystem IDs to avoid value clashes with regular device handler mode IDs.
|
||||||
|
|
||||||
# [v2.11.0] 2023-02-06
|
# [v2.11.0] 2023-02-06
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
|
@ -3,10 +3,10 @@ from pathlib import Path
|
|||||||
|
|
||||||
SW_NAME = "eive-tmtc"
|
SW_NAME = "eive-tmtc"
|
||||||
VERSION_MAJOR = 2
|
VERSION_MAJOR = 2
|
||||||
VERSION_MINOR = 11
|
VERSION_MINOR = 12
|
||||||
VERSION_REVISION = 0
|
VERSION_REVISION = 0
|
||||||
|
|
||||||
__version__ = "2.11.0"
|
__version__ = "2.12.0"
|
||||||
|
|
||||||
EIVE_TMTC_ROOT = Path(__file__).parent
|
EIVE_TMTC_ROOT = Path(__file__).parent
|
||||||
PACKAGE_ROOT = EIVE_TMTC_ROOT.parent
|
PACKAGE_ROOT = EIVE_TMTC_ROOT.parent
|
||||||
|
@ -514,8 +514,6 @@ def handle_raw_mgm_data(pw: PrintWrapper, hk_data: bytes):
|
|||||||
for entry in zip(print_str_list, formatted_list):
|
for entry in zip(print_str_list, formatted_list):
|
||||||
pw.dlog(f"{entry[0].ljust(28)}: {entry[1]}")
|
pw.dlog(f"{entry[0].ljust(28)}: {entry[1]}")
|
||||||
current_idx += 1
|
current_idx += 1
|
||||||
if PERFORM_MGM_CALIBRATION:
|
|
||||||
perform_mgm_calibration(pw, mgm_0_lis3_floats_ut)
|
|
||||||
assert current_idx == 61
|
assert current_idx == 61
|
||||||
pw.printer.print_validity_buffer(hk_data[current_idx:], num_vars=6)
|
pw.printer.print_validity_buffer(hk_data[current_idx:], num_vars=6)
|
||||||
|
|
||||||
@ -528,31 +526,48 @@ def handle_mgm_data_processed(pw: PrintWrapper, hk_data: bytes):
|
|||||||
pw.dlog("Recieved HK set too small")
|
pw.dlog("Recieved HK set too small")
|
||||||
return
|
return
|
||||||
current_idx = 0
|
current_idx = 0
|
||||||
for i in range(5):
|
fmt_str = "!fff"
|
||||||
fmt_str = "!fff"
|
inc_len = struct.calcsize(fmt_str)
|
||||||
inc_len = struct.calcsize(fmt_str)
|
mgm_0 = struct.unpack(fmt_str, hk_data[current_idx: current_idx + inc_len])
|
||||||
mgm_vec = struct.unpack(fmt_str, hk_data[current_idx : current_idx + inc_len])
|
mgm_0_str = [f"{val:8.3f}" for val in mgm_0]
|
||||||
mgm_vec = [f"{val:8.3f}" for val in mgm_vec]
|
pw.dlog(f"MGM 0 Vec: {mgm_0_str}")
|
||||||
pw.dlog(f"MGM {i}: {mgm_vec}")
|
current_idx += inc_len
|
||||||
current_idx += inc_len
|
mgm_1 = struct.unpack(fmt_str, hk_data[current_idx: current_idx + inc_len])
|
||||||
|
mgm_1_str = [f"{val:8.3f}" for val in mgm_1]
|
||||||
|
pw.dlog(f"MGM 1 Vec: {mgm_1_str}")
|
||||||
|
current_idx += inc_len
|
||||||
|
mgm_2 = struct.unpack(fmt_str, hk_data[current_idx: current_idx + inc_len])
|
||||||
|
mgm_2_str = [f"{val:8.3f}" for val in mgm_2]
|
||||||
|
pw.dlog(f"MGM 2 Vec: {mgm_2_str}")
|
||||||
|
current_idx += inc_len
|
||||||
|
mgm_3 = struct.unpack(fmt_str, hk_data[current_idx: current_idx + inc_len])
|
||||||
|
mgm_3_str = [f"{val:8.3f}" for val in mgm_3]
|
||||||
|
pw.dlog(f"MGM 3 Vec: {mgm_3_str}")
|
||||||
|
current_idx += inc_len
|
||||||
|
mgm_4 = struct.unpack(fmt_str, hk_data[current_idx: current_idx + inc_len])
|
||||||
|
mgm_4_str = [f"{val:8.3f}" for val in mgm_4]
|
||||||
|
pw.dlog(f"MGM 4 Vec: {mgm_4_str}")
|
||||||
|
current_idx += inc_len
|
||||||
fmt_str = "!ddd"
|
fmt_str = "!ddd"
|
||||||
inc_len = struct.calcsize(fmt_str)
|
inc_len = struct.calcsize(fmt_str)
|
||||||
mgm_vec_tot = struct.unpack(fmt_str, hk_data[current_idx : current_idx + inc_len])
|
mgm_vec_tot = struct.unpack(fmt_str, hk_data[current_idx: current_idx + inc_len])
|
||||||
mgm_vec_tot = [f"{val:8.3f}" for val in mgm_vec_tot]
|
mgm_vec_tot = [f"{val:8.3f}" for val in mgm_vec_tot]
|
||||||
current_idx += inc_len
|
current_idx += inc_len
|
||||||
pw.dlog(f"MGM Total Vec: {mgm_vec_tot}")
|
pw.dlog(f"MGM Total Vec: {mgm_vec_tot}")
|
||||||
mgm_vec_tot_deriv = struct.unpack(
|
mgm_vec_tot_deriv = struct.unpack(
|
||||||
fmt_str, hk_data[current_idx : current_idx + inc_len]
|
fmt_str, hk_data[current_idx: current_idx + inc_len]
|
||||||
)
|
)
|
||||||
mgm_vec_tot_deriv = [f"{val:8.3f}" for val in mgm_vec_tot_deriv]
|
mgm_vec_tot_deriv = [f"{val:8.3f}" for val in mgm_vec_tot_deriv]
|
||||||
pw.dlog(f"MGM Total Vec Deriv: {mgm_vec_tot_deriv}")
|
pw.dlog(f"MGM Total Vec Deriv: {mgm_vec_tot_deriv}")
|
||||||
current_idx += inc_len
|
current_idx += inc_len
|
||||||
mag_igrf_model = struct.unpack(
|
mag_igrf_model = struct.unpack(
|
||||||
fmt_str, hk_data[current_idx : current_idx + inc_len]
|
fmt_str, hk_data[current_idx: current_idx + inc_len]
|
||||||
)
|
)
|
||||||
mag_igrf_model = [f"{val:8.3f}" for val in mag_igrf_model]
|
mag_igrf_model = [f"{val:8.3f}" for val in mag_igrf_model]
|
||||||
pw.dlog(f"MAG IGRF Model: {mag_igrf_model}")
|
pw.dlog(f"MAG IGRF Model: {mag_igrf_model}")
|
||||||
current_idx += inc_len
|
current_idx += inc_len
|
||||||
|
if PERFORM_MGM_CALIBRATION:
|
||||||
|
perform_mgm_calibration(pw, mgm_3)
|
||||||
pw.printer.print_validity_buffer(hk_data[current_idx:], num_vars=8)
|
pw.printer.print_validity_buffer(hk_data[current_idx:], num_vars=8)
|
||||||
|
|
||||||
|
|
||||||
|
@ -29,13 +29,13 @@ class OpCode(str, enum.Enum):
|
|||||||
|
|
||||||
class AcsMode(enum.IntEnum):
|
class AcsMode(enum.IntEnum):
|
||||||
OFF = 0
|
OFF = 0
|
||||||
SAFE = 2
|
SAFE = 10
|
||||||
DETUMBLE = 3
|
DETUMBLE = 11
|
||||||
IDLE = 4
|
IDLE = 12
|
||||||
PTG_TARGET_NADIR = 5
|
PTG_TARGET_NADIR = 13
|
||||||
PTG_TARGET = 6
|
PTG_TARGET = 14
|
||||||
PTG_TARGET_GS = 7
|
PTG_TARGET_GS = 15
|
||||||
PTG_TARGET_INERTIAL = 8
|
PTG_TARGET_INERTIAL = 16
|
||||||
|
|
||||||
|
|
||||||
class Info(str, enum.Enum):
|
class Info(str, enum.Enum):
|
||||||
|
@ -22,11 +22,11 @@ class ParameterId(enum.IntEnum):
|
|||||||
|
|
||||||
|
|
||||||
class Submode(enum.IntEnum):
|
class Submode(enum.IntEnum):
|
||||||
RX_ONLY = 0
|
RX_ONLY = 10
|
||||||
RX_AND_TX_DEF_DATARATE = 1
|
RX_AND_TX_DEF_DATARATE = 11
|
||||||
RX_AND_TX_LOW_DATARATE = 2
|
RX_AND_TX_LOW_DATARATE = 12
|
||||||
RX_AND_TX_HIGH_DATARATE = 3
|
RX_AND_TX_HIGH_DATARATE = 13
|
||||||
RX_AND_TX_CARRIER_WAVE = 4
|
RX_AND_TX_CARRIER_WAVE = 14
|
||||||
|
|
||||||
|
|
||||||
class OpCode:
|
class OpCode:
|
||||||
|
@ -12,6 +12,15 @@ from tmtccmd.tc.decorator import ServiceProviderParams
|
|||||||
from tmtccmd.tc.pus_200_fsfw_mode import Subservice as ModeSubservice
|
from tmtccmd.tc.pus_200_fsfw_mode import Subservice as ModeSubservice
|
||||||
|
|
||||||
|
|
||||||
|
class ModeId:
|
||||||
|
OFF = 0
|
||||||
|
SUPV_ONLY = 10
|
||||||
|
MPSOC_STREAM = 11
|
||||||
|
CAM_STREAM = 12
|
||||||
|
EARTH_OBSV = 13
|
||||||
|
SCEX = 14
|
||||||
|
|
||||||
|
|
||||||
class OpCode(str, enum.Enum):
|
class OpCode(str, enum.Enum):
|
||||||
OFF = "off"
|
OFF = "off"
|
||||||
REPORT_ALL_MODES = "report_modes"
|
REPORT_ALL_MODES = "report_modes"
|
||||||
|
Reference in New Issue
Block a user