Something went wrong on our end
Forked from an inaccessible project.
-
Robin.Mueller authoredRobin.Mueller authored
obsw_tc_core.py 1.59 KiB
from typing import Deque
from config.obsw_config import CORE_CONTROLLER_ID
from tc.obsw_tc_service8 import make_action_id
from tmtc_core.tc.obsw_pus_tc_base import PusTelecommand
def pack_core_command(tc_queue: Deque, op_code, ssc: int = 0):
if op_code.lower() == "a0":
tc_queue.appendleft(("print", "Generating OBC run time stats"))
command = generate_run_time_stats_generation_command(ssc=ssc)
tc_queue.appendleft(command.pack_command_tuple())
if op_code.lower() == "a10":
tc_queue.appendleft(("print", "Resetting OBC."))
command = generate_reset_obc_command(ssc=ssc)
tc_queue.appendleft(command.pack_command_tuple())
if op_code.lower() == "a11":
tc_queue.appendleft(("print", "Power cycling OBC."))
command = generate_power_cycle_obc_command(ssc=ssc)
tc_queue.appendleft(command.pack_command_tuple())
def generate_reset_obc_command(ssc: int, object_id: bytearray = CORE_CONTROLLER_ID):
app_data = bytearray(object_id)
app_data += make_action_id(10)
return PusTelecommand(service=8, subservice=128, ssc=ssc, app_data=app_data)
def generate_power_cycle_obc_command(ssc: int, object_id: bytearray = CORE_CONTROLLER_ID):
app_data = bytearray(object_id)
app_data += make_action_id(11)
return PusTelecommand(service=8, subservice=128, ssc=ssc, app_data=app_data)
def generate_run_time_stats_generation_command(ssc: int, object_id: bytearray = CORE_CONTROLLER_ID):
app_data = bytearray(object_id)
app_data += make_action_id(0)
return PusTelecommand(service=8, subservice=128, ssc=ssc, app_data=app_data)