eive-tmtc/pus_tc/tc_packer_hook.py

202 lines
7.9 KiB
Python
Raw Normal View History

2021-09-13 18:06:25 +02:00
"""Hook function which packs telecommands based on service and operation code string
2020-12-17 17:50:00 +01:00
"""
import os
from collections import deque
2021-03-19 17:39:52 +01:00
from typing import Union
2021-05-17 17:42:04 +02:00
from tmtccmd.config.definitions import CoreServiceList
2021-06-28 19:06:09 +02:00
from tmtccmd.utility.logger import get_console_logger
from tmtccmd.tc.definitions import TcQueueT
from tmtccmd.tc.service_5_event import pack_generic_service5_test_into
2021-10-04 01:33:03 +02:00
from tmtccmd.pus.service_17_test import pack_service_17_ping_command
2021-03-19 17:39:52 +01:00
from pus_tc.service_200_mode import pack_service200_test_into
2021-03-19 17:39:52 +01:00
from pus_tc.p60dock import pack_p60dock_test_into
2021-09-17 13:06:53 +02:00
from pus_tc.pdu2 import pack_pdu2_commands
from pus_tc.pdu1 import pack_pdu1_commands
2021-03-19 17:39:52 +01:00
from pus_tc.acu import pack_acu_test_into
2021-03-26 13:56:02 +01:00
from pus_tc.imtq import pack_imtq_test_into
2021-03-19 17:39:52 +01:00
from pus_tc.tmp1075 import pack_tmp1075_test_into
2021-07-11 14:29:11 +02:00
from pus_tc.ploc_mpsoc import pack_ploc_mpsoc_test_into
from pus_tc.ploc_supervisor import pack_ploc_supv_test_into
2021-03-19 17:39:52 +01:00
from pus_tc.heater import pack_heater_test_into
2021-06-25 15:25:22 +02:00
from pus_tc.reaction_wheels import pack_single_rw_test_into
from pus_tc.rad_sensor import pack_rad_sensor_test_into
2021-08-07 14:34:26 +02:00
from pus_tc.ploc_upater import pack_ploc_updater_test_into
2021-08-31 11:17:01 +02:00
from pus_tc.ploc_memory_dumper import pack_ploc_memory_dumper_cmd
2021-11-24 15:56:25 +01:00
from pus_tc.ccsds_handler import pack_ccsds_handler_test
2021-08-03 15:28:28 +02:00
from pus_tc.core import pack_core_commands
2021-12-02 08:01:18 +01:00
from pus_tc.star_tracker import pack_star_tracker_commands
2021-12-02 09:25:31 +01:00
from pus_tc.syrlinks_hk_handler import pack_syrlinks_command
2021-09-08 13:20:22 +02:00
from pus_tc.gps import pack_gps_command
2021-09-13 18:06:25 +02:00
from pus_tc.acs import pack_acs_command
2021-12-02 08:01:18 +01:00
from pus_tc.str_img_helper import pack_str_img_helper_command
2021-03-19 17:39:52 +01:00
from config.definitions import CustomServiceList
2022-01-18 14:03:56 +01:00
from config.object_ids import (
P60_DOCK_HANDLER,
PDU_1_HANDLER_ID,
PDU_2_HANDLER_ID,
ACU_HANDLER_ID,
TMP_1075_1_HANDLER_ID,
TMP_1075_2_HANDLER_ID,
HEATER_ID,
IMTQ_HANDLER_ID,
PLOC_MPSOC_ID,
RW1_ID,
RW2_ID,
RW3_ID,
RW4_ID,
RAD_SENSOR_ID,
PLOC_SUPV_ID,
PLOC_UPDATER_ID,
STAR_TRACKER_ID,
PLOC_MEMORY_DUMPER_ID,
GPS_HANDLER_0_ID,
GPS_HANDLER_1_ID,
CCSDS_HANDLER_ID,
PDEC_HANDLER_ID,
STR_IMG_HELPER_ID,
SYRLINKS_HANDLER_ID,
)
2020-12-17 17:50:00 +01:00
2021-06-28 19:06:09 +02:00
LOGGER = get_console_logger()
2020-12-17 17:50:00 +01:00
2022-01-18 14:03:56 +01:00
def pack_service_queue_user(
service: Union[str, int], op_code: str, service_queue: TcQueueT
):
2021-05-17 17:42:04 +02:00
if service == CoreServiceList.SERVICE_5.value:
2021-05-17 17:48:02 +02:00
return pack_generic_service5_test_into(tc_queue=service_queue)
2021-05-17 17:42:04 +02:00
if service == CoreServiceList.SERVICE_17.value:
2022-01-18 14:03:56 +01:00
return service_queue.appendleft(
pack_service_17_ping_command(ssc=1700).pack_command_tuple()
)
if service == CoreServiceList.SERVICE_200.value:
return pack_service200_test_into(tc_queue=service_queue)
2021-03-19 17:39:52 +01:00
if service == CustomServiceList.P60DOCK.value:
2021-05-17 17:42:04 +02:00
object_id = P60_DOCK_HANDLER
2022-01-18 14:03:56 +01:00
return pack_p60dock_test_into(
object_id=object_id, tc_queue=service_queue, op_code=op_code
)
2021-03-19 17:39:52 +01:00
if service == CustomServiceList.PDU1.value:
2021-08-11 16:49:32 +02:00
object_id = PDU_1_HANDLER_ID
2022-01-18 14:03:56 +01:00
return pack_pdu1_commands(
object_id=object_id, tc_queue=service_queue, op_code=op_code
)
2021-03-19 17:39:52 +01:00
if service == CustomServiceList.PDU2.value:
2021-08-17 11:49:37 +02:00
object_id = PDU_2_HANDLER_ID
2022-01-18 14:03:56 +01:00
return pack_pdu2_commands(
object_id=object_id, tc_queue=service_queue, op_code=op_code
)
2021-03-19 17:39:52 +01:00
if service == CustomServiceList.ACU.value:
2021-05-17 17:42:04 +02:00
object_id = ACU_HANDLER_ID
2022-01-18 14:03:56 +01:00
return pack_acu_test_into(
object_id=object_id, tc_queue=service_queue, op_code=op_code
)
2021-03-19 17:39:52 +01:00
if service == CustomServiceList.TMP1075_1.value:
2021-05-17 17:42:04 +02:00
object_id = TMP_1075_1_HANDLER_ID
2022-01-18 14:03:56 +01:00
return pack_tmp1075_test_into(
object_id=object_id, tc_queue=service_queue, op_code=op_code
)
2021-03-19 17:39:52 +01:00
if service == CustomServiceList.TMP1075_2.value:
2021-05-17 17:42:04 +02:00
object_id = TMP_1075_2_HANDLER_ID
2022-01-18 14:03:56 +01:00
return pack_tmp1075_test_into(
object_id=object_id, tc_queue=service_queue, op_code=op_code
)
2021-03-19 17:39:52 +01:00
if service == CustomServiceList.HEATER.value:
2021-05-17 17:42:04 +02:00
object_id = HEATER_ID
2021-05-17 17:48:02 +02:00
return pack_heater_test_into(object_id=object_id, tc_queue=service_queue)
2021-03-26 13:56:02 +01:00
if service == CustomServiceList.IMTQ.value:
2021-06-11 13:51:56 +02:00
object_id = IMTQ_HANDLER_ID
2022-01-18 14:03:56 +01:00
return pack_imtq_test_into(
object_id=object_id, tc_queue=service_queue, op_code=op_code
)
2021-04-11 11:08:52 +02:00
if service == CustomServiceList.PLOC.value:
2021-07-09 12:57:39 +02:00
object_id = PLOC_MPSOC_ID
2021-07-23 13:40:27 +02:00
return pack_ploc_mpsoc_test_into(object_id=object_id, tc_queue=service_queue)
2021-06-29 09:51:54 +02:00
if service == CustomServiceList.REACTION_WHEEL_1.value:
2021-06-25 12:16:35 +02:00
object_id = RW1_ID
2022-01-18 14:03:56 +01:00
return pack_single_rw_test_into(
object_id=object_id, tc_queue=service_queue, op_code=op_code
)
2021-06-29 09:51:54 +02:00
if service == CustomServiceList.REACTION_WHEEL_2.value:
object_id = RW2_ID
2022-01-18 14:03:56 +01:00
return pack_single_rw_test_into(
object_id=object_id, tc_queue=service_queue, op_code=op_code
)
2021-06-29 09:51:54 +02:00
if service == CustomServiceList.REACTION_WHEEL_3.value:
object_id = RW3_ID
2022-01-18 14:03:56 +01:00
return pack_single_rw_test_into(
object_id=object_id, tc_queue=service_queue, op_code=op_code
)
2021-06-29 09:51:54 +02:00
if service == CustomServiceList.REACTION_WHEEL_4.value:
object_id = RW4_ID
2022-01-18 14:03:56 +01:00
return pack_single_rw_test_into(
object_id=object_id, tc_queue=service_queue, op_code=op_code
)
if service == CustomServiceList.RAD_SENSOR.value:
object_id = RAD_SENSOR_ID
2021-09-08 13:20:22 +02:00
return pack_rad_sensor_test_into(
object_id=object_id, tc_queue=service_queue, op_code=op_code
)
2021-07-11 14:29:11 +02:00
if service == CustomServiceList.PLOC_SUPV.value:
object_id = PLOC_SUPV_ID
2021-09-08 13:20:22 +02:00
return pack_ploc_supv_test_into(
object_id=object_id, tc_queue=service_queue, op_code=op_code
)
2021-08-07 14:34:26 +02:00
if service == CustomServiceList.PLOC_UPDATER.value:
object_id = PLOC_UPDATER_ID
2021-09-08 13:20:22 +02:00
return pack_ploc_updater_test_into(
object_id=object_id, tc_queue=service_queue, op_code=op_code
)
2021-08-16 10:03:40 +02:00
if service == CustomServiceList.STAR_TRACKER.value:
object_id = STAR_TRACKER_ID
2021-12-02 08:01:18 +01:00
return pack_star_tracker_commands(
object_id=object_id, tc_queue=service_queue, op_code=op_code
)
if service == CustomServiceList.STR_IMG_HELPER.value:
object_id = STR_IMG_HELPER_ID
return pack_str_img_helper_command(
2021-09-08 13:20:22 +02:00
object_id=object_id, tc_queue=service_queue, op_code=op_code
)
2021-08-03 15:28:28 +02:00
if service == CustomServiceList.CORE.value:
return pack_core_commands(tc_queue=service_queue, op_code=op_code)
2021-08-31 11:17:01 +02:00
if service == CustomServiceList.PLOC_MEMORY_DUMPER.value:
object_id = PLOC_MEMORY_DUMPER_ID
2021-09-08 13:20:22 +02:00
return pack_ploc_memory_dumper_cmd(
object_id=object_id, tc_queue=service_queue, op_code=op_code
)
2021-09-13 18:06:25 +02:00
if service == CustomServiceList.ACS.value:
return pack_acs_command(tc_queue=service_queue, op_code=op_code)
2021-09-08 13:20:22 +02:00
if service == CustomServiceList.GPS_0.value:
2022-01-18 14:03:56 +01:00
return pack_gps_command(
object_id=GPS_HANDLER_0_ID, tc_queue=service_queue, op_code=op_code
)
2021-09-08 13:20:22 +02:00
if service == CustomServiceList.GPS_1.value:
2022-01-18 14:03:56 +01:00
return pack_gps_command(
object_id=GPS_HANDLER_1_ID, tc_queue=service_queue, op_code=op_code
)
2021-11-24 15:56:25 +01:00
if service == CustomServiceList.CCSDS_HANDLER.value:
2022-01-18 14:03:56 +01:00
return pack_ccsds_handler_test(
object_id=CCSDS_HANDLER_ID, tc_queue=service_queue, op_code=op_code
)
2021-11-24 15:56:25 +01:00
if service == CustomServiceList.PDEC_HANDLER.value:
2022-01-18 14:03:56 +01:00
return pack_ccsds_handler_test(
object_id=PDEC_HANDLER_ID, tc_queue=service_queue, op_code=op_code
)
2021-12-02 09:25:31 +01:00
if service == CustomServiceList.SYRLINKS.value:
2022-01-18 14:03:56 +01:00
return pack_syrlinks_command(
object_id=SYRLINKS_HANDLER_ID, tc_queue=service_queue, op_code=op_code
)
2020-12-17 17:50:00 +01:00
LOGGER.warning("Invalid Service !")
def create_total_tc_queue_user() -> TcQueueT:
if not os.path.exists("log"):
os.mkdir("log")
tc_queue = deque()
2021-02-03 14:14:54 +01:00
pack_generic_service5_test_into(tc_queue)
2021-10-04 01:33:03 +02:00
tc_queue.appendleft(pack_service_17_ping_command(ssc=1700).pack_command_tuple())
2020-12-17 17:50:00 +01:00
return tc_queue