add command to report ACS modes
This commit is contained in:
parent
6ccf8c8cb9
commit
d857e3866a
@ -2,7 +2,7 @@ import enum
|
|||||||
import socket
|
import socket
|
||||||
import struct
|
import struct
|
||||||
from socket import AF_INET
|
from socket import AF_INET
|
||||||
from typing import Tuple, Optional
|
from typing import Tuple
|
||||||
|
|
||||||
from config.definitions import CustomServiceList
|
from config.definitions import CustomServiceList
|
||||||
from config.object_ids import ACS_CONTROLLER
|
from config.object_ids import ACS_CONTROLLER
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import enum
|
import enum
|
||||||
from typing import Tuple, Dict
|
from typing import Tuple, Dict
|
||||||
|
|
||||||
|
from spacepackets.ecss import PusTelecommand
|
||||||
from .common import pack_mode_cmd_with_info
|
from .common import pack_mode_cmd_with_info
|
||||||
from config.object_ids import ACS_SUBSYSTEM_ID
|
from config.object_ids import ACS_SUBSYSTEM_ID
|
||||||
from config.definitions import CustomServiceList
|
from config.definitions import CustomServiceList
|
||||||
@ -9,6 +10,7 @@ from tmtccmd.config.tmtc import (
|
|||||||
TmtcDefinitionWrapper,
|
TmtcDefinitionWrapper,
|
||||||
OpCodeEntry,
|
OpCodeEntry,
|
||||||
)
|
)
|
||||||
|
from tmtccmd.tc.pus_200_fsfw_modes import Subservices as ModeSubservices
|
||||||
from tmtccmd.tc import service_provider
|
from tmtccmd.tc import service_provider
|
||||||
from tmtccmd.tc.decorator import ServiceProviderParams
|
from tmtccmd.tc.decorator import ServiceProviderParams
|
||||||
|
|
||||||
@ -19,6 +21,7 @@ class OpCodes(str, enum.Enum):
|
|||||||
DETUMBLE = "detumble"
|
DETUMBLE = "detumble"
|
||||||
IDLE = "idle"
|
IDLE = "idle"
|
||||||
TARGET_PT = "target"
|
TARGET_PT = "target"
|
||||||
|
REPORT_ALL_MODES = "all_modes"
|
||||||
|
|
||||||
|
|
||||||
class AcsModes(enum.IntEnum):
|
class AcsModes(enum.IntEnum):
|
||||||
@ -27,6 +30,7 @@ class AcsModes(enum.IntEnum):
|
|||||||
DETUMBLE = 2
|
DETUMBLE = 2
|
||||||
IDLE = 3
|
IDLE = 3
|
||||||
TARGET_PT = 4
|
TARGET_PT = 4
|
||||||
|
REPORT_ALL_MODES = 5
|
||||||
|
|
||||||
|
|
||||||
class Info(str, enum.Enum):
|
class Info(str, enum.Enum):
|
||||||
@ -35,6 +39,7 @@ class Info(str, enum.Enum):
|
|||||||
DETUMBLE = "Detumble Mode Command"
|
DETUMBLE = "Detumble Mode Command"
|
||||||
IDLE = "Idle Mode Command"
|
IDLE = "Idle Mode Command"
|
||||||
TARGET_PT = "Target Pointing Mode Command"
|
TARGET_PT = "Target Pointing Mode Command"
|
||||||
|
REPORT_ALL_MODES = "Report All Modes Recursively"
|
||||||
|
|
||||||
|
|
||||||
HANDLER_LIST: Dict[str, Tuple[int, str]] = {
|
HANDLER_LIST: Dict[str, Tuple[int, str]] = {
|
||||||
@ -50,6 +55,15 @@ def build_acs_subsystem_cmd(p: ServiceProviderParams):
|
|||||||
op_code = p.op_code
|
op_code = p.op_code
|
||||||
q = p.queue_helper
|
q = p.queue_helper
|
||||||
info_prefix = "ACS Subsystem"
|
info_prefix = "ACS Subsystem"
|
||||||
|
if op_code in OpCodes.REPORT_ALL_MODES:
|
||||||
|
q.add_log_cmd(f"{info_prefix}: {Info.REPORT_ALL_MODES}")
|
||||||
|
q.add_pus_tc(
|
||||||
|
PusTelecommand(
|
||||||
|
service=200,
|
||||||
|
subservice=ModeSubservices.TC_MODE_ANNOUNCE_RECURSIVE,
|
||||||
|
app_data=ACS_SUBSYSTEM_ID,
|
||||||
|
)
|
||||||
|
)
|
||||||
mode_info_tup = HANDLER_LIST[op_code]
|
mode_info_tup = HANDLER_LIST[op_code]
|
||||||
if mode_info_tup is None:
|
if mode_info_tup is None:
|
||||||
return
|
return
|
||||||
@ -68,4 +82,5 @@ def add_acs_subsystem_cmds(defs: TmtcDefinitionWrapper):
|
|||||||
oce.add(OpCodes.OFF, Info.OFF)
|
oce.add(OpCodes.OFF, Info.OFF)
|
||||||
oce.add(OpCodes.SAFE, Info.SAFE)
|
oce.add(OpCodes.SAFE, Info.SAFE)
|
||||||
oce.add(OpCodes.IDLE, Info.IDLE)
|
oce.add(OpCodes.IDLE, Info.IDLE)
|
||||||
|
oce.add(OpCodes.REPORT_ALL_MODES, Info.REPORT_ALL_MODES)
|
||||||
defs.add_service(CustomServiceList.ACS_SS, "ACS Subsystem", oce)
|
defs.add_service(CustomServiceList.ACS_SS, "ACS Subsystem", oce)
|
||||||
|
Loading…
Reference in New Issue
Block a user