2022-06-01 11:59:45 +02:00
|
|
|
import enum
|
2022-09-29 17:41:37 +02:00
|
|
|
import pprint
|
2022-05-19 13:20:22 +02:00
|
|
|
import struct
|
|
|
|
|
2022-11-29 16:53:29 +01:00
|
|
|
from eive_tmtc.pus_tm.defs import PrintWrapper
|
2022-07-08 16:25:46 +02:00
|
|
|
from tmtccmd.util import ObjectIdU32
|
|
|
|
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
2022-05-19 13:20:22 +02:00
|
|
|
|
|
|
|
|
2022-06-01 11:59:45 +02:00
|
|
|
class SetIds(enum.IntEnum):
|
|
|
|
SENSOR_TEMPERATURE_SET = 0
|
|
|
|
DEVICE_TEMPERATURE_SET = 1
|
|
|
|
SUS_TEMPERATURE_SET = 2
|
|
|
|
|
|
|
|
|
2022-05-19 13:20:22 +02:00
|
|
|
def handle_thermal_controller_hk_data(
|
2022-07-05 02:12:54 +02:00
|
|
|
object_id: ObjectIdU32, printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes
|
2022-05-19 13:20:22 +02:00
|
|
|
):
|
2022-09-29 17:41:37 +02:00
|
|
|
# need a better solutuon for this is this is used again..
|
|
|
|
"""
|
|
|
|
if TCP_TEMP_SENS_SERVER is None:
|
|
|
|
TCP_TEMP_SENS_SERVER = TmTcpServer("localhost", 7305)
|
|
|
|
if TCP_TEMP_DEV_SERVER:
|
|
|
|
TCP_TEMP_DEV_SERVER = TmTcpServer("localhost", 7306)
|
|
|
|
"""
|
2022-06-02 18:51:40 +02:00
|
|
|
if set_id == SetIds.SENSOR_TEMPERATURE_SET:
|
2022-05-19 13:20:22 +02:00
|
|
|
pw = PrintWrapper(printer)
|
2022-06-01 10:47:57 +02:00
|
|
|
pw.dlog("Received sensor temperature data")
|
2022-05-19 13:20:22 +02:00
|
|
|
|
|
|
|
# get all the floats
|
2022-12-02 16:16:19 +01:00
|
|
|
tm_data = struct.unpack("!fffffffffffffffffffff", hk_data[: 21 * 4])
|
2022-07-04 15:22:53 +02:00
|
|
|
parsed_data = {
|
|
|
|
"SENSOR_PLOC_HEATSPREADER": tm_data[0],
|
|
|
|
"SENSOR_PLOC_MISSIONBOARD": tm_data[1],
|
|
|
|
"SENSOR_4K_CAMERA": tm_data[2],
|
|
|
|
"SENSOR_DAC_HEATSPREADER": tm_data[3],
|
|
|
|
"SENSOR_STARTRACKER": tm_data[4],
|
|
|
|
"SENSOR_RW1": tm_data[5],
|
|
|
|
"SENSOR_DRO": tm_data[6],
|
|
|
|
"SENSOR_SCEX": tm_data[7],
|
|
|
|
"SENSOR_X8": tm_data[8],
|
|
|
|
"SENSOR_HPA": tm_data[9],
|
|
|
|
"SENSOR_TX_MODUL": tm_data[10],
|
|
|
|
"SENSOR_MPA": tm_data[11],
|
|
|
|
"SENSOR_ACU": tm_data[12],
|
|
|
|
"SENSOR_PLPCDU_HEATSPREADER": tm_data[13],
|
|
|
|
"SENSOR_TCS_BOARD": tm_data[14],
|
|
|
|
"SENSOR_MAGNETTORQUER": tm_data[15],
|
2022-12-02 16:16:19 +01:00
|
|
|
"TMP1075 TCS 0": tm_data[16],
|
|
|
|
"TMP1075 TCS 1": tm_data[17],
|
|
|
|
"TMP1075 PL PCDU 0": tm_data[18],
|
|
|
|
"TMP1075 PL PCDU 1": tm_data[19],
|
|
|
|
"TMP1075 IF BOARD": tm_data[20],
|
2022-07-04 15:22:53 +02:00
|
|
|
}
|
2022-07-05 02:12:54 +02:00
|
|
|
printer.file_logger.info(str(parsed_data))
|
2022-09-29 17:41:37 +02:00
|
|
|
pp = pprint.PrettyPrinter(depth=4)
|
|
|
|
pp.pprint(parsed_data)
|
|
|
|
# tcp_server_sensor_temperatures.report_parsed_hk_data(
|
|
|
|
# object_id, set_id, parsed_data
|
|
|
|
# )
|
2022-06-02 18:51:40 +02:00
|
|
|
elif set_id == SetIds.DEVICE_TEMPERATURE_SET:
|
2022-06-01 10:47:57 +02:00
|
|
|
pw = PrintWrapper(printer)
|
|
|
|
pw.dlog("Received device temperature data")
|
2022-06-10 11:02:08 +02:00
|
|
|
fmt_str = "!fhhhhiiiifffhffffffffffffff"
|
|
|
|
tm_data = struct.unpack(fmt_str, hk_data[:98])
|
2022-06-01 10:47:57 +02:00
|
|
|
parsed_data = {
|
|
|
|
"Q7S_TEMPERATURE": tm_data[0],
|
|
|
|
"BATTERY_TEMPERATURE_1": tm_data[1],
|
|
|
|
"BATTERY_TEMPERATURE_2": tm_data[2],
|
|
|
|
"BATTERY_TEMPERATURE_3": tm_data[3],
|
|
|
|
"BATTERY_TEMPERATURE_4": tm_data[4],
|
|
|
|
"RW_1_TEMPERATURE": tm_data[5],
|
|
|
|
"RW_2_TEMPERATURE": tm_data[6],
|
|
|
|
"RW_3_TEMPERATURE": tm_data[7],
|
|
|
|
"RW_4_TEMPERATURE": tm_data[8],
|
|
|
|
"STARTRACKER_TEMPERATURE": tm_data[9],
|
|
|
|
"SYRLINKS_POWER_AMPLIFIER_TEMPERATURE": tm_data[10],
|
|
|
|
"SYRLINKS_BASEBAND_BOARD_TEMPERATURE": tm_data[11],
|
|
|
|
"MGT_TEMPERATURE": tm_data[12],
|
|
|
|
"ACU_TEMPERATURE_1": tm_data[13],
|
|
|
|
"ACU_TEMPERATURE_2": tm_data[14],
|
|
|
|
"ACU_TEMPERATURE_3": tm_data[15],
|
|
|
|
"PDU1_TEMPERATURE": tm_data[16],
|
|
|
|
"PDU2_TEMPERATURE": tm_data[17],
|
|
|
|
"P60DOCK_TEMPERATURE_1": tm_data[18],
|
|
|
|
"P60DOCK_TEMPERATURE_2": tm_data[19],
|
|
|
|
"GYRO_0_TEMPERATURE": tm_data[20],
|
|
|
|
"GYRO_1_TEMPERATURE": tm_data[21],
|
|
|
|
"GYRO_2_TEMPERATURE": tm_data[22],
|
|
|
|
"GYRO_3_TEMPERATURE": tm_data[23],
|
|
|
|
"MGM_0_TEMPERATURE": tm_data[24],
|
|
|
|
"MGM_1_TEMPERATURE": tm_data[25],
|
|
|
|
"ADC_PL_PCDU_TEMPERATURE": tm_data[26],
|
|
|
|
}
|
2022-09-29 17:41:37 +02:00
|
|
|
printer.file_logger.info(str(parsed_data))
|
|
|
|
pp = pprint.PrettyPrinter(depth=4)
|
|
|
|
pp.pprint(parsed_data)
|
2022-06-10 11:02:08 +02:00
|
|
|
# print(parsed_data)
|
2022-09-29 17:41:37 +02:00
|
|
|
# tcp_server_device_temperatures.report_parsed_hk_data(
|
|
|
|
# object_id, set_id, parsed_data
|
|
|
|
# )
|
2022-06-02 18:51:40 +02:00
|
|
|
elif set_id == SetIds.SUS_TEMPERATURE_SET:
|
|
|
|
pass
|
|
|
|
# pw = PrintWrapper(printer)
|
|
|
|
# pw.dlog("Received SUS temperature data")
|
|
|
|
# fmt_str = "!ffffffffffffffffff"
|
|
|
|
# tm_data = struct.unpack(fmt_str, hk_data[:4 * 18])
|
|
|
|
# parsed_data = {
|
|
|
|
# "SUS_0": tm_data[0],
|
|
|
|
# "SUS_1": tm_data[1],
|
|
|
|
# "SUS_2": tm_data[2],
|
|
|
|
# "SUS_3": tm_data[3],
|
|
|
|
# "SUS_4": tm_data[4],
|
|
|
|
# "SUS_5": tm_data[5],
|
|
|
|
# "SUS_6": tm_data[6],
|
|
|
|
# "SUS_7": tm_data[7],
|
|
|
|
# "SUS_8": tm_data[8],
|
|
|
|
# "SUS_9": tm_data[9],
|
|
|
|
# "SUS_10": tm_data[10],
|
|
|
|
# "SUS_11": tm_data[11],
|
|
|
|
# }
|
|
|
|
# print(parsed_data)
|
2022-06-01 11:59:45 +02:00
|
|
|
# TODO: Forward data to space simulator
|