Merge pull request 'Some more fixes' (#298) from some-more-fixes-for-tmtccmd-bump into main
All checks were successful
EIVE/-/pipeline/head This commit looks good

Reviewed-on: #298
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
This commit is contained in:
Robin Müller 2024-05-13 14:06:00 +02:00
commit 9a55686a26
23 changed files with 101 additions and 120 deletions

View File

@ -8,7 +8,7 @@ from socket import AF_INET
from typing import Tuple from typing import Tuple
from tmtccmd.config.tmtc import CmdTreeNode 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.s8_fsfw_action import create_action_cmd
from tmtccmd.pus.s20_fsfw_param import create_load_param_cmd from tmtccmd.pus.s20_fsfw_param import create_load_param_cmd
from tmtccmd.pus.s20_fsfw_param_defs import ( 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) sus_list_formatted = vec_fmt.format(*sus_list)
current_idx += length current_idx += length
pw.dlog(f"SUS {idx} RAW: {sus_list_formatted}") 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): 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) sun_ijk_model = vec_fmt.format(*sun_ijk_model)
current_idx += inc_len current_idx += inc_len
pw.dlog(f"{'SUS ijk Model'.ljust(25)}: {sun_ijk_model}") 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): 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]}") pw.dlog(f"{entry[0].ljust(28)}: {entry[1]}")
current_idx += 1 current_idx += 1
assert current_idx == 61 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): 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 current_idx += inc_len
if PERFORM_MGM_CALIBRATION: if PERFORM_MGM_CALIBRATION:
perform_mgm_calibration(pw, mgm_3) 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): 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 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 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(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"] 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}") pw.dlog(f"GYR Vec Total: {gyr_vec_tot}")
current_idx += inc_len 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): 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 Altitude: {alt} [m]")
pw.dlog(f"GPS Position: {pos} [m]") pw.dlog(f"GPS Position: {pos} [m]")
pw.dlog(f"GPS Velocity: {velo} [m/s]") 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): 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 current_idx += inc_len_quat
pw.dlog(f"{'QUEST Quaternion'.ljust(25)}: {fmt_str_4.format(*quest_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 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): 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 Quaternion: {err_quat}")
pw.dlog(f"Control Values Error Angle: {err_ang} [deg]") pw.dlog(f"Control Values Error Angle: {err_ang} [deg]")
pw.dlog(f"Control Values Target Rotational Rate: {tgt_rot} [deg/s]") 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): 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 Torque: {rw_tgt_torque}")
pw.dlog(f"Actuator Commands RW Target Speed: {rw_tgt_speed}") pw.dlog(f"Actuator Commands RW Target Speed: {rw_tgt_speed}")
pw.dlog(f"Actuator Commands MTQ Target Dipole: {mtq_tgt_dipole}") 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): 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: else:
pw.dlog(f"Ctrl Strategy (key unknown): {rot_rate_source}") 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 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): 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 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 QUEST: {rot_rate_total_quest} [deg/s]")
pw.dlog(f"Fused Rotational Rate Total STR: {rot_rate_total_str} [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( def handle_acs_ctrl_action_replies(

View File

@ -14,7 +14,7 @@ from tmtccmd.pus.tc.s3_fsfw_hk import (
create_disable_periodic_hk_command_with_diag, create_disable_periodic_hk_command_with_diag,
) )
from tmtccmd.pus.tc.s8_fsfw_action import create_action_cmd 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__) _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"GNSS Date: {date_string}")
pw.dlog(f"Unix seconds {unix_seconds}") pw.dlog(f"Unix seconds {unix_seconds}")
FsfwTmTcPrinter.get_validity_buffer( pw.dlog(get_validity_buffer_str(validity_buffer=hk_data[current_idx:], num_vars=14))
validity_buffer=hk_data[current_idx:], num_vars=14
)
def handle_skyview_data(pw: PrintWrapper, hk_data: bytes): def handle_skyview_data(pw: PrintWrapper, hk_data: bytes):
@ -265,6 +263,4 @@ def handle_skyview_data(pw: PrintWrapper, hk_data: bytes):
used[idx], used[idx],
) )
) )
FsfwTmTcPrinter.get_validity_buffer( pw.dlog(get_validity_buffer_str(validity_buffer=hk_data[current_idx:], num_vars=6))
validity_buffer=hk_data[current_idx:], num_vars=6
)

View File

@ -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.pus.s200_fsfw_mode import pack_mode_data, Mode
from tmtccmd.util import ObjectIdU32 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__) _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 Y: {dipole_y}")
pw.dlog(f"Dipole Z: {dipole_z}") pw.dlog(f"Dipole Z: {dipole_z}")
pw.dlog(f"Current torque duration: {current_torque_duration}") 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: 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): for k, v in zip(ENG_HK_HEADERS, content_list):
pw.dlog(f"{k.ljust(30)}: {v}") pw.dlog(f"{k.ljust(30)}: {v}")
pw.dlog( pw.dlog(
FsfwTmTcPrinter.get_validity_buffer( get_validity_buffer_str(validity_buffer=validity_buffer, num_vars=num_of_vars)
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): for k, v in zip(STATUS_HEADERS, content_list):
pw.dlog(f"{k.ljust(30)}: {v}") pw.dlog(f"{k.ljust(30)}: {v}")
pw.dlog( pw.dlog(
FsfwTmTcPrinter.get_validity_buffer( get_validity_buffer_str(validity_buffer=validity_buffer, num_vars=num_of_vars)
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(header_list))
pw.dlog(str(content_list)) pw.dlog(str(content_list))
pw.dlog( pw.dlog(
FsfwTmTcPrinter.get_validity_buffer( get_validity_buffer_str(validity_buffer=validity_buffer, num_vars=num_of_vars)
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(header_list))
pw.dlog(str(content_list)) pw.dlog(str(content_list))
pw.dlog( pw.dlog(
FsfwTmTcPrinter.get_validity_buffer( get_validity_buffer_str(validity_buffer=validity_buffer, num_vars=num_of_vars)
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(header_list))
pw.dlog(str(content_list)) pw.dlog(str(content_list))
pw.dlog( pw.dlog(
FsfwTmTcPrinter.get_validity_buffer( get_validity_buffer_str(validity_buffer=validity_buffer, num_vars=num_of_vars)
validity_buffer=validity_buffer, num_vars=num_of_vars
)
) )

View File

@ -23,7 +23,7 @@ from tmtccmd.pus.s8_fsfw_action import create_action_cmd
from spacepackets.ecss.tc import PusTelecommand from spacepackets.ecss.tc import PusTelecommand
from tmtccmd.pus.s200_fsfw_mode import pack_mode_data, Mode, Subservice from tmtccmd.pus.s200_fsfw_mode import pack_mode_data, Mode, Subservice
from tmtccmd.util import ObjectIdU32 from tmtccmd.util import ObjectIdU32
from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter from tmtccmd.fsfw.tmtc_printer import get_validity_buffer_str
class OpCodesDev: 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), " f"Current Limit Control mode {clc_mode}. 0: Low Current Mode (0.3 A), "
"1: High Current Mode (0.6 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: if set_id == RwSetId.LAST_RESET:
pw.dlog( pw.dlog(
f"Received Last Reset HK (ID {set_id}) from Reaction Wheel {object_id.name}" 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: if current_idx > 0:
pw.dlog( pw.dlog(
FsfwTmTcPrinter.get_validity_buffer( get_validity_buffer_str(
validity_buffer=hk_data[current_idx:], num_vars=27 validity_buffer=hk_data[current_idx:], num_vars=27
) )
) )

View File

@ -27,7 +27,7 @@ from tmtccmd.pus.s8_fsfw_action import create_action_cmd
from tmtccmd.tmtc import DefaultPusQueueHelper from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.s200_fsfw_mode import pack_mode_data, Mode from tmtccmd.pus.s200_fsfw_mode import pack_mode_data, Mode
from tmtccmd.util import ObjectIdU32 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 from eive_tmtc.config.object_ids import STR_ASSEMBLY, STAR_TRACKER_ID
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -750,12 +750,13 @@ def create_update_firmware_target_cmd(
else: else:
param_id = ParamId.FIRMWARE_TARGET param_id = ParamId.FIRMWARE_TARGET
return create_load_param_cmd( return create_load_param_cmd(
create_scalar_u8_parameter( parameter=create_scalar_u8_parameter(
STAR_TRACKER_ID, STAR_TRACKER_ID,
0, 0,
param_id, param_id,
fw_target, 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] minor = struct.unpack("!B", hk_data[current_idx : current_idx + 1])[0]
pw.dlog(f"Minor: {minor}") pw.dlog(f"Minor: {minor}")
current_idx += 1 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): 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"CMOS Temperature: {cmos_temp}")
pw.dlog(f"FPGA Temperature: {fpga_temp}") pw.dlog(f"FPGA Temperature: {fpga_temp}")
current_idx += fmt_len 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): 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] solution_strategy = hk_data[current_idx]
pw.dlog(f"Solution strategy: {solution_strategy}") pw.dlog(f"Solution strategy: {solution_strategy}")
current_idx += 1 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): 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) current_idx = unpack_time_hk(hk_data, 0, pw)
blob_count = struct.unpack("!I", hk_data[current_idx : current_idx + 4])[0] blob_count = struct.unpack("!I", hk_data[current_idx : current_idx + 4])[0]
pw.dlog(f"Blob count: {blob_count}") 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): 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): for idx in range(8):
pw.dlog("{:<8} {:<8}".format(x_coords[idx], y_coords[idx])) pw.dlog("{:<8} {:<8}".format(x_coords[idx], y_coords[idx]))
assert current_idx == len(hk_data) - 1 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): 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 current_idx += 4
pw.dlog(f"Centroid count: {centroid_count}") pw.dlog(f"Centroid count: {centroid_count}")
assert current_idx == len(hk_data) - 1 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): 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 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): 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 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): 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 current_idx += inc_len
assert current_idx == len(hk_data) - 1 assert current_idx == len(hk_data) - 1
pw.dlog(f"Threshold {threshold}") 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): 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] 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( def handle_star_tracker_action_replies(

View File

@ -3,7 +3,7 @@ import struct
from eive_tmtc.pus_tm.defs import PrintWrapper from eive_tmtc.pus_tm.defs import PrintWrapper
from tmtccmd.util import ObjectIdU32 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): class SetId(enum.IntEnum):
@ -26,6 +26,6 @@ def handle_sus_hk(
pw.dlog("AIN Channel | Raw Value (hex) | Raw Value (dec)") pw.dlog("AIN Channel | Raw Value (hex) | Raw Value (dec)")
for idx, val in enumerate(channels): for idx, val in enumerate(channels):
pw.dlog(f"{idx} | {val[0]:#06x} |" + str(val[0]).ljust(5)) pw.dlog(f"{idx} | {val[0]:#06x} |" + str(val[0]).ljust(5))
FsfwTmTcPrinter.get_validity_buffer( pw.dlog(
validity_buffer=hk_data[current_idx:], num_vars=7 get_validity_buffer_str(validity_buffer=hk_data[current_idx:], num_vars=7)
) )

View File

@ -78,12 +78,13 @@ def pack_pdec_handler_commands(
pw = int(input("Specify positive window to set: ")) pw = int(input("Specify positive window to set: "))
q.add_pus_tc( q.add_pus_tc(
create_load_param_cmd( create_load_param_cmd(
create_scalar_u8_parameter( parameter=create_scalar_u8_parameter(
object_id, object_id,
0, 0,
ParameterId.POSITIVE_WINDOW, ParameterId.POSITIVE_WINDOW,
pw, pw,
) ),
apid=0,
) )
) )
if cmd_str == OpCode.NEGATIVE_WINDOW: if cmd_str == OpCode.NEGATIVE_WINDOW:
@ -91,12 +92,13 @@ def pack_pdec_handler_commands(
nw = int(input("Specify negative window to set: ")) nw = int(input("Specify negative window to set: "))
q.add_pus_tc( q.add_pus_tc(
create_load_param_cmd( create_load_param_cmd(
create_scalar_u8_parameter( parameter=create_scalar_u8_parameter(
object_id, object_id,
0, 0,
ParameterId.NEGATIVE_WINDOW, ParameterId.NEGATIVE_WINDOW,
nw, nw,
) ),
apid=0,
) )
) )
if cmd_str == OpCode.RESET_NO_INIT: if cmd_str == OpCode.RESET_NO_INIT:

View File

@ -17,7 +17,7 @@ from tmtccmd.config.tmtc import (
TmtcDefinitionWrapper, TmtcDefinitionWrapper,
tmtc_definitions_provider, 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.s200_fsfw_mode import Mode, create_mode_command
from tmtccmd.pus.tc.s3_fsfw_hk import ( from tmtccmd.pus.tc.s3_fsfw_hk import (
create_disable_periodic_hk_command_with_diag, 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] 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 Power Amplifier [C]: {temp_power_amplifier}")
pw.dlog(f"Temperatur Baseband Board [C]: {temp_baseband_board}") 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( def handle_syrlinks_rx_registers_dataset(
@ -364,9 +364,7 @@ def handle_syrlinks_rx_registers_dataset(
validity_buffer = hk_data[22:] validity_buffer = hk_data[22:]
for header, content in zip(header_list, content_list): for header, content in zip(header_list, content_list):
pw.dlog(f"{header}: {content}") pw.dlog(f"{header}: {content}")
pw.dlog( pw.dlog(get_validity_buffer_str(validity_buffer=validity_buffer, num_vars=8))
FsfwTmTcPrinter.get_validity_buffer(validity_buffer=validity_buffer, num_vars=8)
)
print(f"Carrier Detect: {carrier_detect}") print(f"Carrier Detect: {carrier_detect}")
print(f"Carrier Lock: {carrier_lock}") print(f"Carrier Lock: {carrier_lock}")
print(f"Data Lock (data clock recovery loop lock status): {data_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(?, ?, ?, ?, ?, ?, ?, ?, ?)", "INSERT INTO syrlinks_rx_regs VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)",
( (
str(hk_info.packet_uuid), str(hk_info.packet_uuid),
hk_info.hk_packet.pus_tm.time_provider.as_datetime(), # type: ignore hk_info.packet_datetime,
carrier_detect, carrier_detect,
carrier_lock, carrier_lock,
data_lock, data_lock,
@ -470,9 +468,7 @@ def handle_syrlinks_tx_registers_dataset(
validity_buffer = hk_info.hk_data[4:] validity_buffer = hk_info.hk_data[4:]
for header, content in zip(header_list, content_list): for header, content in zip(header_list, content_list):
pw.dlog(f"{header}: {content}") pw.dlog(f"{header}: {content}")
pw.dlog( pw.dlog(get_validity_buffer_str(validity_buffer=validity_buffer, num_vars=3))
FsfwTmTcPrinter.get_validity_buffer(validity_buffer=validity_buffer, num_vars=3)
)
# pw.dlog(f"TX CONV: {tx_conv!r}") # pw.dlog(f"TX CONV: {tx_conv!r}")
# pw.dlog(f"TX DIFF (differential encoder enable): {tx_diff_encoder_enable}") # pw.dlog(f"TX DIFF (differential encoder enable): {tx_diff_encoder_enable}")
print(f"TX Status: {tx_status_status!r}") print(f"TX Status: {tx_status_status!r}")
@ -504,7 +500,7 @@ def handle_syrlinks_tx_registers_dataset(
"INSERT INTO syrlinks_tx_regs VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", "INSERT INTO syrlinks_tx_regs VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
( (
str(hk_info.packet_uuid), 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,
tx_status_status.name, tx_status_status.name,
tx_conf_set, tx_conf_set,

View File

@ -15,7 +15,7 @@ from tmtccmd.pus.s20_fsfw_param import (
create_scalar_u8_parameter, create_scalar_u8_parameter,
create_load_param_cmd, 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 ( from tmtccmd.pus.s11_tc_sched import (
create_enable_tc_sched_cmd, create_enable_tc_sched_cmd,
create_disable_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") raise ValueError("Only 0 or 1 allowed for preferred SD card")
q.add_pus_tc( q.add_pus_tc(
create_load_param_cmd( create_load_param_cmd(
create_scalar_u8_parameter( parameter=create_scalar_u8_parameter(
object_id=CORE_CONTROLLER_ID, object_id=CORE_CONTROLLER_ID,
domain_id=0, domain_id=0,
unique_id=ParamId.PREF_SD, unique_id=ParamId.PREF_SD,
parameter=pref_sd, parameter=pref_sd,
) ),
apid=0,
) )
) )
elif cmd_str == OpCode.CP_HELPER: 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}" f"PL Voltage [mV] {pl_voltage}"
) )
pw.dlog(printout) pw.dlog(printout)
FsfwTmTcPrinter.get_validity_buffer( pw.dlog(get_validity_buffer_str(validity_buffer=hk_data[inc_len:], num_vars=3))
validity_buffer=hk_data[inc_len:], num_vars=3
)
def handle_core_ctrl_action_replies( def handle_core_ctrl_action_replies(

View File

@ -1,9 +1,8 @@
import enum import enum
import struct import struct
from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter
from eive_tmtc.pus_tm.defs import PrintWrapper from eive_tmtc.pus_tm.defs import PrintWrapper
from tmtccmd.fsfw.tmtc_printer import get_validity_buffer_str
class SetId(enum.IntEnum): 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"TM Errors: {tm_errors}")
pw.dlog(f"Queue Errors: {queue_errors}") pw.dlog(f"Queue Errors: {queue_errors}")
pw.dlog(f"Store Errors: {store_hits}") 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))

View File

@ -19,7 +19,7 @@ from tmtccmd.config.tmtc import CmdTreeNode
from tmtccmd.tmtc import DefaultPusQueueHelper from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.s200_fsfw_mode import pack_mode_data, Mode from tmtccmd.pus.s200_fsfw_mode import pack_mode_data, Mode
from tmtccmd.pus.s8_fsfw_action import create_action_cmd 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 from eive_tmtc.utility.input_helper import InputHelper
_LOGGER = logging.getLogger(__name__) _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"NVM 3 State {nvm_3_state}")
pw.dlog(f"Mission IO state {mission_io_state}") pw.dlog(f"Mission IO state {mission_io_state}")
pw.dlog(f"FMC state {fmc_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): 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"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"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}") 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): def handle_adc_report(hk_data: bytes):

View File

@ -28,7 +28,7 @@ from tmtccmd.pus.s20_fsfw_param import (
) )
from spacepackets.ecss.tc import PusTelecommand from spacepackets.ecss.tc import PusTelecommand
from eive_tmtc.config.object_ids import PL_PCDU_ID 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__) _LOGGER = logging.getLogger(__name__)
@ -615,8 +615,8 @@ def handle_plpcdu_hk(pw: PrintWrapper, set_id: int, hk_data: bytes):
pw.dlog(ch_print) pw.dlog(ch_print)
for i in range(12): for i in range(12):
pw.dlog(f"{ADC_CHANNELS_NAMED[i].ljust(24)} | {processed_vals[i]}") pw.dlog(f"{ADC_CHANNELS_NAMED[i].ljust(24)} | {processed_vals[i]}")
FsfwTmTcPrinter.get_validity_buffer( pw.dlog(
validity_buffer=hk_data[current_idx:], num_vars=3 get_validity_buffer_str(validity_buffer=hk_data[current_idx:], num_vars=3)
) )

View File

@ -18,7 +18,7 @@ from tmtccmd.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.s200_fsfw_mode import Mode, pack_mode_data 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.pus.tc.s3_fsfw_hk import generate_one_hk_command, make_sid
from tmtccmd.util import ObjectIdU32 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): 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(): for idx, val in ain_dict.items():
pw.dlog(f"{idx} | {val:#06x} | {str(val).ljust(5)}") pw.dlog(f"{idx} | {val:#06x} | {str(val).ljust(5)}")
current_idx += inc_len current_idx += inc_len
FsfwTmTcPrinter.get_validity_buffer( pw.dlog(
validity_buffer=hk_data[current_idx:], num_vars=7 get_validity_buffer_str(validity_buffer=hk_data[current_idx:], num_vars=7)
) )

View File

@ -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): 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: class ACUTestProcedure:

View File

@ -5,7 +5,7 @@ from spacepackets.ecss import PusTelecommand
from tmtccmd.config.tmtc import ( from tmtccmd.config.tmtc import (
CmdTreeNode, 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.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 Mode, pack_mode_data
from tmtccmd.pus.s200_fsfw_mode import Subservice as ModeSubservices 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:] validity_buffer = hk_data[inc_len:]
pw.dlog(str(HEADER_LIST)) pw.dlog(str(HEADER_LIST))
pw.dlog(str(content_list)) pw.dlog(str(content_list))
FsfwTmTcPrinter.get_validity_buffer( pw.dlog(get_validity_buffer_str(validity_buffer=validity_buffer, num_vars=10))
validity_buffer=validity_buffer, num_vars=10
)
elif set_id == BpxSetId.GET_CFG_SET: elif set_id == BpxSetId.GET_CFG_SET:
battheat_mode = hk_data[0] battheat_mode = hk_data[0]
battheat_low = struct.unpack("!b", hk_data[1:2])[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:] validity_buffer = hk_data[3:]
pw.dlog(str(header_list)) pw.dlog(str(header_list))
pw.dlog(str(content_list)) pw.dlog(str(content_list))
FsfwTmTcPrinter.get_validity_buffer( pw.dlog(get_validity_buffer_str(validity_buffer=validity_buffer, num_vars=10))
validity_buffer=validity_buffer, num_vars=10
)

View File

@ -259,4 +259,4 @@ def create_p60_dock_node() -> CmdTreeNode:
def p60_dock_req_hk_cmds(q: DefaultPusQueueHelper, op_code: str): 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))

View File

@ -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): 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: def info_on_pdu1(base: str) -> str:

View File

@ -332,7 +332,7 @@ def add_pdu2_common_defs(oce: OpCodeEntry):
def pdu2_req_hk_cmds(q: DefaultPusQueueHelper, op_code: str): 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): def pl_pcdu_bat_nom_on_cmd(q: DefaultPusQueueHelper):

View File

@ -6,7 +6,7 @@ import struct
from tmtccmd.config.tmtc import ( from tmtccmd.config.tmtc import (
CmdTreeNode, 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 import create_load_param_cmd
from tmtccmd.pus.s20_fsfw_param_defs import ( from tmtccmd.pus.s20_fsfw_param_defs import (
create_scalar_double_parameter, 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"Total Battery Current: {total_battery_current} [mA]")
pw.dlog(f"Open Circuit Voltage Charge: {open_circuit_voltage_charge*100:8.3f} [%]") 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} [%]") 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): 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] )[0]
current_idx += inc_len_uint16 current_idx += inc_len_uint16
pw.dlog(f"PL Use Allowed: {pl_use_allowed}") 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))

View File

@ -13,7 +13,7 @@ from eive_tmtc.tmtc.power.common_power import (
) )
from eive_tmtc.tmtc.power.power import PcduSetIds from eive_tmtc.tmtc.power.power import PcduSetIds
from tmtccmd.util import ObjectIdBase 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.pus_tm.defs import PrintWrapper
from eive_tmtc.gomspace.gomspace_common import GomspaceDeviceActionId from eive_tmtc.gomspace.gomspace_common import GomspaceDeviceActionId
from eive_tmtc.config.object_ids import ( from eive_tmtc.config.object_ids import (
@ -125,6 +125,8 @@ class DevicesInfoParser:
return current_idx return current_idx
def print(self, pw: PrintWrapper): 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)") pw.dlog("Device Type | Device State (0:None | 1:OK | 3:ERROR | 4:NOT FOUND)")
for i in range(len(self.dev_types)): for i in range(len(self.dev_types)):
pw.dlog( 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} | " temps = f"In C: Temp 0 {temp_0} | Temp 1 {temp_1} | "
pw.dlog(temps) pw.dlog(temps)
pw.dlog(batt_info) pw.dlog(batt_info)
FsfwTmTcPrinter.get_validity_buffer( pw.dlog(
validity_buffer=hk_data[current_idx:], num_vars=9 get_validity_buffer_str(validity_buffer=hk_data[current_idx:], num_vars=9)
) )
if set_id == SetId.AUX: if set_id == SetId.AUX:
pw.dlog("Received P60 AUX HK. Voltages in mV, currents in mA") 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)" "6:TempSens(BatPack)|7:TempSens(BatPack)"
) )
dev_parser.print(pw=pw) dev_parser.print(pw=pw)
FsfwTmTcPrinter.get_validity_buffer( pw.dlog(
validity_buffer=hk_data[current_idx:], num_vars=27 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"Boot Count {bootcnt} | Uptime {uptime} sec | "
f"MPPT Time {mppt_time} msec | MPPT Period {mppt_period} msec" f"MPPT Time {mppt_time} msec | MPPT Period {mppt_period} msec"
) )
FsfwTmTcPrinter.get_validity_buffer( pw.dlog(
validity_buffer=hk_data[current_idx:], num_vars=12 get_validity_buffer_str(validity_buffer=hk_data[current_idx:], num_vars=12)
) )
if set_id == SetId.AUX: if set_id == SetId.AUX:
current_idx = 0 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" "ACU Dev Types: 0:FRAM|1:ADC|2:ADC|3:DAC|4:DAC|5:DAC|6:TempSens|7:Reserved"
) )
dev_parser.print(pw=pw) dev_parser.print(pw=pw)
FsfwTmTcPrinter.get_validity_buffer( pw.dlog(
validity_buffer=hk_data[current_idx:], num_vars=8 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"{name.ljust(25)}: {val}")
pw.dlog(f"{'P60 Dock 5V Stack'.ljust(25)}: {p60_stack_5v_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}") 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))

View File

@ -13,7 +13,7 @@ from tmtccmd.util import ObjectIdU32
from tmtccmd.pus.s200_fsfw_mode import Mode, pack_mode_data, Subservice from tmtccmd.pus.s200_fsfw_mode import Mode, pack_mode_data, Subservice
import eive_tmtc.config.object_ids as oids import eive_tmtc.config.object_ids as oids
from eive_tmtc.config.object_ids import get_object_ids 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 = [ RTD_IDS = [
oids.RTD_0_PLOC_HSPD, 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"RTD Value: {rtd_val}")
pw.dlog(f"Error Byte: {error_byte}") pw.dlog(f"Error Byte: {error_byte}")
pw.dlog(f"Last Error Byte: {last_err_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(): def prompt_rtd_idx():

View File

@ -18,7 +18,7 @@ from tmtccmd.config.tmtc import (
TmtcDefinitionWrapper, TmtcDefinitionWrapper,
OpCodeEntry, 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.tmtc import DefaultPusQueueHelper
from tmtccmd.pus.s200_fsfw_mode import Mode, pack_mode_data 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 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: if set_id == SetId.TEMPERATURE:
temp = struct.unpack("!f", hk_data[0:4])[0] temp = struct.unpack("!f", hk_data[0:4])[0]
pw.dlog(f"TMP1075 Temperature: {temp}") 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))

View File

@ -29,9 +29,9 @@ classifiers = [
"Topic :: Scientific/Engineering" "Topic :: Scientific/Engineering"
] ]
dependencies = [ dependencies = [
"tmtccmd ~= 8.0", "tmtccmd ~= 8.0.1",
# "tmtccmd @ git+https://github.com/robamu-org/tmtccmd@main",
"cfdp-py~=0.1.0", "cfdp-py~=0.1.0",
# "tmtccmd @ git+https://github.com/robamu-org/tmtccmd@prep_v8.0.0",
"python-dateutil ~= 2.8", "python-dateutil ~= 2.8",
] ]