55 lines
2.4 KiB
Python
55 lines
2.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
from spacepackets.ecss.tc import PusTelecommand
|
|
|
|
from tmtccmd.config.definitions import QueueCommands
|
|
from tmtccmd.tc.packer import TcQueueT
|
|
from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Modes
|
|
|
|
from common_tmtc.config.object_ids import TEST_DEVICE_0_ID, ASSEMBLY_ID
|
|
|
|
|
|
def pack_service_200_commands_into(tc_queue: TcQueueT, op_code: str):
|
|
if op_code == "test":
|
|
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())
|
|
|
|
|
|
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"))
|
|
mode_data = pack_mode_data(object_id, Modes.ON, 0)
|
|
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"))
|
|
mode_data = pack_mode_data(object_id, Modes.NORMAL, 0)
|
|
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"))
|
|
mode_data = pack_mode_data(object_id, Modes.RAW, 0)
|
|
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"))
|
|
mode_data = pack_mode_data(object_id, Modes.OFF, 0)
|
|
command = PusTelecommand(service=200, subservice=1, ssc=new_ssc, app_data=mode_data)
|
|
tc_queue.appendleft(command.pack_command_tuple())
|
|
new_ssc += 1
|
|
return new_ssc
|