eive-tmtc/pus_tc/system/acs.py

34 lines
1011 B
Python
Raw Normal View History

import enum
2022-03-07 11:07:54 +01:00
from tmtccmd.tc.definitions import TcQueueT, QueueCommands
from spacepackets.ecss.tc import PusTelecommand
from tmtccmd.tc.service_200_mode import pack_mode_data, Modes, Subservices
from config.object_ids import ACS_BOARD_ASS_ID
2022-03-07 11:07:54 +01:00
class AcsOpCodes:
ACS_ASS_A_SIDE = ["0", "a"]
ACS_ASS_B_SIDE = ["1", "b"]
ACS_ASS_DUAL_MODE = ["2", "d"]
class AcsBoardSubmodes(enum.IntEnum):
A_SIDE = 0
B_SIDE = 1
DUAL_SIDE = 2
def pack_acs_command(tc_queue: TcQueueT, op_code: str):
2022-03-07 11:07:54 +01:00
if op_code in AcsOpCodes.ACS_ASS_A_SIDE:
2022-03-07 11:26:44 +01:00
tc_queue.appendleft(
(QueueCommands.PRINT, "Switching to ACS board assembly A side")
)
mode_data = pack_mode_data(
object_id=ACS_BOARD_ASS_ID,
mode=Modes.NORMAL,
submode=AcsBoardSubmodes.A_SIDE,
)
2022-03-07 11:07:54 +01:00
cmd = PusTelecommand(
2022-03-07 11:26:44 +01:00
service=200, subservice=Subservices.COMMAND_MODE_COMMAND, app_data=mode_data
2022-03-07 11:07:54 +01:00
)
tc_queue.appendleft(cmd.pack_command_tuple())