fixed conflicts
This commit is contained in:
@ -602,7 +602,8 @@ def add_ploc_supv_cmds(cmd_dict: ServiceOpCodeDictT):
|
||||
|
||||
|
||||
def add_system_cmds(cmd_dict: ServiceOpCodeDictT):
|
||||
from pus_tc.system.acs import AcsOpCodes
|
||||
from pus_tc.system.acs import AcsOpCodes, SusOpCodes
|
||||
import pus_tc.system.tcs as tcs
|
||||
|
||||
default_opts = generate_op_code_options(
|
||||
enter_listener_mode=False, custom_timeout=8.0
|
||||
@ -656,3 +657,55 @@ def add_system_cmds(cmd_dict: ServiceOpCodeDictT):
|
||||
info="ACS Assemblies",
|
||||
op_code_entry=op_code_dict,
|
||||
)
|
||||
|
||||
op_code_dict = dict()
|
||||
add_op_code_entry(
|
||||
op_code_dict=op_code_dict,
|
||||
keys=SusOpCodes.SUS_ASS_NOM_SIDE,
|
||||
info="Switch SUS board to nominal side",
|
||||
options=default_opts,
|
||||
)
|
||||
add_op_code_entry(
|
||||
op_code_dict=op_code_dict,
|
||||
keys=SusOpCodes.SUS_ASS_RED_SIDE,
|
||||
info="Switch SUS board to redundant side",
|
||||
options=default_opts,
|
||||
)
|
||||
add_op_code_entry(
|
||||
op_code_dict=op_code_dict,
|
||||
keys=SusOpCodes.SUS_ASS_OFF,
|
||||
info="Switch off SUS board",
|
||||
options=default_opts,
|
||||
)
|
||||
add_op_code_entry(
|
||||
op_code_dict=op_code_dict,
|
||||
keys=SusOpCodes.SUS_ASS_DUAL_MODE,
|
||||
info="Switch SUS board to dual mode",
|
||||
options=default_opts,
|
||||
)
|
||||
add_service_op_code_entry(
|
||||
srv_op_code_dict=cmd_dict,
|
||||
name=CustomServiceList.SUS_ASS.value,
|
||||
info="SUS Assembly",
|
||||
op_code_entry=op_code_dict,
|
||||
)
|
||||
|
||||
op_code_dict = dict()
|
||||
add_op_code_entry(
|
||||
op_code_dict=op_code_dict,
|
||||
keys=tcs.OpCodes.TCS_BOARD_ASS_NORMAL,
|
||||
info=tcs.Info.TCS_BOARD_ASS_NORMAL,
|
||||
options=default_opts,
|
||||
)
|
||||
add_op_code_entry(
|
||||
op_code_dict=op_code_dict,
|
||||
keys=tcs.OpCodes.TCS_BOARD_ASS_OFF,
|
||||
info=tcs.Info.TCS_BOARD_ASS_OFF,
|
||||
options=default_opts,
|
||||
)
|
||||
add_service_op_code_entry(
|
||||
srv_op_code_dict=cmd_dict,
|
||||
name=CustomServiceList.TCS_ASS.value,
|
||||
info="TCS Board Assembly",
|
||||
op_code_entry=op_code_dict,
|
||||
)
|
||||
|
@ -1,21 +1,29 @@
|
||||
import enum
|
||||
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
|
||||
from tmtccmd.tc.definitions import TcQueueT
|
||||
from tmtccmd.tc.service_200_mode import Modes
|
||||
from config.object_ids import ACS_BOARD_ASS_ID, SUS_BOARD_ASS_ID
|
||||
|
||||
from .common import command_assembly
|
||||
|
||||
|
||||
class AcsOpCodes:
|
||||
ACS_ASS_A_SIDE = ["0", "a"]
|
||||
ACS_ASS_B_SIDE = ["1", "b"]
|
||||
ACS_ASS_DUAL_MODE = ["2", "d"]
|
||||
ACS_ASS_OFF = ["3", "off"]
|
||||
ACS_ASS_A_ON = ["4", "ao"]
|
||||
ACS_ASS_B_ON = ["5", "bo"]
|
||||
ACS_ASS_DUAL_ON = ["6", "do"]
|
||||
ACS_ASS_A_SIDE = ["0", "acs-a"]
|
||||
ACS_ASS_B_SIDE = ["1", "acs-b"]
|
||||
ACS_ASS_DUAL_MODE = ["2", "acs-d"]
|
||||
ACS_ASS_OFF = ["3", "acs-off"]
|
||||
ACS_ASS_A_ON = ["4", "acs-ao"]
|
||||
ACS_ASS_B_ON = ["5", "acs-bo"]
|
||||
ACS_ASS_DUAL_ON = ["6", "acs-do"]
|
||||
|
||||
|
||||
class AcsBoardSubmodes(enum.IntEnum):
|
||||
class SusOpCodes:
|
||||
SUS_ASS_NOM_SIDE = ["0", "sus-nom"]
|
||||
SUS_ASS_RED_SIDE = ["1", "sus-red"]
|
||||
SUS_ASS_DUAL_MODE = ["2", "sus-d"]
|
||||
SUS_ASS_OFF = ["3", "sus-off"]
|
||||
|
||||
|
||||
class DualSideSubmodes(enum.IntEnum):
|
||||
A_SIDE = 0
|
||||
B_SIDE = 1
|
||||
DUAL_SIDE = 2
|
||||
@ -23,61 +31,93 @@ class AcsBoardSubmodes(enum.IntEnum):
|
||||
|
||||
def pack_acs_command(tc_queue: TcQueueT, op_code: str):
|
||||
if op_code in AcsOpCodes.ACS_ASS_A_SIDE:
|
||||
tc_queue.appendleft(
|
||||
(QueueCommands.PRINT, "Switching to ACS board assembly A side")
|
||||
)
|
||||
command_acs_board(
|
||||
mode=Modes.NORMAL, submode=AcsBoardSubmodes.A_SIDE, tc_queue=tc_queue
|
||||
command_assembly(
|
||||
object_id=ACS_BOARD_ASS_ID,
|
||||
mode=Modes.NORMAL,
|
||||
submode=DualSideSubmodes.A_SIDE,
|
||||
tc_queue=tc_queue,
|
||||
info="Switching to ACS board assembly A side",
|
||||
)
|
||||
if op_code in AcsOpCodes.ACS_ASS_B_SIDE:
|
||||
tc_queue.appendleft(
|
||||
(QueueCommands.PRINT, "Switching to ACS board assembly B side")
|
||||
)
|
||||
command_acs_board(
|
||||
mode=Modes.NORMAL, submode=AcsBoardSubmodes.B_SIDE, tc_queue=tc_queue
|
||||
command_assembly(
|
||||
object_id=ACS_BOARD_ASS_ID,
|
||||
mode=Modes.NORMAL,
|
||||
submode=DualSideSubmodes.B_SIDE,
|
||||
tc_queue=tc_queue,
|
||||
info="Switching to ACS board assembly B side",
|
||||
)
|
||||
if op_code in AcsOpCodes.ACS_ASS_DUAL_MODE:
|
||||
tc_queue.appendleft(
|
||||
(QueueCommands.PRINT, "Switching to ACS board assembly dual mode")
|
||||
)
|
||||
command_acs_board(
|
||||
mode=Modes.NORMAL, submode=AcsBoardSubmodes.DUAL_SIDE, tc_queue=tc_queue
|
||||
command_assembly(
|
||||
object_id=ACS_BOARD_ASS_ID,
|
||||
mode=Modes.NORMAL,
|
||||
submode=DualSideSubmodes.DUAL_SIDE,
|
||||
tc_queue=tc_queue,
|
||||
info="Switching to ACS board assembly dual mode",
|
||||
)
|
||||
if op_code in AcsOpCodes.ACS_ASS_A_ON:
|
||||
tc_queue.appendleft(
|
||||
(QueueCommands.PRINT, "Switching ACS board assembly A side on")
|
||||
)
|
||||
command_acs_board(
|
||||
mode=Modes.ON, submode=AcsBoardSubmodes.A_SIDE, tc_queue=tc_queue
|
||||
command_assembly(
|
||||
object_id=ACS_BOARD_ASS_ID,
|
||||
mode=Modes.ON,
|
||||
submode=DualSideSubmodes.A_SIDE,
|
||||
tc_queue=tc_queue,
|
||||
info="Switching ACS board assembly A side on",
|
||||
)
|
||||
if op_code in AcsOpCodes.ACS_ASS_B_ON:
|
||||
tc_queue.appendleft(
|
||||
(QueueCommands.PRINT, "Switching ACS board assembly B side on")
|
||||
)
|
||||
command_acs_board(
|
||||
mode=Modes.ON, submode=AcsBoardSubmodes.B_SIDE, tc_queue=tc_queue
|
||||
command_assembly(
|
||||
object_id=ACS_BOARD_ASS_ID,
|
||||
mode=Modes.ON,
|
||||
submode=DualSideSubmodes.B_SIDE,
|
||||
tc_queue=tc_queue,
|
||||
info="Switching ACS board assembly B side on",
|
||||
)
|
||||
if op_code in AcsOpCodes.ACS_ASS_DUAL_ON:
|
||||
tc_queue.appendleft(
|
||||
(QueueCommands.PRINT, "Switching ACS board assembly dual side on")
|
||||
)
|
||||
command_acs_board(
|
||||
mode=Modes.ON, submode=AcsBoardSubmodes.B_SIDE, tc_queue=tc_queue
|
||||
command_assembly(
|
||||
object_id=ACS_BOARD_ASS_ID,
|
||||
mode=Modes.ON,
|
||||
submode=DualSideSubmodes.B_SIDE,
|
||||
tc_queue=tc_queue,
|
||||
info="Switching ACS board assembly dual side on",
|
||||
)
|
||||
if op_code in AcsOpCodes.ACS_ASS_OFF:
|
||||
tc_queue.appendleft(
|
||||
(QueueCommands.PRINT, "Switching to ACS board assembly off")
|
||||
command_assembly(
|
||||
object_id=ACS_BOARD_ASS_ID,
|
||||
mode=Modes.OFF,
|
||||
submode=0,
|
||||
tc_queue=tc_queue,
|
||||
info="Switching to ACS board assembly off",
|
||||
)
|
||||
command_acs_board(mode=Modes.OFF, submode=0, tc_queue=tc_queue)
|
||||
|
||||
|
||||
def command_acs_board(mode: Modes, submode: int, tc_queue: TcQueueT):
|
||||
mode_data = pack_mode_data(
|
||||
object_id=ACS_BOARD_ASS_ID,
|
||||
mode=mode,
|
||||
submode=submode,
|
||||
)
|
||||
cmd = PusTelecommand(
|
||||
service=200, subservice=Subservices.COMMAND_MODE_COMMAND, app_data=mode_data
|
||||
)
|
||||
tc_queue.appendleft(cmd.pack_command_tuple())
|
||||
def pack_sus_cmds(tc_queue: TcQueueT, op_code: str):
|
||||
if op_code in SusOpCodes.SUS_ASS_NOM_SIDE:
|
||||
command_assembly(
|
||||
object_id=SUS_BOARD_ASS_ID,
|
||||
mode=Modes.NORMAL,
|
||||
submode=DualSideSubmodes.A_SIDE,
|
||||
tc_queue=tc_queue,
|
||||
info="Switching to SUS board to nominal side",
|
||||
)
|
||||
if op_code in SusOpCodes.SUS_ASS_RED_SIDE:
|
||||
command_assembly(
|
||||
object_id=SUS_BOARD_ASS_ID,
|
||||
mode=Modes.NORMAL,
|
||||
submode=DualSideSubmodes.B_SIDE,
|
||||
tc_queue=tc_queue,
|
||||
info="Switching to SUS board to redundant side",
|
||||
)
|
||||
if op_code in SusOpCodes.SUS_ASS_OFF:
|
||||
command_assembly(
|
||||
object_id=SUS_BOARD_ASS_ID,
|
||||
mode=Modes.OFF,
|
||||
submode=0,
|
||||
tc_queue=tc_queue,
|
||||
info="Switching SUS board off",
|
||||
)
|
||||
if op_code in SusOpCodes.SUS_ASS_DUAL_MODE:
|
||||
command_assembly(
|
||||
object_id=SUS_BOARD_ASS_ID,
|
||||
mode=Modes.NORMAL,
|
||||
submode=DualSideSubmodes.DUAL_SIDE,
|
||||
tc_queue=tc_queue,
|
||||
info="Switching to SUS board to dual side",
|
||||
)
|
||||
|
18
pus_tc/system/common.py
Normal file
18
pus_tc/system/common.py
Normal file
@ -0,0 +1,18 @@
|
||||
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
|
||||
|
||||
|
||||
def command_assembly(
|
||||
object_id: bytes, mode: Modes, submode: int, tc_queue: TcQueueT, info: str
|
||||
):
|
||||
tc_queue.appendleft((QueueCommands.PRINT, info))
|
||||
mode_data = pack_mode_data(
|
||||
object_id=object_id,
|
||||
mode=mode,
|
||||
submode=submode,
|
||||
)
|
||||
cmd = PusTelecommand(
|
||||
service=200, subservice=Subservices.COMMAND_MODE_COMMAND, app_data=mode_data
|
||||
)
|
||||
tc_queue.appendleft(cmd.pack_command_tuple())
|
34
pus_tc/system/tcs.py
Normal file
34
pus_tc/system/tcs.py
Normal file
@ -0,0 +1,34 @@
|
||||
from tmtccmd.tc.definitions import TcQueueT, QueueCommands
|
||||
from tmtccmd.tc.service_200_mode import Modes
|
||||
|
||||
from .common import command_assembly
|
||||
from config.object_ids import TCS_BOARD_ASS_ID
|
||||
|
||||
|
||||
class OpCodes:
|
||||
TCS_BOARD_ASS_NORMAL = ["0", "tcs-normal"]
|
||||
TCS_BOARD_ASS_OFF = ["1", "tcs-off"]
|
||||
|
||||
|
||||
class Info:
|
||||
TCS_BOARD_ASS_NORMAL = "Switching TCS board assembly on"
|
||||
TCS_BOARD_ASS_OFF = "Switching TCS board assembly off"
|
||||
|
||||
|
||||
def pack_tcs_sys_commands(tc_queue: TcQueueT, op_code: str):
|
||||
if op_code in OpCodes.TCS_BOARD_ASS_NORMAL:
|
||||
command_assembly(
|
||||
object_id=TCS_BOARD_ASS_ID,
|
||||
mode=Modes.NORMAL,
|
||||
submode=0,
|
||||
tc_queue=tc_queue,
|
||||
info=Info.TCS_BOARD_ASS_NORMAL,
|
||||
)
|
||||
if op_code in OpCodes.TCS_BOARD_ASS_OFF:
|
||||
command_assembly(
|
||||
object_id=TCS_BOARD_ASS_ID,
|
||||
mode=Modes.OFF,
|
||||
submode=0,
|
||||
tc_queue=tc_queue,
|
||||
info=Info.TCS_BOARD_ASS_OFF,
|
||||
)
|
@ -31,9 +31,10 @@ from pus_tc.system.core import pack_core_commands
|
||||
from pus_tc.devs.star_tracker import pack_star_tracker_commands
|
||||
from pus_tc.devs.syrlinks_hk_handler import pack_syrlinks_command
|
||||
from pus_tc.devs.gps import pack_gps_command
|
||||
from pus_tc.system.acs import pack_acs_command
|
||||
from pus_tc.system.acs import pack_acs_command, pack_sus_cmds
|
||||
from pus_tc.devs.plpcdu import pack_pl_pcdu_commands
|
||||
from pus_tc.devs.str_img_helper import pack_str_img_helper_command
|
||||
from pus_tc.system.tcs import pack_tcs_sys_commands
|
||||
from config.definitions import CustomServiceList
|
||||
from config.object_ids import (
|
||||
P60_DOCK_HANDLER,
|
||||
@ -120,7 +121,9 @@ def pack_service_queue_user(
|
||||
)
|
||||
if service == CustomServiceList.PLOC_MPSOC.value:
|
||||
object_id = PLOC_MPSOC_ID
|
||||
return pack_ploc_mpsoc_commands(object_id=object_id, tc_queue=service_queue, op_code=op_code)
|
||||
return pack_ploc_mpsoc_commands(
|
||||
object_id=object_id, tc_queue=service_queue, op_code=op_code
|
||||
)
|
||||
if service == CustomServiceList.REACTION_WHEEL_1.value:
|
||||
object_id = RW1_ID
|
||||
return pack_single_rw_test_into(
|
||||
@ -199,10 +202,14 @@ def pack_service_queue_user(
|
||||
return pack_solar_array_deployment_test_into(
|
||||
object_id=SOLAR_ARRAY_DEPLOYMENT_ID, tc_queue=service_queue
|
||||
)
|
||||
if service == CustomServiceList.SUS_ASS.value:
|
||||
return pack_sus_cmds(tc_queue=service_queue, op_code=op_code)
|
||||
if service == CustomServiceList.PL_PCDU.value:
|
||||
return pack_pl_pcdu_commands(tc_queue=service_queue, op_code=op_code)
|
||||
if service == CustomServiceList.ACS_ASS.value:
|
||||
return pack_acs_command(tc_queue=service_queue, op_code=op_code)
|
||||
if service == CustomServiceList.TCS_ASS.value:
|
||||
return pack_tcs_sys_commands(tc_queue=service_queue, op_code=op_code)
|
||||
LOGGER.warning("Invalid Service !")
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user