add RTD HK
This commit is contained in:
@ -3,6 +3,7 @@ from typing import Optional
|
||||
import struct
|
||||
|
||||
from eive_tmtc.config.definitions import CustomServiceList
|
||||
from eive_tmtc.pus_tm.defs import PrintWrapper
|
||||
from spacepackets.ecss import PusTelecommand
|
||||
from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry
|
||||
from tmtccmd.config.tmtc import tmtc_definitions_provider
|
||||
@ -12,6 +13,7 @@ from tmtccmd.util import ObjectIdU32
|
||||
from tmtccmd.tc.pus_200_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.util.tmtc_printer import FsfwTmTcPrinter
|
||||
|
||||
RTD_IDS = [
|
||||
oids.RTD_0_PLOC_HSPD,
|
||||
@ -32,6 +34,25 @@ RTD_IDS = [
|
||||
oids.RTD_15_IMTQ,
|
||||
]
|
||||
|
||||
RTD_NAMES = {
|
||||
oids.RTD_0_PLOC_HSPD: "RTD 0 PLOC Heatspreader",
|
||||
oids.RTD_1_PLOC_MISSIONBRD: "RTD 1 PLOC Missionboard",
|
||||
oids.RTD_2_4K_CAM: "RTD 2 4K Camera",
|
||||
oids.RTD_3_DAC_HSPD: "RTD 3 DAC HSPC",
|
||||
oids.RTD_4_STR: "RTD 4 Startracker",
|
||||
oids.RTD_5_RW1_MX_MY: "RTD 5 RW1 MX MY",
|
||||
oids.RTD_6_DRO: "RTD 6 DRO",
|
||||
oids.RTD_7_SCEX: "RTD 7 SCEX",
|
||||
oids.RTD_8_X8: "RTD 8 X8",
|
||||
oids.RTD_9_HPA: "RTD 9 HPA",
|
||||
oids.RTD_10_PL_TX: "RTD 10 PL TX",
|
||||
oids.RTD_11_MPA: "RTD 11 MPA",
|
||||
oids.RTD_12_ACU: "RTD 12 ACU",
|
||||
oids.RTD_13_PLPCDU_HSPD: "RTD 13 PL PCDU Heatspreader",
|
||||
oids.RTD_14_TCS_BRD: "RTD 14 TCS Board",
|
||||
oids.RTD_15_IMTQ: "RTD 15 iMTQ",
|
||||
}
|
||||
|
||||
|
||||
class CommandId:
|
||||
WRITE_CONFIG = 6
|
||||
@ -126,6 +147,24 @@ def pack_rtd_commands(
|
||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||
|
||||
|
||||
def handle_rtd_hk(object_id: bytes, hk_data: bytes, printer: FsfwTmTcPrinter):
|
||||
pw = PrintWrapper(printer)
|
||||
rtd_name = RTD_NAMES.get(object_id)
|
||||
if rtd_name is None:
|
||||
rtd_name = "unknown RTD device"
|
||||
pw.dlog(f"Received RTD HK for RTD {rtd_name} with object ID {object_id}")
|
||||
fmt_str = "!ffBB"
|
||||
fmt_len = struct.calcsize(fmt_str)
|
||||
(rtd_val, temp_celcius, last_err_byte, error_byte) = struct.unpack(
|
||||
fmt_str, hk_data[0 : 0 + fmt_len]
|
||||
)
|
||||
pw.dlog(f"Temperature Celcius: {temp_celcius}")
|
||||
pw.dlog(f"RTD Value: {rtd_val}")
|
||||
pw.dlog(f"Error Byte: {error_byte}")
|
||||
pw.dlog(f"Last Error Byte: {last_err_byte}")
|
||||
pw.printer.print_validity_buffer(hk_data[fmt_len:], 4)
|
||||
|
||||
|
||||
def prompt_rtd_idx():
|
||||
while True:
|
||||
rtd_idx = input("Please specify RTD index [0-15]: ")
|
||||
|
Reference in New Issue
Block a user