new safe mode #221

Merged
muellerr merged 3 commits from new-safe into main 2023-07-26 09:51:27 +02:00
Showing only changes of commit f5ec50b674 - Show all commits

View File

@ -1058,16 +1058,20 @@ def handle_mekf_data(pw: PrintWrapper, hk_data: bytes):
def handle_ctrl_val_data(pw: PrintWrapper, hk_data: bytes): def handle_ctrl_val_data(pw: PrintWrapper, hk_data: bytes):
safe_strat = { ctrl_strat = {
0: "OFF", 0: "OFF",
1: "NO_MAG_FIELD_FOR_CONTROL", 1: "NO_MAG_FIELD_FOR_CONTROL",
2: "NO_SENSORS_FOR_CONTROL", 2: "NO_SENSORS_FOR_CONTROL",
10: "ACTIVE_MEKF", 10: "SAFE_MEKF",
11: "WITHOUT_MEKF", 11: "SAFE_GYR",
12: "ECLIPSE_DAMPING", 12: "SAFE_SUSMGM",
13: "ECLIPSE_IDELING", 13: "SAFE_ECLIPSE_DAMPING_GYR",
14: "SAFE_ECLIPSE_DAMPING_SUSMGM",
15: "SAFE_ECLIPSE_IDELING",
20: "DETUMBLE_FULL", 20: "DETUMBLE_FULL",
21: "DETUMBLE_DETERIORATED", 21: "DETUMBLE_DETERIORATED",
30: "PTG_MEKF",
31: "PTG_RAW",
} }
pw.dlog("Received CTRL Values Set") pw.dlog("Received CTRL Values Set")
fmt_strat = "!B" fmt_strat = "!B"
@ -1114,8 +1118,8 @@ def handle_ctrl_val_data(pw: PrintWrapper, hk_data: bytes):
) )
] ]
current_idx += inc_len_vec current_idx += inc_len_vec
if safe_strat.get(strat) is not None: if ctrl_strat.get(strat) is not None:
pw.dlog(f"{'Safe Ctrl Strategy'.ljust(25)}: {safe_strat[strat]}") pw.dlog(f"{'Safe Ctrl Strategy'.ljust(25)}: {ctrl_strat[strat]}")
else: else:
pw.dlog(f"{'Safe Ctrl Strategy (key unknown)'.ljust(25)}: {strat}") pw.dlog(f"{'Safe Ctrl Strategy (key unknown)'.ljust(25)}: {strat}")
pw.dlog(f"Control Values Target Quaternion: {tgt_quat}") pw.dlog(f"Control Values Target Quaternion: {tgt_quat}")
@ -1196,7 +1200,7 @@ def handle_fused_rot_rate_data(pw: PrintWrapper, hk_data: bytes):
pw.dlog(f"Fused Rotational Rate Orthogonal: {rot_rate_orthogonal} [deg/s]") pw.dlog(f"Fused Rotational Rate Orthogonal: {rot_rate_orthogonal} [deg/s]")
pw.dlog(f"Fused Rotational Rate Parallel: {rot_rate_parallel} [deg/s]") pw.dlog(f"Fused Rotational Rate Parallel: {rot_rate_parallel} [deg/s]")
pw.dlog(f"Fused Rotational Rate Total: {rot_rate_total} [deg/s]") pw.dlog(f"Fused Rotational Rate Total: {rot_rate_total} [deg/s]")
pw.printer.print_validity_buffer(hk_data[current_idx:], num_vars=3) FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=3)
def perform_mgm_calibration( # noqa C901: Complexity okay def perform_mgm_calibration( # noqa C901: Complexity okay