39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
|
import enum
|
||
|
|
||
|
from tmtccmd.config import QueueCommands
|
||
|
from tmtccmd.tc.definitions import TcQueueT
|
||
|
from tmtccmd.tc.service_200_mode import pack_mode_data, Modes, Subservices
|
||
|
from spacepackets.ecss.tc import PusTelecommand
|
||
|
from config.object_ids import PL_PCDU_ID
|
||
|
|
||
|
|
||
|
class OpCodes:
|
||
|
SWITCH_ADC_ON = ["0", "switch-adc-on"]
|
||
|
SWITCH_ALL_ON = ["1", "switch-all-on"]
|
||
|
|
||
|
|
||
|
class Submodes(enum.IntEnum):
|
||
|
ADC_ON = 0
|
||
|
ALL_ON = 1
|
||
|
|
||
|
|
||
|
def pack_pl_pcdu_commands(tc_queue: TcQueueT, op_code: str):
|
||
|
if op_code in OpCodes.SWITCH_ADC_ON:
|
||
|
tc_queue.appendleft((QueueCommands.PRINT, "Switching PL PCDU ADC module on"))
|
||
|
mode_data = pack_mode_data(
|
||
|
object_id=PL_PCDU_ID, mode=Modes.NORMAL, submode=Submodes.ADC_ON
|
||
|
)
|
||
|
mode_cmd = PusTelecommand(
|
||
|
service=200, subservice=Subservices.SWITCH_MODE, app_data=mode_data
|
||
|
)
|
||
|
tc_queue.appendleft(mode_cmd.pack_command_tuple())
|
||
|
if op_code in OpCodes.SWITCH_ALL_ON:
|
||
|
tc_queue.appendleft((QueueCommands.PRINT, "Switching all PL PCDU modules on"))
|
||
|
mode_data = pack_mode_data(
|
||
|
object_id=PL_PCDU_ID, mode=Modes.NORMAL, submode=Submodes.ALL_ON
|
||
|
)
|
||
|
mode_cmd = PusTelecommand(
|
||
|
service=200, subservice=Subservices.SWITCH_MODE, app_data=mode_data
|
||
|
)
|
||
|
tc_queue.appendleft(mode_cmd.pack_command_tuple())
|