Add ACS Subsystem Commands #117
@ -51,8 +51,9 @@ class CustomServiceList(str, enum.Enum):
|
|||||||
STR_IMG_HELPER = "str_img_helper"
|
STR_IMG_HELPER = "str_img_helper"
|
||||||
SYRLINKS = "syrlinks"
|
SYRLINKS = "syrlinks"
|
||||||
ACS_CTRL = "acs_ctrl"
|
ACS_CTRL = "acs_ctrl"
|
||||||
ACS_ASS = "acs_ass"
|
ACS_SS = "acs_subsysten"
|
||||||
SUS_ASS = "sus_ass"
|
ACS_BRD_ASS = "acs_brd_ass"
|
||||||
|
SUS_BRD_ASS = "sus_brd_ass"
|
||||||
TCS = "tcs"
|
TCS = "tcs"
|
||||||
TCS_ASS = "tcs_ass"
|
TCS_ASS = "tcs_ass"
|
||||||
TIME = "time"
|
TIME = "time"
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
from pus_tc.devs.bpx_batt import BpxOpCodes
|
from pus_tc.devs.bpx_batt import BpxOpCodes
|
||||||
|
|
||||||
from config.definitions import CustomServiceList
|
from config.definitions import CustomServiceList
|
||||||
|
from tmtc.sus_board import SusOpCodes
|
||||||
from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry, CoreServiceList
|
from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry, CoreServiceList
|
||||||
from tmtccmd.config.tmtc import (
|
from tmtccmd.config.tmtc import (
|
||||||
tmtc_definitions_provider,
|
tmtc_definitions_provider,
|
||||||
@ -207,65 +208,8 @@ def add_imtq_cmds(defs: TmtcDefinitionWrapper):
|
|||||||
|
|
||||||
@tmtc_definitions_provider
|
@tmtc_definitions_provider
|
||||||
def add_system_cmds(defs: TmtcDefinitionWrapper):
|
def add_system_cmds(defs: TmtcDefinitionWrapper):
|
||||||
from pus_tc.system.acs import AcsOpCodes, SusOpCodes
|
|
||||||
import pus_tc.system.controllers as controllers
|
import pus_tc.system.controllers as controllers
|
||||||
|
|
||||||
oce = OpCodeEntry()
|
|
||||||
oce.add(
|
|
||||||
keys=AcsOpCodes.ACS_ASS_A_SIDE,
|
|
||||||
info="Switch to ACS board A side",
|
|
||||||
)
|
|
||||||
oce.add(
|
|
||||||
keys=AcsOpCodes.ACS_ASS_B_SIDE,
|
|
||||||
info="Switch to ACS board B side",
|
|
||||||
)
|
|
||||||
oce.add(
|
|
||||||
keys=AcsOpCodes.ACS_ASS_DUAL_MODE,
|
|
||||||
info="Switch to ACS board dual mode",
|
|
||||||
)
|
|
||||||
oce.add(
|
|
||||||
keys=AcsOpCodes.ACS_ASS_A_ON,
|
|
||||||
info="Switch ACS board A side on",
|
|
||||||
)
|
|
||||||
oce.add(
|
|
||||||
keys=AcsOpCodes.ACS_ASS_B_ON,
|
|
||||||
info="Switch ACS board B side on",
|
|
||||||
)
|
|
||||||
oce.add(
|
|
||||||
keys=AcsOpCodes.ACS_ASS_DUAL_ON,
|
|
||||||
info="Switch ACS board dual mode on",
|
|
||||||
)
|
|
||||||
oce.add(
|
|
||||||
keys=AcsOpCodes.ACS_ASS_OFF,
|
|
||||||
info="Switch off ACS board",
|
|
||||||
)
|
|
||||||
defs.add_service(
|
|
||||||
name=CustomServiceList.ACS_ASS.value, info="ACS Assemblies", op_code_entry=oce
|
|
||||||
)
|
|
||||||
|
|
||||||
oce = OpCodeEntry()
|
|
||||||
oce.add(
|
|
||||||
keys=SusOpCodes.SUS_ASS_NOM_SIDE,
|
|
||||||
info="Switch SUS board to nominal side",
|
|
||||||
)
|
|
||||||
oce.add(
|
|
||||||
keys=SusOpCodes.SUS_ASS_RED_SIDE,
|
|
||||||
info="Switch SUS board to redundant side",
|
|
||||||
)
|
|
||||||
oce.add(
|
|
||||||
keys=SusOpCodes.SUS_ASS_OFF,
|
|
||||||
info="Switch off SUS board",
|
|
||||||
)
|
|
||||||
oce.add(
|
|
||||||
keys=SusOpCodes.SUS_ASS_DUAL_MODE,
|
|
||||||
info="Switch SUS board to dual mode",
|
|
||||||
)
|
|
||||||
defs.add_service(
|
|
||||||
name=CustomServiceList.SUS_ASS.value,
|
|
||||||
info="SUS Assembly",
|
|
||||||
op_code_entry=oce,
|
|
||||||
)
|
|
||||||
|
|
||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
oce.add(
|
oce.add(
|
||||||
keys=controllers.OpCodes.THERMAL_CONTROLLER,
|
keys=controllers.OpCodes.THERMAL_CONTROLLER,
|
||||||
|
@ -39,7 +39,8 @@ from pus_tc.system.core import pack_core_commands
|
|||||||
from pus_tc.devs.star_tracker import pack_star_tracker_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.syrlinks_hk_handler import pack_syrlinks_command
|
||||||
from pus_tc.devs.gps import pack_gps_command
|
from pus_tc.devs.gps import pack_gps_command
|
||||||
from pus_tc.system.acs import pack_acs_command, pack_sus_cmds
|
from tmtc.acs_board import pack_acs_command
|
||||||
|
from tmtc.sus_board import pack_sus_cmds
|
||||||
from pus_tc.devs.plpcdu import pack_pl_pcdu_commands
|
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.devs.str_img_helper import pack_str_img_helper_command
|
||||||
from pus_tc.system.tcs import pack_tcs_sys_commands
|
from pus_tc.system.tcs import pack_tcs_sys_commands
|
||||||
|
@ -28,16 +28,15 @@ from pus_tc.devs.mgms import MgmLis3SetIds as MgmLis3SetIds_0_2
|
|||||||
from pus_tc.devs.mgms import MgmRm3100SetIds as MgmRm3100SetIds_1_3
|
from pus_tc.devs.mgms import MgmRm3100SetIds as MgmRm3100SetIds_1_3
|
||||||
from pus_tc.devs.gyros import AdisGyroSetIds as AdisGyroSetIds_0_2
|
from pus_tc.devs.gyros import AdisGyroSetIds as AdisGyroSetIds_0_2
|
||||||
from pus_tc.devs.gyros import L3gGyroSetIds as L3gGyroSetIds_1_3
|
from pus_tc.devs.gyros import L3gGyroSetIds as L3gGyroSetIds_1_3
|
||||||
from pus_tc.devs.syrlinks_hk_handler import OpCodes as SyrlinksOpCodes
|
|
||||||
from pus_tc.devs.syrlinks_hk_handler import SetIds as SyrlinksSetIds
|
from pus_tc.devs.syrlinks_hk_handler import SetIds as SyrlinksSetIds
|
||||||
from pus_tc.devs.star_tracker import OpCodes as StrOpCodes
|
|
||||||
from pus_tc.devs.gps import SetIds as GpsSetIds
|
from pus_tc.devs.gps import SetIds as GpsSetIds
|
||||||
from pus_tc.devs.imtq import ImtqSetIds
|
from pus_tc.devs.imtq import ImtqSetIds
|
||||||
from pus_tc.devs.sus import SetIds
|
from pus_tc.devs.sus import SetIds
|
||||||
from pus_tc.devs.star_tracker import SetIds as StrSetIds
|
from pus_tc.devs.star_tracker import SetIds as StrSetIds
|
||||||
from pus_tc.devs.reaction_wheels import RwSetIds
|
from pus_tc.devs.reaction_wheels import RwSetIds
|
||||||
from pus_tc.system.controllers import pack_cmd_ctrl_to_off, pack_cmd_ctrl_to_nml
|
from pus_tc.system.controllers import pack_cmd_ctrl_to_off, pack_cmd_ctrl_to_nml
|
||||||
from pus_tc.system.acs import pack_acs_command, pack_sus_cmds
|
from tmtc.acs_board import pack_acs_command
|
||||||
|
from tmtc.sus_board import pack_sus_cmds
|
||||||
from pus_tc.devs.imtq import pack_imtq_test_into, pack_dipole_command
|
from pus_tc.devs.imtq import pack_imtq_test_into, pack_dipole_command
|
||||||
from pus_tc.devs.star_tracker import pack_star_tracker_commands
|
from pus_tc.devs.star_tracker import pack_star_tracker_commands
|
||||||
from pus_tc.devs.reaction_wheels import pack_rw_ass_cmds, pack_set_speed_command
|
from pus_tc.devs.reaction_wheels import pack_rw_ass_cmds, pack_set_speed_command
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
from .acs_subsystem import add_acs_subsystem_cmds
|
@ -1,27 +1,26 @@
|
|||||||
import enum
|
import enum
|
||||||
|
|
||||||
|
from config.definitions import CustomServiceList
|
||||||
|
from tmtccmd.config.tmtc import (
|
||||||
|
tmtc_definitions_provider,
|
||||||
|
TmtcDefinitionWrapper,
|
||||||
|
OpCodeEntry,
|
||||||
|
)
|
||||||
from tmtccmd.tc import DefaultPusQueueHelper
|
from tmtccmd.tc import DefaultPusQueueHelper
|
||||||
from tmtccmd.tc.pus_200_fsfw_modes import Modes
|
from tmtccmd.tc.pus_200_fsfw_modes import Modes
|
||||||
from config.object_ids import ACS_BOARD_ASS_ID, SUS_BOARD_ASS_ID
|
from config.object_ids import ACS_BOARD_ASS_ID
|
||||||
|
|
||||||
from .common import command_mode
|
from pus_tc.system.common import command_mode
|
||||||
|
|
||||||
|
|
||||||
class AcsOpCodes:
|
class AcsOpCodes:
|
||||||
ACS_ASS_A_SIDE = ["0", "acs-a"]
|
ACS_ASS_A_SIDE = ["0", "a"]
|
||||||
ACS_ASS_B_SIDE = ["1", "acs-b"]
|
ACS_ASS_B_SIDE = ["1", "b"]
|
||||||
ACS_ASS_DUAL_MODE = ["2", "acs-d"]
|
ACS_ASS_DUAL_MODE = ["2", "d"]
|
||||||
ACS_ASS_OFF = ["3", "acs-off"]
|
ACS_ASS_OFF = ["3", "off"]
|
||||||
ACS_ASS_A_ON = ["4", "acs-ao"]
|
ACS_ASS_A_ON = ["4", "ao"]
|
||||||
ACS_ASS_B_ON = ["5", "acs-bo"]
|
ACS_ASS_B_ON = ["5", "bo"]
|
||||||
ACS_ASS_DUAL_ON = ["6", "acs-do"]
|
ACS_ASS_DUAL_ON = ["6", "do"]
|
||||||
|
|
||||||
|
|
||||||
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):
|
class DualSideSubmodes(enum.IntEnum):
|
||||||
@ -89,36 +88,39 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def pack_sus_cmds(q: DefaultPusQueueHelper, op_code: str):
|
@tmtc_definitions_provider
|
||||||
if op_code in SusOpCodes.SUS_ASS_NOM_SIDE:
|
def add_acs_board_cmds(defs: TmtcDefinitionWrapper):
|
||||||
command_mode(
|
oce = OpCodeEntry()
|
||||||
object_id=SUS_BOARD_ASS_ID,
|
oce.add(
|
||||||
mode=Modes.NORMAL,
|
keys=AcsOpCodes.ACS_ASS_A_SIDE,
|
||||||
submode=DualSideSubmodes.A_SIDE,
|
info="Switch to ACS board A side",
|
||||||
q=q,
|
)
|
||||||
info="Switching to SUS board to nominal side",
|
oce.add(
|
||||||
)
|
keys=AcsOpCodes.ACS_ASS_B_SIDE,
|
||||||
if op_code in SusOpCodes.SUS_ASS_RED_SIDE:
|
info="Switch to ACS board B side",
|
||||||
command_mode(
|
)
|
||||||
object_id=SUS_BOARD_ASS_ID,
|
oce.add(
|
||||||
mode=Modes.NORMAL,
|
keys=AcsOpCodes.ACS_ASS_DUAL_MODE,
|
||||||
submode=DualSideSubmodes.B_SIDE,
|
info="Switch to ACS board dual mode",
|
||||||
q=q,
|
)
|
||||||
info="Switching to SUS board to redundant side",
|
oce.add(
|
||||||
)
|
keys=AcsOpCodes.ACS_ASS_A_ON,
|
||||||
if op_code in SusOpCodes.SUS_ASS_OFF:
|
info="Switch ACS board A side on",
|
||||||
command_mode(
|
)
|
||||||
object_id=SUS_BOARD_ASS_ID,
|
oce.add(
|
||||||
mode=Modes.OFF,
|
keys=AcsOpCodes.ACS_ASS_B_ON,
|
||||||
submode=0,
|
info="Switch ACS board B side on",
|
||||||
q=q,
|
)
|
||||||
info="Switching SUS board off",
|
oce.add(
|
||||||
)
|
keys=AcsOpCodes.ACS_ASS_DUAL_ON,
|
||||||
if op_code in SusOpCodes.SUS_ASS_DUAL_MODE:
|
info="Switch ACS board dual mode on",
|
||||||
command_mode(
|
)
|
||||||
object_id=SUS_BOARD_ASS_ID,
|
oce.add(
|
||||||
mode=Modes.NORMAL,
|
keys=AcsOpCodes.ACS_ASS_OFF,
|
||||||
submode=DualSideSubmodes.DUAL_SIDE,
|
info="Switch off ACS board",
|
||||||
q=q,
|
)
|
||||||
info="Switching to SUS board to dual side",
|
defs.add_service(
|
||||||
)
|
name=CustomServiceList.ACS_BRD_ASS.value,
|
||||||
|
info="ACS Board Assemblie",
|
||||||
|
op_code_entry=oce,
|
||||||
|
)
|
42
tmtc/acs_subsystem.py
Normal file
42
tmtc/acs_subsystem.py
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
import enum
|
||||||
|
|
||||||
|
from config.definitions import CustomServiceList
|
||||||
|
from tmtccmd.config.tmtc import (
|
||||||
|
tmtc_definitions_provider,
|
||||||
|
TmtcDefinitionWrapper,
|
||||||
|
OpCodeEntry,
|
||||||
|
)
|
||||||
|
from tmtccmd.tc import service_provider
|
||||||
|
from tmtccmd.tc.decorator import ServiceProviderParams
|
||||||
|
|
||||||
|
|
||||||
|
class OpCodes(str, enum.Enum):
|
||||||
|
OFF = "off"
|
||||||
|
SAFE = "safe"
|
||||||
|
IDLE = "idle"
|
||||||
|
|
||||||
|
|
||||||
|
class Info(str, enum.Enum):
|
||||||
|
OFF = "Off Command"
|
||||||
|
SAFE = "Safe Mode Command"
|
||||||
|
IDLE = "Idle Mode Command"
|
||||||
|
|
||||||
|
|
||||||
|
@service_provider(CustomServiceList.ACS_SS.value)
|
||||||
|
def build_acs_subsystem_cmd(p: ServiceProviderParams):
|
||||||
|
op_code = p.op_code
|
||||||
|
if op_code == OpCodes.OFF:
|
||||||
|
pass
|
||||||
|
if op_code == OpCodes.SAFE:
|
||||||
|
pass
|
||||||
|
if op_code == OpCodes.IDLE:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
@tmtc_definitions_provider
|
||||||
|
def add_acs_subsystem_cmds(defs: TmtcDefinitionWrapper):
|
||||||
|
oce = OpCodeEntry()
|
||||||
|
oce.add(OpCodes.OFF, Info.OFF)
|
||||||
|
oce.add(OpCodes.SAFE, Info.SAFE)
|
||||||
|
oce.add(OpCodes.IDLE, Info.IDLE)
|
||||||
|
defs.add_service(CustomServiceList.ACS_SS, "ACS Subsystem", oce)
|
79
tmtc/sus_board.py
Normal file
79
tmtc/sus_board.py
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
from config.definitions import CustomServiceList
|
||||||
|
from config.object_ids import SUS_BOARD_ASS_ID
|
||||||
|
from tmtc.acs_board import DualSideSubmodes
|
||||||
|
from pus_tc.system.common import command_mode
|
||||||
|
from tmtccmd.config.tmtc import (
|
||||||
|
tmtc_definitions_provider,
|
||||||
|
TmtcDefinitionWrapper,
|
||||||
|
OpCodeEntry,
|
||||||
|
)
|
||||||
|
from tmtccmd.tc import DefaultPusQueueHelper
|
||||||
|
from tmtccmd.tc.pus_200_fsfw_modes import Modes
|
||||||
|
|
||||||
|
|
||||||
|
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"]
|
||||||
|
|
||||||
|
|
||||||
|
def pack_sus_cmds(q: DefaultPusQueueHelper, op_code: str):
|
||||||
|
if op_code in SusOpCodes.SUS_ASS_NOM_SIDE:
|
||||||
|
command_mode(
|
||||||
|
object_id=SUS_BOARD_ASS_ID,
|
||||||
|
mode=Modes.NORMAL,
|
||||||
|
submode=DualSideSubmodes.A_SIDE,
|
||||||
|
q=q,
|
||||||
|
info="Switching to SUS board to nominal side",
|
||||||
|
)
|
||||||
|
if op_code in SusOpCodes.SUS_ASS_RED_SIDE:
|
||||||
|
command_mode(
|
||||||
|
object_id=SUS_BOARD_ASS_ID,
|
||||||
|
mode=Modes.NORMAL,
|
||||||
|
submode=DualSideSubmodes.B_SIDE,
|
||||||
|
q=q,
|
||||||
|
info="Switching to SUS board to redundant side",
|
||||||
|
)
|
||||||
|
if op_code in SusOpCodes.SUS_ASS_OFF:
|
||||||
|
command_mode(
|
||||||
|
object_id=SUS_BOARD_ASS_ID,
|
||||||
|
mode=Modes.OFF,
|
||||||
|
submode=0,
|
||||||
|
q=q,
|
||||||
|
info="Switching SUS board off",
|
||||||
|
)
|
||||||
|
if op_code in SusOpCodes.SUS_ASS_DUAL_MODE:
|
||||||
|
command_mode(
|
||||||
|
object_id=SUS_BOARD_ASS_ID,
|
||||||
|
mode=Modes.NORMAL,
|
||||||
|
submode=DualSideSubmodes.DUAL_SIDE,
|
||||||
|
q=q,
|
||||||
|
info="Switching to SUS board to dual side",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@tmtc_definitions_provider
|
||||||
|
def add_sus_board_cmds(defs: TmtcDefinitionWrapper):
|
||||||
|
oce = OpCodeEntry()
|
||||||
|
oce.add(
|
||||||
|
keys=SusOpCodes.SUS_ASS_NOM_SIDE,
|
||||||
|
info="Switch SUS board to nominal side",
|
||||||
|
)
|
||||||
|
oce.add(
|
||||||
|
keys=SusOpCodes.SUS_ASS_RED_SIDE,
|
||||||
|
info="Switch SUS board to redundant side",
|
||||||
|
)
|
||||||
|
oce.add(
|
||||||
|
keys=SusOpCodes.SUS_ASS_OFF,
|
||||||
|
info="Switch off SUS board",
|
||||||
|
)
|
||||||
|
oce.add(
|
||||||
|
keys=SusOpCodes.SUS_ASS_DUAL_MODE,
|
||||||
|
info="Switch SUS board to dual mode",
|
||||||
|
)
|
||||||
|
defs.add_service(
|
||||||
|
name=CustomServiceList.SUS_BRD_ASS.value,
|
||||||
|
info="SUS Board Assembly",
|
||||||
|
op_code_entry=oce,
|
||||||
|
)
|
Loading…
x
Reference in New Issue
Block a user