diff --git a/eive_tmtc/tmtc/acs/acs_ctrl.py b/eive_tmtc/tmtc/acs/acs_ctrl.py index a2ab713..b9336d8 100644 --- a/eive_tmtc/tmtc/acs/acs_ctrl.py +++ b/eive_tmtc/tmtc/acs/acs_ctrl.py @@ -8,7 +8,7 @@ from socket import AF_INET from typing import Tuple from tmtccmd.config.tmtc import CmdTreeNode -from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter +from tmtccmd.fsfw.tmtc_printer import get_validity_buffer_str from tmtccmd.pus.s8_fsfw_action import create_action_cmd from tmtccmd.pus.s20_fsfw_param import create_load_param_cmd from tmtccmd.pus.s20_fsfw_param_defs import ( @@ -557,7 +557,7 @@ def handle_acs_ctrl_sus_raw_data(pw: PrintWrapper, hk_data: bytes): sus_list_formatted = vec_fmt.format(*sus_list) current_idx += length pw.dlog(f"SUS {idx} RAW: {sus_list_formatted}") - pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=12)) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=12)) def handle_acs_ctrl_sus_processed_data(pw: PrintWrapper, hk_data: bytes): @@ -593,7 +593,7 @@ def handle_acs_ctrl_sus_processed_data(pw: PrintWrapper, hk_data: bytes): sun_ijk_model = vec_fmt.format(*sun_ijk_model) current_idx += inc_len pw.dlog(f"{'SUS ijk Model'.ljust(25)}: {sun_ijk_model}") - pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=15)) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=15)) def handle_raw_mgm_data(pw: PrintWrapper, hk_data: bytes): @@ -649,7 +649,7 @@ def handle_raw_mgm_data(pw: PrintWrapper, hk_data: bytes): pw.dlog(f"{entry[0].ljust(28)}: {entry[1]}") current_idx += 1 assert current_idx == 61 - pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=6)) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=6)) def handle_mgm_data_processed(pw: PrintWrapper, hk_data: bytes): @@ -703,7 +703,7 @@ def handle_mgm_data_processed(pw: PrintWrapper, hk_data: bytes): current_idx += inc_len if PERFORM_MGM_CALIBRATION: perform_mgm_calibration(pw, mgm_3) - pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=8)) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=8)) def handle_gyr_data_raw(pw: PrintWrapper, hk_data: bytes): @@ -737,7 +737,7 @@ def handle_gyr_data_raw(pw: PrintWrapper, hk_data: bytes): pw.dlog(f"{'GYR 1 L3'.ljust(15)}: {float_str_fmt.format(*gyr_1_l3)}") pw.dlog(f"{'GYR 2 ADIS'.ljust(15)}: {float_str_fmt.format(*gyr_2_adis)}") pw.dlog(f"{'GYR 3 L3'.ljust(15)}: {float_str_fmt.format(*gyr_3_l3)}") - pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], 4)) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], 4)) GYR_NAMES = ["GYR 0 ADIS", "GYR 1 L3", "GYR 2 ADIS", "GYR 3 L3"] @@ -763,7 +763,7 @@ def handle_gyr_data_processed(pw: PrintWrapper, hk_data: bytes): ] pw.dlog(f"GYR Vec Total: {gyr_vec_tot}") current_idx += inc_len - pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=5)) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=5)) def handle_gps_data_processed(pw: PrintWrapper, hk_data: bytes): @@ -826,7 +826,7 @@ def handle_gps_data_processed(pw: PrintWrapper, hk_data: bytes): pw.dlog(f"GPS Altitude: {alt} [m]") pw.dlog(f"GPS Position: {pos} [m]") pw.dlog(f"GPS Velocity: {velo} [m/s]") - pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=6)) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=6)) def handle_attitude_estimation_data(pw: PrintWrapper, hk_data: bytes): @@ -881,9 +881,9 @@ def handle_attitude_estimation_data(pw: PrintWrapper, hk_data: bytes): ) current_idx += inc_len_quat pw.dlog(f"{'QUEST Quaternion'.ljust(25)}: {fmt_str_4.format(*quest_quat)}") - pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=4)) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=4)) return - pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=3)) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=3)) def handle_ctrl_val_data(pw: PrintWrapper, hk_data: bytes): @@ -940,7 +940,7 @@ def handle_ctrl_val_data(pw: PrintWrapper, hk_data: bytes): pw.dlog(f"Control Values Error Quaternion: {err_quat}") pw.dlog(f"Control Values Error Angle: {err_ang} [deg]") pw.dlog(f"Control Values Target Rotational Rate: {tgt_rot} [deg/s]") - pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=5)) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=5)) def handle_act_cmd_data(pw: PrintWrapper, hk_data: bytes): @@ -979,7 +979,7 @@ def handle_act_cmd_data(pw: PrintWrapper, hk_data: bytes): pw.dlog(f"Actuator Commands RW Target Torque: {rw_tgt_torque}") pw.dlog(f"Actuator Commands RW Target Speed: {rw_tgt_speed}") pw.dlog(f"Actuator Commands MTQ Target Dipole: {mtq_tgt_dipole}") - pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=3)) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=3)) def handle_fused_rot_rate_data(pw: PrintWrapper, hk_data: bytes): @@ -1030,9 +1030,9 @@ def handle_fused_rot_rate_data(pw: PrintWrapper, hk_data: bytes): ) else: pw.dlog(f"Ctrl Strategy (key unknown): {rot_rate_source}") - pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=4)) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=4)) return - pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=3)) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=3)) def handle_fused_rot_rate_source_data(pw: PrintWrapper, hk_data: bytes): @@ -1087,7 +1087,7 @@ def handle_fused_rot_rate_source_data(pw: PrintWrapper, hk_data: bytes): pw.dlog(f"Fused Rotational Rate Total SUSMGM: {rot_rate_total_susmgm} [deg/s]") pw.dlog(f"Fused Rotational Rate Total QUEST: {rot_rate_total_quest} [deg/s]") pw.dlog(f"Fused Rotational Rate Total STR: {rot_rate_total_str} [deg/s]") - pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=5)) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=5)) def handle_acs_ctrl_action_replies( diff --git a/eive_tmtc/tmtc/acs/gps.py b/eive_tmtc/tmtc/acs/gps.py index f80a5c9..31e3136 100644 --- a/eive_tmtc/tmtc/acs/gps.py +++ b/eive_tmtc/tmtc/acs/gps.py @@ -14,7 +14,7 @@ from tmtccmd.pus.tc.s3_fsfw_hk import ( create_disable_periodic_hk_command_with_diag, ) from tmtccmd.pus.tc.s8_fsfw_action import create_action_cmd -from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter +from tmtccmd.fsfw.tmtc_printer import get_validity_buffer_str _LOGGER = logging.getLogger(__name__) @@ -203,9 +203,7 @@ def handle_core_data(pw: PrintWrapper, hk_data: bytes): ) pw.dlog(f"GNSS Date: {date_string}") pw.dlog(f"Unix seconds {unix_seconds}") - FsfwTmTcPrinter.get_validity_buffer( - validity_buffer=hk_data[current_idx:], num_vars=14 - ) + pw.dlog(get_validity_buffer_str(validity_buffer=hk_data[current_idx:], num_vars=14)) def handle_skyview_data(pw: PrintWrapper, hk_data: bytes): @@ -265,6 +263,4 @@ def handle_skyview_data(pw: PrintWrapper, hk_data: bytes): used[idx], ) ) - FsfwTmTcPrinter.get_validity_buffer( - validity_buffer=hk_data[current_idx:], num_vars=6 - ) + pw.dlog(get_validity_buffer_str(validity_buffer=hk_data[current_idx:], num_vars=6)) diff --git a/eive_tmtc/tmtc/acs/imtq.py b/eive_tmtc/tmtc/acs/imtq.py index 53cc9a2..ebed1f8 100644 --- a/eive_tmtc/tmtc/acs/imtq.py +++ b/eive_tmtc/tmtc/acs/imtq.py @@ -31,7 +31,7 @@ from tmtccmd.pus.tc.s3_fsfw_hk import ( ) from tmtccmd.pus.s200_fsfw_mode import pack_mode_data, Mode from tmtccmd.util import ObjectIdU32 -from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter +from tmtccmd.fsfw.tmtc_printer import get_validity_buffer_str _LOGGER = logging.getLogger(__name__) @@ -543,7 +543,7 @@ def handle_dipole_set(pw: PrintWrapper, hk_data: bytes): pw.dlog(f"Dipole Y: {dipole_y}") pw.dlog(f"Dipole Z: {dipole_z}") pw.dlog(f"Current torque duration: {current_torque_duration}") - FsfwTmTcPrinter.get_validity_buffer(hk_data[fmt_len:], 2) + pw.dlog(get_validity_buffer_str(hk_data[fmt_len:], 2)) def unpack_eng_hk(hk_data: bytes) -> List: @@ -583,9 +583,7 @@ def handle_eng_set(pw: PrintWrapper, hk_data: bytes, torque_on: bool): for k, v in zip(ENG_HK_HEADERS, content_list): pw.dlog(f"{k.ljust(30)}: {v}") pw.dlog( - FsfwTmTcPrinter.get_validity_buffer( - validity_buffer=validity_buffer, num_vars=num_of_vars - ) + get_validity_buffer_str(validity_buffer=validity_buffer, num_vars=num_of_vars) ) @@ -597,9 +595,7 @@ def handle_status_set(pw: PrintWrapper, hk_data: bytes): for k, v in zip(STATUS_HEADERS, content_list): pw.dlog(f"{k.ljust(30)}: {v}") pw.dlog( - FsfwTmTcPrinter.get_validity_buffer( - validity_buffer=validity_buffer, num_vars=num_of_vars - ) + get_validity_buffer_str(validity_buffer=validity_buffer, num_vars=num_of_vars) ) @@ -620,9 +616,7 @@ def handle_calibrated_mtm_measurement(pw: PrintWrapper, hk_data: bytes): pw.dlog(str(header_list)) pw.dlog(str(content_list)) pw.dlog( - FsfwTmTcPrinter.get_validity_buffer( - validity_buffer=validity_buffer, num_vars=num_of_vars - ) + get_validity_buffer_str(validity_buffer=validity_buffer, num_vars=num_of_vars) ) @@ -644,9 +638,7 @@ def handle_raw_mtm_measurement(pw: PrintWrapper, hk_data: bytes, torque_status: pw.dlog(str(header_list)) pw.dlog(str(content_list)) pw.dlog( - FsfwTmTcPrinter.get_validity_buffer( - validity_buffer=validity_buffer, num_vars=num_of_vars - ) + get_validity_buffer_str(validity_buffer=validity_buffer, num_vars=num_of_vars) ) @@ -783,7 +775,5 @@ def handle_self_test_data(pw: PrintWrapper, hk_data: bytes): pw.dlog(str(header_list)) pw.dlog(str(content_list)) pw.dlog( - FsfwTmTcPrinter.get_validity_buffer( - validity_buffer=validity_buffer, num_vars=num_of_vars - ) + get_validity_buffer_str(validity_buffer=validity_buffer, num_vars=num_of_vars) ) diff --git a/eive_tmtc/tmtc/acs/reaction_wheels.py b/eive_tmtc/tmtc/acs/reaction_wheels.py index 94f2036..28a5062 100644 --- a/eive_tmtc/tmtc/acs/reaction_wheels.py +++ b/eive_tmtc/tmtc/acs/reaction_wheels.py @@ -23,7 +23,7 @@ from tmtccmd.pus.s8_fsfw_action import create_action_cmd from spacepackets.ecss.tc import PusTelecommand from tmtccmd.pus.s200_fsfw_mode import pack_mode_data, Mode, Subservice from tmtccmd.util import ObjectIdU32 -from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter +from tmtccmd.fsfw.tmtc_printer import get_validity_buffer_str class OpCodesDev: @@ -301,7 +301,7 @@ def handle_rw_hk_data( f"Current Limit Control mode {clc_mode}. 0: Low Current Mode (0.3 A), " "1: High Current Mode (0.6 A)" ) - pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], 5)) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], 5)) if set_id == RwSetId.LAST_RESET: pw.dlog( f"Received Last Reset HK (ID {set_id}) from Reaction Wheel {object_id.name}" @@ -390,7 +390,7 @@ def handle_rw_hk_data( ) if current_idx > 0: pw.dlog( - FsfwTmTcPrinter.get_validity_buffer( + get_validity_buffer_str( validity_buffer=hk_data[current_idx:], num_vars=27 ) ) diff --git a/eive_tmtc/tmtc/acs/star_tracker.py b/eive_tmtc/tmtc/acs/star_tracker.py index c9cd815..4ecde7d 100644 --- a/eive_tmtc/tmtc/acs/star_tracker.py +++ b/eive_tmtc/tmtc/acs/star_tracker.py @@ -27,7 +27,7 @@ from tmtccmd.pus.s8_fsfw_action import create_action_cmd from tmtccmd.tmtc import DefaultPusQueueHelper from tmtccmd.pus.s200_fsfw_mode import pack_mode_data, Mode from tmtccmd.util import ObjectIdU32 -from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter +from tmtccmd.fsfw.tmtc_printer import get_validity_buffer_str from eive_tmtc.config.object_ids import STR_ASSEMBLY, STAR_TRACKER_ID _LOGGER = logging.getLogger(__name__) @@ -750,12 +750,13 @@ def create_update_firmware_target_cmd( else: param_id = ParamId.FIRMWARE_TARGET return create_load_param_cmd( - create_scalar_u8_parameter( + parameter=create_scalar_u8_parameter( STAR_TRACKER_ID, 0, param_id, fw_target, - ) + ), + apid=0, ) @@ -930,7 +931,7 @@ def handle_version_set(hk_data: bytes, pw: PrintWrapper): minor = struct.unpack("!B", hk_data[current_idx : current_idx + 1])[0] pw.dlog(f"Minor: {minor}") current_idx += 1 - pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=5)) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=5)) def handle_temperature_set(hk_data: bytes, pw: PrintWrapper): @@ -947,7 +948,7 @@ def handle_temperature_set(hk_data: bytes, pw: PrintWrapper): pw.dlog(f"CMOS Temperature: {cmos_temp}") pw.dlog(f"FPGA Temperature: {fpga_temp}") current_idx += fmt_len - FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], 5) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], 5)) def handle_solution_set(hk_data: bytes, pw: PrintWrapper): @@ -1021,7 +1022,7 @@ def handle_solution_set(hk_data: bytes, pw: PrintWrapper): solution_strategy = hk_data[current_idx] pw.dlog(f"Solution strategy: {solution_strategy}") current_idx += 1 - print(FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], 23)) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], 23)) def handle_blob_set(hk_data: bytes, pw: PrintWrapper): @@ -1032,7 +1033,7 @@ def handle_blob_set(hk_data: bytes, pw: PrintWrapper): current_idx = unpack_time_hk(hk_data, 0, pw) blob_count = struct.unpack("!I", hk_data[current_idx : current_idx + 4])[0] pw.dlog(f"Blob count: {blob_count}") - FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx + 4 :], num_vars=3) + pw.dlog(get_validity_buffer_str(hk_data[current_idx + 4 :], num_vars=3)) def handle_blobs_set(hk_data: bytes, pw: PrintWrapper): @@ -1060,7 +1061,7 @@ def handle_blobs_set(hk_data: bytes, pw: PrintWrapper): for idx in range(8): pw.dlog("{:<8} {:<8}".format(x_coords[idx], y_coords[idx])) assert current_idx == len(hk_data) - 1 - FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=7) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=7)) def handle_centroid_set(hk_data: bytes, pw: PrintWrapper): @@ -1074,7 +1075,7 @@ def handle_centroid_set(hk_data: bytes, pw: PrintWrapper): current_idx += 4 pw.dlog(f"Centroid count: {centroid_count}") assert current_idx == len(hk_data) - 1 - FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=3) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=3)) def handle_centroids_set(hk_data: bytes, pw: PrintWrapper): @@ -1101,7 +1102,7 @@ def handle_centroids_set(hk_data: bytes, pw: PrintWrapper): ) ) assert current_idx == len(hk_data) - 1 - FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=6) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=6)) def handle_matched_centroids_set(hk_data: bytes, pw: PrintWrapper): @@ -1145,7 +1146,7 @@ def handle_matched_centroids_set(hk_data: bytes, pw: PrintWrapper): ) ) assert current_idx == len(hk_data) - 1 - FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=8) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=8)) def handle_auto_blob_set(hk_data: bytes, pw: PrintWrapper): @@ -1163,7 +1164,7 @@ def handle_auto_blob_set(hk_data: bytes, pw: PrintWrapper): current_idx += inc_len assert current_idx == len(hk_data) - 1 pw.dlog(f"Threshold {threshold}") - FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=3) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=3)) def handle_histo_or_contrast_set(name: str, hk_data: bytes, pw: PrintWrapper): @@ -1239,7 +1240,7 @@ def handle_blob_stats_set(hk_data: bytes, pw: PrintWrapper): i, noise_list[i], threshold_list[i], lvalid_list[i], oflow_list[i] ) ) - pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=6)) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=6)) def handle_star_tracker_action_replies( diff --git a/eive_tmtc/tmtc/acs/sus.py b/eive_tmtc/tmtc/acs/sus.py index 90237f0..914ce25 100644 --- a/eive_tmtc/tmtc/acs/sus.py +++ b/eive_tmtc/tmtc/acs/sus.py @@ -3,7 +3,7 @@ import struct from eive_tmtc.pus_tm.defs import PrintWrapper from tmtccmd.util import ObjectIdU32 -from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter +from tmtccmd.fsfw.tmtc_printer import get_validity_buffer_str class SetId(enum.IntEnum): @@ -26,6 +26,6 @@ def handle_sus_hk( pw.dlog("AIN Channel | Raw Value (hex) | Raw Value (dec)") for idx, val in enumerate(channels): pw.dlog(f"{idx} | {val[0]:#06x} |" + str(val[0]).ljust(5)) - FsfwTmTcPrinter.get_validity_buffer( - validity_buffer=hk_data[current_idx:], num_vars=7 + pw.dlog( + get_validity_buffer_str(validity_buffer=hk_data[current_idx:], num_vars=7) ) diff --git a/eive_tmtc/tmtc/com/pdec_handler.py b/eive_tmtc/tmtc/com/pdec_handler.py index 5ac69b4..19d4962 100644 --- a/eive_tmtc/tmtc/com/pdec_handler.py +++ b/eive_tmtc/tmtc/com/pdec_handler.py @@ -78,12 +78,13 @@ def pack_pdec_handler_commands( pw = int(input("Specify positive window to set: ")) q.add_pus_tc( create_load_param_cmd( - create_scalar_u8_parameter( + parameter=create_scalar_u8_parameter( object_id, 0, ParameterId.POSITIVE_WINDOW, pw, - ) + ), + apid=0, ) ) if cmd_str == OpCode.NEGATIVE_WINDOW: @@ -91,12 +92,13 @@ def pack_pdec_handler_commands( nw = int(input("Specify negative window to set: ")) q.add_pus_tc( create_load_param_cmd( - create_scalar_u8_parameter( + parameter=create_scalar_u8_parameter( object_id, 0, ParameterId.NEGATIVE_WINDOW, nw, - ) + ), + apid=0, ) ) if cmd_str == OpCode.RESET_NO_INIT: diff --git a/eive_tmtc/tmtc/com/syrlinks_handler.py b/eive_tmtc/tmtc/com/syrlinks_handler.py index fe97c07..1c0ec95 100644 --- a/eive_tmtc/tmtc/com/syrlinks_handler.py +++ b/eive_tmtc/tmtc/com/syrlinks_handler.py @@ -17,7 +17,7 @@ from tmtccmd.config.tmtc import ( TmtcDefinitionWrapper, tmtc_definitions_provider, ) -from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter +from tmtccmd.fsfw.tmtc_printer import get_validity_buffer_str from tmtccmd.pus.s200_fsfw_mode import Mode, create_mode_command from tmtccmd.pus.tc.s3_fsfw_hk import ( create_disable_periodic_hk_command_with_diag, @@ -297,7 +297,7 @@ def handle_syrlinks_temp_dataset(hk_info: HkTmInfo, pw: PrintWrapper): temp_baseband_board = struct.unpack("!f", hk_data[4:8])[0] pw.dlog(f"Temperatur Power Amplifier [C]: {temp_power_amplifier}") pw.dlog(f"Temperatur Baseband Board [C]: {temp_baseband_board}") - pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[8:], 2)) + pw.dlog(get_validity_buffer_str(hk_data[8:], 2)) def handle_syrlinks_rx_registers_dataset( @@ -364,9 +364,7 @@ def handle_syrlinks_rx_registers_dataset( validity_buffer = hk_data[22:] for header, content in zip(header_list, content_list): pw.dlog(f"{header}: {content}") - pw.dlog( - FsfwTmTcPrinter.get_validity_buffer(validity_buffer=validity_buffer, num_vars=8) - ) + pw.dlog(get_validity_buffer_str(validity_buffer=validity_buffer, num_vars=8)) print(f"Carrier Detect: {carrier_detect}") print(f"Carrier Lock: {carrier_lock}") print(f"Data Lock (data clock recovery loop lock status): {data_lock}") @@ -394,7 +392,7 @@ def handle_syrlinks_rx_registers_dataset( "INSERT INTO syrlinks_rx_regs VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)", ( str(hk_info.packet_uuid), - hk_info.hk_packet.pus_tm.time_provider.as_datetime(), # type: ignore + hk_info.packet_datetime, carrier_detect, carrier_lock, data_lock, @@ -470,9 +468,7 @@ def handle_syrlinks_tx_registers_dataset( validity_buffer = hk_info.hk_data[4:] for header, content in zip(header_list, content_list): pw.dlog(f"{header}: {content}") - pw.dlog( - FsfwTmTcPrinter.get_validity_buffer(validity_buffer=validity_buffer, num_vars=3) - ) + pw.dlog(get_validity_buffer_str(validity_buffer=validity_buffer, num_vars=3)) # pw.dlog(f"TX CONV: {tx_conv!r}") # pw.dlog(f"TX DIFF (differential encoder enable): {tx_diff_encoder_enable}") print(f"TX Status: {tx_status_status!r}") @@ -504,7 +500,7 @@ def handle_syrlinks_tx_registers_dataset( "INSERT INTO syrlinks_tx_regs VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", ( str(hk_info.packet_uuid), - hk_info.hk_packet.pus_tm.time_provider.as_datetime(), # type: ignore + hk_info.packet_datetime, tx_status_status, tx_status_status.name, tx_conf_set, diff --git a/eive_tmtc/tmtc/core.py b/eive_tmtc/tmtc/core.py index f80d6ab..13d28e3 100644 --- a/eive_tmtc/tmtc/core.py +++ b/eive_tmtc/tmtc/core.py @@ -15,7 +15,7 @@ from tmtccmd.pus.s20_fsfw_param import ( create_scalar_u8_parameter, create_load_param_cmd, ) -from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter +from tmtccmd.fsfw.tmtc_printer import get_validity_buffer_str from tmtccmd.pus.s11_tc_sched import ( create_enable_tc_sched_cmd, create_disable_tc_sched_cmd, @@ -399,12 +399,13 @@ def pack_core_commands( # noqa C901 raise ValueError("Only 0 or 1 allowed for preferred SD card") q.add_pus_tc( create_load_param_cmd( - create_scalar_u8_parameter( + parameter=create_scalar_u8_parameter( object_id=CORE_CONTROLLER_ID, domain_id=0, unique_id=ParamId.PREF_SD, parameter=pref_sd, - ) + ), + apid=0, ) ) elif cmd_str == OpCode.CP_HELPER: @@ -632,9 +633,7 @@ def handle_core_hk_data(pw: PrintWrapper, set_id: int, hk_data: bytes): f"PL Voltage [mV] {pl_voltage}" ) pw.dlog(printout) - FsfwTmTcPrinter.get_validity_buffer( - validity_buffer=hk_data[inc_len:], num_vars=3 - ) + pw.dlog(get_validity_buffer_str(validity_buffer=hk_data[inc_len:], num_vars=3)) def handle_core_ctrl_action_replies( diff --git a/eive_tmtc/tmtc/internal_err_reporter.py b/eive_tmtc/tmtc/internal_err_reporter.py index 6c26c5f..611c990 100644 --- a/eive_tmtc/tmtc/internal_err_reporter.py +++ b/eive_tmtc/tmtc/internal_err_reporter.py @@ -1,9 +1,8 @@ import enum import struct -from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter - from eive_tmtc.pus_tm.defs import PrintWrapper +from tmtccmd.fsfw.tmtc_printer import get_validity_buffer_str class SetId(enum.IntEnum): @@ -21,4 +20,4 @@ def handle_ier_hk_data(pw: PrintWrapper, hk_data: bytes, set_id: int): pw.dlog(f"TM Errors: {tm_errors}") pw.dlog(f"Queue Errors: {queue_errors}") pw.dlog(f"Store Errors: {store_hits}") - pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[inc_len:], 3)) + pw.dlog(get_validity_buffer_str(hk_data[inc_len:], 3)) diff --git a/eive_tmtc/tmtc/payload/ploc_supervisor.py b/eive_tmtc/tmtc/payload/ploc_supervisor.py index c552ed5..e7e6263 100644 --- a/eive_tmtc/tmtc/payload/ploc_supervisor.py +++ b/eive_tmtc/tmtc/payload/ploc_supervisor.py @@ -19,7 +19,7 @@ from tmtccmd.config.tmtc import CmdTreeNode from tmtccmd.tmtc import DefaultPusQueueHelper from tmtccmd.pus.s200_fsfw_mode import pack_mode_data, Mode from tmtccmd.pus.s8_fsfw_action import create_action_cmd -from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter +from tmtccmd.fsfw.tmtc_printer import get_validity_buffer_str from eive_tmtc.utility.input_helper import InputHelper _LOGGER = logging.getLogger(__name__) @@ -701,7 +701,7 @@ def handle_hk_report(hk_data: bytes, pw: PrintWrapper): pw.dlog(f"NVM 3 State {nvm_3_state}") pw.dlog(f"Mission IO state {mission_io_state}") pw.dlog(f"FMC state {fmc_state}") - pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[inc_len:], 13)) + pw.dlog(get_validity_buffer_str(hk_data[inc_len:], 13)) def handle_boot_report(hk_data: bytes, pw: PrintWrapper): @@ -730,7 +730,7 @@ def handle_boot_report(hk_data: bytes, pw: PrintWrapper): pw.dlog(f"Active NVM: {active_nvm}") pw.dlog(f"BP0 State {bp_0_state} | BP1 State {bp_1_state} | BP2 State {bp_2_state}") pw.dlog(f"Boot State {boot_state} | Boot Cycles {boot_cycles}") - FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], 10) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], 10)) def handle_adc_report(hk_data: bytes): diff --git a/eive_tmtc/tmtc/payload/plpcdu.py b/eive_tmtc/tmtc/payload/plpcdu.py index e8d7d18..6dae711 100644 --- a/eive_tmtc/tmtc/payload/plpcdu.py +++ b/eive_tmtc/tmtc/payload/plpcdu.py @@ -28,7 +28,7 @@ from tmtccmd.pus.s20_fsfw_param import ( ) from spacepackets.ecss.tc import PusTelecommand from eive_tmtc.config.object_ids import PL_PCDU_ID -from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter +from tmtccmd.fsfw.tmtc_printer import get_validity_buffer_str _LOGGER = logging.getLogger(__name__) @@ -615,8 +615,8 @@ def handle_plpcdu_hk(pw: PrintWrapper, set_id: int, hk_data: bytes): pw.dlog(ch_print) for i in range(12): pw.dlog(f"{ADC_CHANNELS_NAMED[i].ljust(24)} | {processed_vals[i]}") - FsfwTmTcPrinter.get_validity_buffer( - validity_buffer=hk_data[current_idx:], num_vars=3 + pw.dlog( + get_validity_buffer_str(validity_buffer=hk_data[current_idx:], num_vars=3) ) diff --git a/eive_tmtc/tmtc/payload/rad_sensor.py b/eive_tmtc/tmtc/payload/rad_sensor.py index e0b5386..70cf631 100644 --- a/eive_tmtc/tmtc/payload/rad_sensor.py +++ b/eive_tmtc/tmtc/payload/rad_sensor.py @@ -18,7 +18,7 @@ from tmtccmd.tmtc import DefaultPusQueueHelper from tmtccmd.pus.s200_fsfw_mode import Mode, pack_mode_data from tmtccmd.pus.tc.s3_fsfw_hk import generate_one_hk_command, make_sid from tmtccmd.util import ObjectIdU32 -from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter +from tmtccmd.fsfw.tmtc_printer import get_validity_buffer_str class SetId(enum.IntEnum): @@ -115,6 +115,6 @@ def handle_rad_sensor_data(pw: PrintWrapper, set_id: int, hk_data: bytes): for idx, val in ain_dict.items(): pw.dlog(f"{idx} | {val:#06x} | {str(val).ljust(5)}") current_idx += inc_len - FsfwTmTcPrinter.get_validity_buffer( - validity_buffer=hk_data[current_idx:], num_vars=7 + pw.dlog( + get_validity_buffer_str(validity_buffer=hk_data[current_idx:], num_vars=7) ) diff --git a/eive_tmtc/tmtc/power/acu.py b/eive_tmtc/tmtc/power/acu.py index ba7a0c7..07ffd64 100644 --- a/eive_tmtc/tmtc/power/acu.py +++ b/eive_tmtc/tmtc/power/acu.py @@ -82,7 +82,7 @@ def pack_acu_commands(object_id: ObjectIdU32, q: DefaultPusQueueHelper, cmd_str: def acu_req_hk_cmds(q: DefaultPusQueueHelper, op_code: str): - req_hk_cmds("ACU", q, op_code, ACU_HANDLER_ID, [SetId.CORE, SetId.AUX]) + req_hk_cmds("ACU", q, op_code, ACU_HANDLER_ID, (SetId.CORE, SetId.AUX)) class ACUTestProcedure: diff --git a/eive_tmtc/tmtc/power/bpx_batt.py b/eive_tmtc/tmtc/power/bpx_batt.py index 76ed79e..3fa6be8 100644 --- a/eive_tmtc/tmtc/power/bpx_batt.py +++ b/eive_tmtc/tmtc/power/bpx_batt.py @@ -5,7 +5,7 @@ from spacepackets.ecss import PusTelecommand from tmtccmd.config.tmtc import ( CmdTreeNode, ) -from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter +from tmtccmd.fsfw.tmtc_printer import get_validity_buffer_str from tmtccmd.pus.s8_fsfw_action import create_action_cmd from tmtccmd.pus.s200_fsfw_mode import Mode, pack_mode_data from tmtccmd.pus.s200_fsfw_mode import Subservice as ModeSubservices @@ -213,9 +213,7 @@ def handle_bpx_hk_data(pw: PrintWrapper, set_id: int, hk_data: bytes): validity_buffer = hk_data[inc_len:] pw.dlog(str(HEADER_LIST)) pw.dlog(str(content_list)) - FsfwTmTcPrinter.get_validity_buffer( - validity_buffer=validity_buffer, num_vars=10 - ) + pw.dlog(get_validity_buffer_str(validity_buffer=validity_buffer, num_vars=10)) elif set_id == BpxSetId.GET_CFG_SET: battheat_mode = hk_data[0] battheat_low = struct.unpack("!b", hk_data[1:2])[0] @@ -229,6 +227,4 @@ def handle_bpx_hk_data(pw: PrintWrapper, set_id: int, hk_data: bytes): validity_buffer = hk_data[3:] pw.dlog(str(header_list)) pw.dlog(str(content_list)) - FsfwTmTcPrinter.get_validity_buffer( - validity_buffer=validity_buffer, num_vars=10 - ) + pw.dlog(get_validity_buffer_str(validity_buffer=validity_buffer, num_vars=10)) diff --git a/eive_tmtc/tmtc/power/p60dock.py b/eive_tmtc/tmtc/power/p60dock.py index cd63ec4..ecc618d 100644 --- a/eive_tmtc/tmtc/power/p60dock.py +++ b/eive_tmtc/tmtc/power/p60dock.py @@ -259,4 +259,4 @@ def create_p60_dock_node() -> CmdTreeNode: def p60_dock_req_hk_cmds(q: DefaultPusQueueHelper, op_code: str): - req_hk_cmds("P60 Dock", q, op_code, P60_DOCK_HANDLER, [SetId.CORE, SetId.AUX]) + req_hk_cmds("P60 Dock", q, op_code, P60_DOCK_HANDLER, (SetId.CORE, SetId.AUX)) diff --git a/eive_tmtc/tmtc/power/pdu1.py b/eive_tmtc/tmtc/power/pdu1.py index 6c113fb..bb19580 100644 --- a/eive_tmtc/tmtc/power/pdu1.py +++ b/eive_tmtc/tmtc/power/pdu1.py @@ -98,7 +98,7 @@ def pack_pdu1_commands(object_id: ObjectIdU32, q: DefaultPusQueueHelper, cmd_str def pdu1_req_hk_cmds(q: DefaultPusQueueHelper, op_code: str): - req_hk_cmds("PDU1", q, op_code, PDU_1_HANDLER_ID, [SetId.CORE, SetId.AUX]) + req_hk_cmds("PDU1", q, op_code, PDU_1_HANDLER_ID, (SetId.CORE, SetId.AUX)) def info_on_pdu1(base: str) -> str: diff --git a/eive_tmtc/tmtc/power/pdu2.py b/eive_tmtc/tmtc/power/pdu2.py index 48da8a5..cac4b35 100644 --- a/eive_tmtc/tmtc/power/pdu2.py +++ b/eive_tmtc/tmtc/power/pdu2.py @@ -332,7 +332,7 @@ def add_pdu2_common_defs(oce: OpCodeEntry): def pdu2_req_hk_cmds(q: DefaultPusQueueHelper, op_code: str): - req_hk_cmds("PDU2", q, op_code, PDU_2_HANDLER_ID, [SetId.CORE, SetId.AUX]) + req_hk_cmds("PDU2", q, op_code, PDU_2_HANDLER_ID, (SetId.CORE, SetId.AUX)) def pl_pcdu_bat_nom_on_cmd(q: DefaultPusQueueHelper): diff --git a/eive_tmtc/tmtc/power/pwr_ctrl.py b/eive_tmtc/tmtc/power/pwr_ctrl.py index 51b364d..968140f 100644 --- a/eive_tmtc/tmtc/power/pwr_ctrl.py +++ b/eive_tmtc/tmtc/power/pwr_ctrl.py @@ -6,7 +6,7 @@ import struct from tmtccmd.config.tmtc import ( CmdTreeNode, ) -from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter +from tmtccmd.fsfw.tmtc_printer import get_validity_buffer_str from tmtccmd.pus.s20_fsfw_param import create_load_param_cmd from tmtccmd.pus.s20_fsfw_param_defs import ( create_scalar_double_parameter, @@ -268,7 +268,7 @@ def handle_core_hk_data(pw: PrintWrapper, hk_data: bytes): pw.dlog(f"Total Battery Current: {total_battery_current} [mA]") pw.dlog(f"Open Circuit Voltage Charge: {open_circuit_voltage_charge*100:8.3f} [%]") pw.dlog(f"Coulomb Counter Charge: {coulomb_counter_charge*100:8.3f} [%]") - FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=3) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=3)) def handle_enable_pl_data(pw: PrintWrapper, hk_data: bytes): @@ -284,4 +284,4 @@ def handle_enable_pl_data(pw: PrintWrapper, hk_data: bytes): )[0] current_idx += inc_len_uint16 pw.dlog(f"PL Use Allowed: {pl_use_allowed}") - FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=1) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], num_vars=1)) diff --git a/eive_tmtc/tmtc/power/tm.py b/eive_tmtc/tmtc/power/tm.py index a2acf81..c2382c8 100644 --- a/eive_tmtc/tmtc/power/tm.py +++ b/eive_tmtc/tmtc/power/tm.py @@ -13,7 +13,7 @@ from eive_tmtc.tmtc.power.common_power import ( ) from eive_tmtc.tmtc.power.power import PcduSetIds from tmtccmd.util import ObjectIdBase -from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter +from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter, get_validity_buffer_str from eive_tmtc.pus_tm.defs import PrintWrapper from eive_tmtc.gomspace.gomspace_common import GomspaceDeviceActionId from eive_tmtc.config.object_ids import ( @@ -125,6 +125,8 @@ class DevicesInfoParser: return current_idx def print(self, pw: PrintWrapper): + if self.dev_types is None or self.dev_statuses is None: + return pw.dlog("Device Type | Device State (0:None | 1:OK | 3:ERROR | 4:NOT FOUND)") for i in range(len(self.dev_types)): pw.dlog( @@ -372,8 +374,8 @@ def handle_p60_hk_data(pw: PrintWrapper, set_id: int, hk_data: bytes): temps = f"In C: Temp 0 {temp_0} | Temp 1 {temp_1} | " pw.dlog(temps) pw.dlog(batt_info) - FsfwTmTcPrinter.get_validity_buffer( - validity_buffer=hk_data[current_idx:], num_vars=9 + pw.dlog( + get_validity_buffer_str(validity_buffer=hk_data[current_idx:], num_vars=9) ) if set_id == SetId.AUX: pw.dlog("Received P60 AUX HK. Voltages in mV, currents in mA") @@ -440,8 +442,8 @@ def handle_p60_hk_data(pw: PrintWrapper, set_id: int, hk_data: bytes): "6:TempSens(BatPack)|7:TempSens(BatPack)" ) dev_parser.print(pw=pw) - FsfwTmTcPrinter.get_validity_buffer( - validity_buffer=hk_data[current_idx:], num_vars=27 + pw.dlog( + get_validity_buffer_str(validity_buffer=hk_data[current_idx:], num_vars=27) ) @@ -493,8 +495,8 @@ def handle_acu_hk_data(pw: PrintWrapper, set_id: int, hk_data: bytes): f"Boot Count {bootcnt} | Uptime {uptime} sec | " f"MPPT Time {mppt_time} msec | MPPT Period {mppt_period} msec" ) - FsfwTmTcPrinter.get_validity_buffer( - validity_buffer=hk_data[current_idx:], num_vars=12 + pw.dlog( + get_validity_buffer_str(validity_buffer=hk_data[current_idx:], num_vars=12) ) if set_id == SetId.AUX: current_idx = 0 @@ -531,8 +533,8 @@ def handle_acu_hk_data(pw: PrintWrapper, set_id: int, hk_data: bytes): "ACU Dev Types: 0:FRAM|1:ADC|2:ADC|3:DAC|4:DAC|5:DAC|6:TempSens|7:Reserved" ) dev_parser.print(pw=pw) - FsfwTmTcPrinter.get_validity_buffer( - validity_buffer=hk_data[current_idx:], num_vars=8 + pw.dlog( + get_validity_buffer_str(validity_buffer=hk_data[current_idx:], num_vars=8) ) @@ -677,4 +679,4 @@ def handle_pcdu_hk(pw: PrintWrapper, set_id: int, hk_data: bytes): pw.dlog(f"{name.ljust(25)}: {val}") pw.dlog(f"{'P60 Dock 5V Stack'.ljust(25)}: {p60_stack_5v_val}") pw.dlog(f"{'P60 Dock 3V3 Stack'.ljust(25)}: {p60_stack_3v3_val}") - FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], 4) + pw.dlog(get_validity_buffer_str(hk_data[current_idx:], 4)) diff --git a/eive_tmtc/tmtc/tcs/rtd.py b/eive_tmtc/tmtc/tcs/rtd.py index 6890284..9fe7fa2 100644 --- a/eive_tmtc/tmtc/tcs/rtd.py +++ b/eive_tmtc/tmtc/tcs/rtd.py @@ -13,7 +13,7 @@ from tmtccmd.util import ObjectIdU32 from tmtccmd.pus.s200_fsfw_mode import Mode, pack_mode_data, Subservice import eive_tmtc.config.object_ids as oids from eive_tmtc.config.object_ids import get_object_ids -from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter +from tmtccmd.fsfw.tmtc_printer import get_validity_buffer_str RTD_IDS = [ oids.RTD_0_PLOC_HSPD, @@ -170,7 +170,7 @@ def handle_rtd_hk(object_id: bytes, hk_data: bytes, pw: PrintWrapper): pw.dlog(f"RTD Value: {rtd_val}") pw.dlog(f"Error Byte: {error_byte}") pw.dlog(f"Last Error Byte: {last_err_byte}") - FsfwTmTcPrinter.get_validity_buffer(hk_data[fmt_len:], 4) + pw.dlog(get_validity_buffer_str(hk_data[fmt_len:], 4)) def prompt_rtd_idx(): diff --git a/eive_tmtc/tmtc/tcs/tmp1075.py b/eive_tmtc/tmtc/tcs/tmp1075.py index f4105d3..1fb1771 100644 --- a/eive_tmtc/tmtc/tcs/tmp1075.py +++ b/eive_tmtc/tmtc/tcs/tmp1075.py @@ -18,7 +18,7 @@ from tmtccmd.config.tmtc import ( TmtcDefinitionWrapper, OpCodeEntry, ) -from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter +from tmtccmd.fsfw.tmtc_printer import get_validity_buffer_str from tmtccmd.tmtc import DefaultPusQueueHelper from tmtccmd.pus.s200_fsfw_mode import Mode, pack_mode_data from tmtccmd.pus.tc.s3_fsfw_hk import create_request_one_hk_command, make_sid @@ -96,4 +96,4 @@ def handle_tmp_1075_hk_data(set_id: int, hk_data: bytes, pw: PrintWrapper): if set_id == SetId.TEMPERATURE: temp = struct.unpack("!f", hk_data[0:4])[0] pw.dlog(f"TMP1075 Temperature: {temp}") - pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[4:], 1)) + pw.dlog(get_validity_buffer_str(hk_data[4:], 1)) diff --git a/pyproject.toml b/pyproject.toml index 47b5610..bc953a0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,9 +29,9 @@ classifiers = [ "Topic :: Scientific/Engineering" ] dependencies = [ - "tmtccmd ~= 8.0", + "tmtccmd ~= 8.0.1", + # "tmtccmd @ git+https://github.com/robamu-org/tmtccmd@main", "cfdp-py~=0.1.0", - # "tmtccmd @ git+https://github.com/robamu-org/tmtccmd@prep_v8.0.0", "python-dateutil ~= 2.8", ]