fsfw-example-tmtc-common/pus_tc/service_200_mode.py

62 lines
2.6 KiB
Python
Raw Normal View History

2021-07-14 00:28:33 +02:00
# -*- coding: utf-8 -*-
"""
@file tmtcc_tc_service_200_mode.py
@brief PUS Service 200: PUS custom service 200: Mode commanding
@author R. Mueller
@date 02.05.2020
"""
2021-10-13 12:08:50 +02:00
from spacepackets.ecss.tc import PusTelecommand
2021-07-14 00:28:33 +02:00
from tmtccmd.config.definitions import QueueCommands
2021-07-14 01:27:38 +02:00
from tmtccmd.tc.packer import TcQueueT
2021-10-13 12:08:50 +02:00
from tmtccmd.tc.service_200_mode import pack_mode_data, Modes
2021-07-14 00:28:33 +02:00
from common_tmtc.config.object_ids import TEST_DEVICE_0_ID, ASSEMBLY_ID
2021-07-14 00:28:33 +02:00
def pack_service_200_commands_into(tc_queue: TcQueueT, op_code: str):
2021-12-14 15:46:00 +01:00
if op_code == "test":
2021-07-14 00:28:33 +02:00
pack_service_200_test_into(tc_queue=tc_queue, init_ssc=2000)
elif op_code == "asm_to_normal" or op_code == "0":
# Set Normal mode
tc_queue.appendleft(
(QueueCommands.PRINT, "Testing Service 200: Set Mode Normal")
)
# Command assembly to normal, submode 1 for dual mode,
mode_data = pack_mode_data(ASSEMBLY_ID, Modes.NORMAL, 1)
command = PusTelecommand(service=200, subservice=1, ssc=0, app_data=mode_data)
tc_queue.appendleft(command.pack_command_tuple())
2021-07-14 00:28:33 +02:00
def pack_service_200_test_into(init_ssc: int, tc_queue: TcQueueT) -> int:
new_ssc = init_ssc
tc_queue.appendleft((QueueCommands.PRINT, "Testing Service 200"))
# Object ID: DUMMY Device
object_id = TEST_DEVICE_0_ID
# Set On Mode
tc_queue.appendleft((QueueCommands.PRINT, "Testing Service 200: Set Mode On"))
2021-10-13 12:08:50 +02:00
mode_data = pack_mode_data(object_id, Modes.ON, 0)
2021-07-14 00:28:33 +02:00
command = PusTelecommand(service=200, subservice=1, ssc=new_ssc, app_data=mode_data)
tc_queue.appendleft(command.pack_command_tuple())
new_ssc += 1
# Set Normal mode
tc_queue.appendleft((QueueCommands.PRINT, "Testing Service 200: Set Mode Normal"))
2021-10-13 12:08:50 +02:00
mode_data = pack_mode_data(object_id, Modes.NORMAL, 0)
2021-07-14 00:28:33 +02:00
command = PusTelecommand(service=200, subservice=1, ssc=new_ssc, app_data=mode_data)
tc_queue.appendleft(command.pack_command_tuple())
new_ssc += 1
# Set Raw Mode
tc_queue.appendleft((QueueCommands.PRINT, "Testing Service 200: Set Mode Raw"))
2021-10-13 12:08:50 +02:00
mode_data = pack_mode_data(object_id, Modes.RAW, 0)
2021-07-14 00:28:33 +02:00
command = PusTelecommand(service=200, subservice=1, ssc=new_ssc, app_data=mode_data)
tc_queue.appendleft(command.pack_command_tuple())
new_ssc += 1
# Set Off Mode
tc_queue.appendleft((QueueCommands.PRINT, "Testing Service 200: Set Mode Off"))
2021-10-13 12:08:50 +02:00
mode_data = pack_mode_data(object_id, Modes.OFF, 0)
2021-07-14 00:28:33 +02:00
command = PusTelecommand(service=200, subservice=1, ssc=new_ssc, app_data=mode_data)
tc_queue.appendleft(command.pack_command_tuple())
new_ssc += 1
tc_queue.appendleft((QueueCommands.EXPORT_LOG, "log/tmtc_log_service200.txt"))
return new_ssc