some improvements and updates
This commit is contained in:
parent
f7d843131f
commit
851593a7bf
@ -44,7 +44,7 @@ GYRO_0_ADIS_HANDLER_ID = bytes([0x44, 0x12, 0x00, 0x10])
|
|||||||
GYRO_1_L3G_HANDLER_ID = bytes([0x44, 0x12, 0x01, 0x11])
|
GYRO_1_L3G_HANDLER_ID = bytes([0x44, 0x12, 0x01, 0x11])
|
||||||
GYRO_2_ADIS_HANDLER_ID = bytes([0x44, 0x12, 0x02, 0x12])
|
GYRO_2_ADIS_HANDLER_ID = bytes([0x44, 0x12, 0x02, 0x12])
|
||||||
GYRO_3_L3G_HANDLER_ID = bytes([0x44, 0x12, 0x03, 0x13])
|
GYRO_3_L3G_HANDLER_ID = bytes([0x44, 0x12, 0x03, 0x13])
|
||||||
GPS_HANDLER_0_ID = bytes([0x44, 0x13, 0x00, 0x45])
|
GPS_CONTROLLER = bytes([0x44, 0x13, 0x00, 0x45])
|
||||||
GPS_HANDLER_1_ID = bytes([0x44, 0x13, 0x01, 0x46])
|
GPS_HANDLER_1_ID = bytes([0x44, 0x13, 0x01, 0x46])
|
||||||
RW1_ID = bytes([0x44, 0x12, 0x00, 0x47])
|
RW1_ID = bytes([0x44, 0x12, 0x00, 0x47])
|
||||||
RW2_ID = bytes([0x44, 0x12, 0x01, 0x48])
|
RW2_ID = bytes([0x44, 0x12, 0x01, 0x48])
|
||||||
|
@ -5,7 +5,7 @@ from tmtccmd.tc.definitions import TcQueueT
|
|||||||
from tmtccmd.tc.pus_8_funccmd import generate_action_command
|
from tmtccmd.tc.pus_8_funccmd import generate_action_command
|
||||||
|
|
||||||
|
|
||||||
from config.object_ids import GPS_HANDLER_1_ID, GPS_HANDLER_0_ID
|
from config.object_ids import GPS_HANDLER_1_ID, GPS_CONTROLLER
|
||||||
|
|
||||||
|
|
||||||
class GpsOpCodes(enum.Enum):
|
class GpsOpCodes(enum.Enum):
|
||||||
@ -18,7 +18,7 @@ class SetIds:
|
|||||||
|
|
||||||
def pack_gps_command(object_id: bytes, tc_queue: TcQueueT, op_code: str):
|
def pack_gps_command(object_id: bytes, tc_queue: TcQueueT, op_code: str):
|
||||||
if op_code == GpsOpCodes.RESET_GNSS.value:
|
if op_code == GpsOpCodes.RESET_GNSS.value:
|
||||||
if object_id == GPS_HANDLER_0_ID:
|
if object_id == GPS_CONTROLLER:
|
||||||
tc_queue.appendleft((QueueCommands.PRINT, "Resetting GPS device 0"))
|
tc_queue.appendleft((QueueCommands.PRINT, "Resetting GPS device 0"))
|
||||||
elif object_id == GPS_HANDLER_1_ID:
|
elif object_id == GPS_HANDLER_1_ID:
|
||||||
tc_queue.appendleft((QueueCommands.PRINT, "Resetting GPS device 1"))
|
tc_queue.appendleft((QueueCommands.PRINT, "Resetting GPS device 1"))
|
||||||
|
@ -1,10 +1,16 @@
|
|||||||
|
from typing import Union
|
||||||
|
|
||||||
from tmtccmd.tc.definitions import TcQueueT, QueueCommands
|
from tmtccmd.tc.definitions import TcQueueT, QueueCommands
|
||||||
from spacepackets.ecss.tc import PusTelecommand
|
from spacepackets.ecss.tc import PusTelecommand
|
||||||
from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Modes, Subservices
|
from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Modes, Subservices
|
||||||
|
|
||||||
|
|
||||||
def command_mode(
|
def command_mode(
|
||||||
object_id: bytes, mode: Modes, submode: int, tc_queue: TcQueueT, info: str
|
object_id: bytes,
|
||||||
|
mode: Union[int, Modes],
|
||||||
|
submode: int,
|
||||||
|
tc_queue: TcQueueT,
|
||||||
|
info: str,
|
||||||
):
|
):
|
||||||
tc_queue.appendleft((QueueCommands.PRINT, info))
|
tc_queue.appendleft((QueueCommands.PRINT, info))
|
||||||
mode_data = pack_mode_data(
|
mode_data = pack_mode_data(
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
from tmtccmd.tc.definitions import TcQueueT
|
from tmtccmd.tc.definitions import TcQueueT
|
||||||
from tmtccmd.config import QueueCommands
|
from tmtccmd.config import QueueCommands
|
||||||
|
from tmtccmd.tc.pus_200_fsfw_modes import Modes
|
||||||
|
from tmtccmd.utility import ObjectId
|
||||||
|
|
||||||
from .common import command_mode
|
from .common import command_mode
|
||||||
import config.object_ids as obj_ids
|
import config.object_ids as obj_ids
|
||||||
@ -8,8 +10,8 @@ from pus_tc.prompt_parameters import prompt_parameters
|
|||||||
|
|
||||||
|
|
||||||
class OpCodes:
|
class OpCodes:
|
||||||
THERMAL_CONTROLLER = [obj_ids.THERMAL_CONTROLLER_ID.hex(), "thermal_controller"]
|
THERMAL_CONTROLLER = [obj_ids.THERMAL_CONTROLLER_ID.hex(), "ctrl-th"]
|
||||||
CORE_CONTROLLER = [obj_ids.CORE_CONTROLLER_ID.hex(), "core_controller"]
|
CORE_CONTROLLER = [obj_ids.CORE_CONTROLLER_ID.hex(), "ctrl-core"]
|
||||||
|
|
||||||
|
|
||||||
class Info:
|
class Info:
|
||||||
@ -17,7 +19,7 @@ class Info:
|
|||||||
CORE_CONTROLLER = "ACS controller"
|
CORE_CONTROLLER = "ACS controller"
|
||||||
|
|
||||||
|
|
||||||
def pack_controller_commands(tc_queue: TcQueueT, op_code: str):
|
def pack_cmd_ctrl_to_prompted_mode(tc_queue: TcQueueT, object_id: ObjectId):
|
||||||
parameters = prompt_parameters(
|
parameters = prompt_parameters(
|
||||||
[
|
[
|
||||||
{"name": "Mode", "defaultValue": "2"},
|
{"name": "Mode", "defaultValue": "2"},
|
||||||
@ -30,21 +32,41 @@ def pack_controller_commands(tc_queue: TcQueueT, op_code: str):
|
|||||||
mode = 0
|
mode = 0
|
||||||
submode = int(parameters["Submode"])
|
submode = int(parameters["Submode"])
|
||||||
command_mode(
|
command_mode(
|
||||||
object_id=get_object_from_op_code(op_code),
|
object_id=object_id.as_bytes,
|
||||||
mode=mode,
|
mode=mode,
|
||||||
submode=submode,
|
submode=submode,
|
||||||
tc_queue=tc_queue,
|
tc_queue=tc_queue,
|
||||||
info=op_code + " to " + str(mode) + "," + str(submode),
|
info=f"Commanding {object_id} to {mode}, {submode}",
|
||||||
)
|
)
|
||||||
|
|
||||||
tc_queue.appendleft((QueueCommands.WAIT, 20))
|
|
||||||
|
|
||||||
|
def pack_cmd_ctrl_to_off(tc_queue: TcQueueT, object_id: ObjectId):
|
||||||
command_mode(
|
command_mode(
|
||||||
object_id=get_object_from_op_code(op_code),
|
object_id=object_id.as_bytes,
|
||||||
mode=0,
|
mode=Modes.OFF,
|
||||||
submode=0,
|
submode=0,
|
||||||
tc_queue=tc_queue,
|
tc_queue=tc_queue,
|
||||||
info=op_code + " to 0,0",
|
info=f"Commanding {object_id} OFF",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def pack_cmd_ctrl_to_on(tc_queue: TcQueueT, object_id: ObjectId):
|
||||||
|
command_mode(
|
||||||
|
object_id=object_id.as_bytes,
|
||||||
|
mode=Modes.ON,
|
||||||
|
submode=0,
|
||||||
|
tc_queue=tc_queue,
|
||||||
|
info=f"Commanding {object_id} ON",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def pack_cmd_ctrl_to_nml(tc_queue: TcQueueT, object_id: ObjectId):
|
||||||
|
command_mode(
|
||||||
|
object_id=object_id.as_bytes,
|
||||||
|
mode=Modes.NORMAL,
|
||||||
|
submode=0,
|
||||||
|
tc_queue=tc_queue,
|
||||||
|
info=f"Commanding {object_id} NORMAL",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,7 +1,11 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import time
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from config.definitions import CustomServiceList
|
from config.definitions import CustomServiceList
|
||||||
|
from config.object_ids import get_object_ids
|
||||||
|
from pus_tc.system.tcs import pack_tcs_sys_commands
|
||||||
from tmtccmd.config import (
|
from tmtccmd.config import (
|
||||||
QueueCommands,
|
QueueCommands,
|
||||||
ServiceOpCodeDictT,
|
ServiceOpCodeDictT,
|
||||||
@ -9,25 +13,29 @@ from tmtccmd.config import (
|
|||||||
add_service_op_code_entry,
|
add_service_op_code_entry,
|
||||||
)
|
)
|
||||||
from tmtccmd.tc.definitions import TcQueueT
|
from tmtccmd.tc.definitions import TcQueueT
|
||||||
|
from tmtccmd.tc.pus_11_tc_sched import (
|
||||||
|
generate_time_tagged_cmd,
|
||||||
|
generate_enable_tc_sched_cmd,
|
||||||
|
generate_reset_tc_sched_cmd,
|
||||||
|
)
|
||||||
from tmtccmd.tc.pus_3_fsfw_hk import *
|
from tmtccmd.tc.pus_3_fsfw_hk import *
|
||||||
|
|
||||||
import config.object_ids as oids
|
import config.object_ids as oids
|
||||||
|
from pus_tc.system.tcs import OpCodes as TcsOpCodes
|
||||||
from pus_tc.devs.bpx_batt import BpxSetIds
|
from pus_tc.devs.bpx_batt import BpxSetIds
|
||||||
from pus_tc.system.core import SetIds as CoreSetIds
|
from pus_tc.system.core import SetIds as CoreSetIds
|
||||||
from gomspace.gomspace_common import SetIds as GsSetIds
|
from gomspace.gomspace_common import SetIds as GsSetIds
|
||||||
from pus_tc.devs.rad_sensor import SetIds as RadSetIds
|
from pus_tc.devs.rad_sensor import SetIds as RadSetIds
|
||||||
from pus_tc.devs.mgms import MgmLis3SetIds as MgmSetIds_0_2
|
from pus_tc.devs.mgms import MgmLis3SetIds as MgmLis3SetIds_0_2
|
||||||
from pus_tc.devs.mgms import MgmRm3100SetIds as MgmSetIds_1_3
|
from pus_tc.devs.mgms import MgmRm3100SetIds as MgmRm3100SetIds_1_3
|
||||||
from pus_tc.devs.gyros import AdisGyroSetIds as GyroSetIds_0_2
|
from pus_tc.devs.gyros import AdisGyroSetIds as AdisGyroSetIds_0_2
|
||||||
from pus_tc.devs.gyros import L3gGyroSetIds as GyroSetIds_1_3
|
from pus_tc.devs.gyros import L3gGyroSetIds as L3gGyroSetIds_1_3
|
||||||
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.tcs import pack_tcs_sys_commands
|
|
||||||
from pus_tc.system.controllers import pack_controller_commands
|
|
||||||
from pus_tc.system.acs import pack_acs_command, pack_sus_cmds
|
from pus_tc.system.acs import pack_acs_command, 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
|
||||||
@ -35,13 +43,13 @@ from pus_tc.devs.reaction_wheels import pack_rw_ass_cmds, pack_set_speed_command
|
|||||||
|
|
||||||
|
|
||||||
class OpCodes:
|
class OpCodes:
|
||||||
HEATER = ["0", "heater"]
|
TV_SETUP_TCS_FT_ON = ["setup", "tcs-ft-on"]
|
||||||
|
RESET_SCHED = ["reset-sched", "rs"]
|
||||||
|
HEATER = ["heater"]
|
||||||
BAT_FT = ["bat-ft"]
|
BAT_FT = ["bat-ft"]
|
||||||
CORE_FT = ["core-ft"]
|
CORE_FT = ["core-ft"]
|
||||||
PCDU_FT = ["pcdu-ft"]
|
PCDU_FT = ["pcdu-ft"]
|
||||||
RAD_SEN_FT = ["rad-sen-ft"]
|
RAD_SEN_FT = ["rad-sen-ft"]
|
||||||
TCS_FT_ON = ["tcs-ft-on"]
|
|
||||||
TCS_FT_OFF = ["tcs-ft-off"]
|
|
||||||
ACS_FT = ["acs-ft"]
|
ACS_FT = ["acs-ft"]
|
||||||
MGT_FT = ["mgt-ft"]
|
MGT_FT = ["mgt-ft"]
|
||||||
MGT_FT_DP = ["mgt-ft-dp"]
|
MGT_FT_DP = ["mgt-ft-dp"]
|
||||||
@ -49,16 +57,17 @@ class OpCodes:
|
|||||||
STR_FT = ["str-ft"]
|
STR_FT = ["str-ft"]
|
||||||
RW_FT_ONE_RW = ["rw-ft-one-rw"]
|
RW_FT_ONE_RW = ["rw-ft-one-rw"]
|
||||||
RW_FT_TWO_RWS = ["rw-ft-two-rws"]
|
RW_FT_TWO_RWS = ["rw-ft-two-rws"]
|
||||||
|
TV_TEARDOWN_TCS_FT_OFF = ["teardown", "tcs-ft-off"]
|
||||||
|
|
||||||
|
|
||||||
class KeyAndInfo:
|
class KeyAndInfo:
|
||||||
|
TV_SETUP_TCS_FT_ON = ["TCS Act.", "TCS functional test activation"]
|
||||||
|
RESET_SCHED = ["Reset Sched", "Reset/Clear TC schedule"]
|
||||||
HEATER = ["Heater", "heater procedure"]
|
HEATER = ["Heater", "heater procedure"]
|
||||||
BAT_FT = ["BPX Battery", "battery functional test"]
|
BAT_FT = ["BPX Battery", "battery functional test"]
|
||||||
CORE_FT = ["OBC", "OBC functional test"]
|
CORE_FT = ["OBC", "OBC functional test"]
|
||||||
PCDU_FT = ["PCDU", "PCDU functional test"]
|
PCDU_FT = ["PCDU", "PCDU functional test"]
|
||||||
RAD_SEN_FT = ["Radiation Sensor", "Radiation Sensor functional test"]
|
RAD_SEN_FT = ["Radiation Sensor", "Radiation Sensor functional test"]
|
||||||
TCS_FT_ON = ["TCS Act.", "TCS functional test activation"]
|
|
||||||
TCS_FT_OFF = ["TCS Deact.", "TCS functional test deactivation"]
|
|
||||||
ACS_FT = ["ACS", "ACS functional test"]
|
ACS_FT = ["ACS", "ACS functional test"]
|
||||||
MGT_FT = ["MGT", "MGT functional test"]
|
MGT_FT = ["MGT", "MGT functional test"]
|
||||||
MGT_FT_DP = ["MGT dipole", "MGT functional test with dipole"]
|
MGT_FT_DP = ["MGT dipole", "MGT functional test with dipole"]
|
||||||
@ -66,6 +75,7 @@ class KeyAndInfo:
|
|||||||
STR_FT = ["STR", "STR functional test"]
|
STR_FT = ["STR", "STR functional test"]
|
||||||
RW_FT_ONE_RW = ["RW ONE RW", "RW functional test with one RW"]
|
RW_FT_ONE_RW = ["RW ONE RW", "RW functional test with one RW"]
|
||||||
RW_FT_TWO_RWS = ["RW TWO RWS", "RW functional test with two RWs"]
|
RW_FT_TWO_RWS = ["RW TWO RWS", "RW functional test with two RWs"]
|
||||||
|
TV_TEARDOWN_TCS_FT_OFF = ["TCS Deact.", "TCS functional test deactivation"]
|
||||||
|
|
||||||
|
|
||||||
KAI = KeyAndInfo
|
KAI = KeyAndInfo
|
||||||
@ -75,8 +85,13 @@ PROC_INFO_DICT = {
|
|||||||
KAI.CORE_FT[0]: [OpCodes.CORE_FT, KAI.CORE_FT[1], 120.0, 10.0],
|
KAI.CORE_FT[0]: [OpCodes.CORE_FT, KAI.CORE_FT[1], 120.0, 10.0],
|
||||||
KAI.PCDU_FT[0]: [OpCodes.PCDU_FT, KAI.PCDU_FT[1], 120.0, 10.0],
|
KAI.PCDU_FT[0]: [OpCodes.PCDU_FT, KAI.PCDU_FT[1], 120.0, 10.0],
|
||||||
KAI.RAD_SEN_FT[0]: [OpCodes.RAD_SEN_FT, KAI.RAD_SEN_FT[1], 120.0, 10.0],
|
KAI.RAD_SEN_FT[0]: [OpCodes.RAD_SEN_FT, KAI.RAD_SEN_FT[1], 120.0, 10.0],
|
||||||
KAI.TCS_FT_ON[0]: [OpCodes.TCS_FT_ON, KAI.TCS_FT_ON[1], 120.0, 10.0],
|
KAI.TCS_FT_ON[0]: [OpCodes.TV_SETUP_TCS_FT_ON, KAI.TCS_FT_ON[1], 120.0, 10.0],
|
||||||
KAI.TCS_FT_OFF[0]: [OpCodes.TCS_FT_OFF, KAI.TCS_FT_OFF[1], 120.0, 10.0],
|
KAI.TV_TEARDOWN_TCS_FT_OFF[0]: [
|
||||||
|
OpCodes.TV_TEARDOWN_TCS_FT_OFF,
|
||||||
|
KAI.TV_TEARDOWN_TCS_FT_OFF[1],
|
||||||
|
120.0,
|
||||||
|
10.0,
|
||||||
|
],
|
||||||
KAI.ACS_FT[0]: [OpCodes.ACS_FT, KAI.ACS_FT[1], 120.0, 10.0],
|
KAI.ACS_FT[0]: [OpCodes.ACS_FT, KAI.ACS_FT[1], 120.0, 10.0],
|
||||||
KAI.MGT_FT[0]: [OpCodes.MGT_FT, KAI.MGT_FT[1], 120.0, 10.0],
|
KAI.MGT_FT[0]: [OpCodes.MGT_FT, KAI.MGT_FT[1], 120.0, 10.0],
|
||||||
# collection_time for KAI.MGT_FT_DP maybe be reduced as a full 120
|
# collection_time for KAI.MGT_FT_DP maybe be reduced as a full 120
|
||||||
@ -94,7 +109,8 @@ PROC_INFO_DICT = {
|
|||||||
|
|
||||||
|
|
||||||
class GenericHkListeningCfg:
|
class GenericHkListeningCfg:
|
||||||
def __init__(self, mgt: bool, one_rw: bool, two_rws: bool):
|
def __init__(self, mgt: bool = False, one_rw: bool = False, two_rws: bool = False):
|
||||||
|
self.use_tc_sched = False
|
||||||
self.mgt = mgt
|
self.mgt = mgt
|
||||||
self.one_rw = one_rw
|
self.one_rw = one_rw
|
||||||
self.two_rws = two_rws
|
self.two_rws = two_rws
|
||||||
@ -111,7 +127,6 @@ def generic_print(tc_queue: TcQueueT, info: dict):
|
|||||||
|
|
||||||
|
|
||||||
def add_proc_cmds(cmd_dict: ServiceOpCodeDictT):
|
def add_proc_cmds(cmd_dict: ServiceOpCodeDictT):
|
||||||
|
|
||||||
op_code_dict = dict()
|
op_code_dict = dict()
|
||||||
for proc_entry in PROC_INFO_DICT.values():
|
for proc_entry in PROC_INFO_DICT.values():
|
||||||
add_op_code_entry(
|
add_op_code_entry(
|
||||||
@ -144,6 +159,8 @@ def pack_generic_hk_listening_cmds(
|
|||||||
sid=sid,
|
sid=sid,
|
||||||
interval_seconds=info[3],
|
interval_seconds=info[3],
|
||||||
)
|
)
|
||||||
|
if not cfg.use_tc_sched:
|
||||||
|
tc_queue.appendleft((QueueCommands.WAIT, 2.0))
|
||||||
|
|
||||||
if cfg.mgt:
|
if cfg.mgt:
|
||||||
activate_mgts_alternately(
|
activate_mgts_alternately(
|
||||||
@ -159,21 +176,41 @@ def pack_generic_hk_listening_cmds(
|
|||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
if not cfg.use_tc_sched:
|
||||||
tc_queue.appendleft((QueueCommands.WAIT, collection_time))
|
tc_queue.appendleft((QueueCommands.WAIT, collection_time))
|
||||||
|
disable_cmd_list = []
|
||||||
for sid in sid_list:
|
for sid in sid_list:
|
||||||
disable_listen_to_hk_for_x_seconds(
|
disable_cmd_list.append(
|
||||||
|
gen_disable_listen_to_hk_for_x_seconds(
|
||||||
diag=diag,
|
diag=diag,
|
||||||
tc_queue=tc_queue,
|
tc_queue=tc_queue,
|
||||||
device=proc_key,
|
device=proc_key,
|
||||||
sid=sid,
|
sid=sid,
|
||||||
)
|
)
|
||||||
|
)
|
||||||
|
current_time = time.time()
|
||||||
|
current_time += collection_time
|
||||||
|
if not cfg.use_tc_sched:
|
||||||
|
for cmd in disable_cmd_list:
|
||||||
|
tc_queue.appendleft(cmd.pack_command_tuple())
|
||||||
|
else:
|
||||||
|
for cmd in disable_cmd_list:
|
||||||
|
tc_queue.appendleft(
|
||||||
|
generate_time_tagged_cmd(
|
||||||
|
release_time=struct.pack("!I", current_time),
|
||||||
|
tc_to_insert=cmd,
|
||||||
|
ssc=0,
|
||||||
|
)
|
||||||
|
)
|
||||||
sid_list.clear()
|
sid_list.clear()
|
||||||
|
|
||||||
|
|
||||||
def pack_proc_commands(tc_queue: TcQueueT, op_code: str):
|
def pack_proc_commands(tc_queue: TcQueueT, op_code: str):
|
||||||
sid_list = []
|
sid_list = []
|
||||||
|
obj_id_dict = get_object_ids()
|
||||||
|
if op_code in OpCodes.RESET_SCHED:
|
||||||
|
tc_queue.appendleft((QueueCommands.PRINT, "Resetting/Clearing TC schedule"))
|
||||||
|
tc_queue.appendleft(generate_reset_tc_sched_cmd().pack_command_tuple())
|
||||||
if op_code in OpCodes.BAT_FT:
|
if op_code in OpCodes.BAT_FT:
|
||||||
key = KAI.BAT_FT[0]
|
key = KAI.BAT_FT[0]
|
||||||
sid_list.append(make_sid(oids.BPX_HANDLER_ID, BpxSetIds.GET_HK_SET))
|
sid_list.append(make_sid(oids.BPX_HANDLER_ID, BpxSetIds.GET_HK_SET))
|
||||||
@ -225,30 +262,45 @@ def pack_proc_commands(tc_queue: TcQueueT, op_code: str):
|
|||||||
cfg=GenericHkListeningCfg.default(),
|
cfg=GenericHkListeningCfg.default(),
|
||||||
)
|
)
|
||||||
|
|
||||||
if op_code in OpCodes.TCS_FT_ON:
|
if op_code in OpCodes.TV_SETUP_TCS_FT_ON:
|
||||||
|
# Enable scheduling
|
||||||
|
tc_queue.appendleft(generate_enable_tc_sched_cmd().pack_command_tuple())
|
||||||
# check whether tcs_assembly also has to be commanded to NORMAL Mode
|
# check whether tcs_assembly also has to be commanded to NORMAL Mode
|
||||||
# pack_tcs_sys_commands(tc_queue=tc_queue, op_code="tcs-normal")
|
pack_tcs_sys_commands(
|
||||||
pack_controller_commands(tc_queue=tc_queue, op_code="thermal_controller")
|
tc_queue=tc_queue, op_code=TcsOpCodes.TCS_BOARD_ASS_NORMAL[0]
|
||||||
|
)
|
||||||
|
pack_cmd_ctrl_to_nml(
|
||||||
|
tc_queue=tc_queue, object_id=obj_id_dict.get(oids.THERMAL_CONTROLLER_ID)
|
||||||
|
)
|
||||||
|
|
||||||
if op_code in OpCodes.TCS_FT_OFF:
|
if op_code in OpCodes.TV_TEARDOWN_TCS_FT_OFF:
|
||||||
# check whether tcs_assembly also has to be commanded to OFF Mode
|
# TCS board shold always be on anyway, do not command it off here
|
||||||
# pack_tcs_sys_commands(tc_queue=tc_queue, op_code="tcs-off")
|
pack_cmd_ctrl_to_off(
|
||||||
pack_controller_commands(tc_queue=tc_queue, op_code="thermal_controller")
|
tc_queue=tc_queue, object_id=obj_id_dict.get(oids.THERMAL_CONTROLLER_ID)
|
||||||
|
)
|
||||||
|
|
||||||
if op_code in OpCodes.ACS_FT:
|
if op_code in OpCodes.ACS_FT:
|
||||||
key = KAI.ACS_FT[0]
|
key = KAI.ACS_FT[0]
|
||||||
|
a_side_pairs = [
|
||||||
|
(oids.MGM_0_LIS3_HANDLER_ID, MgmLis3SetIds_0_2.CORE_HK),
|
||||||
|
(oids.MGM_1_RM3100_HANDLER_ID, MgmRm3100SetIds_1_3.CORE_HK),
|
||||||
|
(oids.GYRO_0_ADIS_HANDLER_ID, AdisGyroSetIds_0_2.CORE_HK),
|
||||||
|
(oids.GYRO_1_L3G_HANDLER_ID, L3gGyroSetIds_1_3.CORE_HK),
|
||||||
|
(oids.GPS_CONTROLLER, GpsSetIds.HK),
|
||||||
|
]
|
||||||
|
b_side_pairs = [
|
||||||
|
(oids.MGM_2_LIS3_HANDLER_ID, MgmLis3SetIds_0_2.CORE_HK),
|
||||||
|
(oids.MGM_3_RM3100_HANDLER_ID, MgmRm3100SetIds_1_3.CORE_HK),
|
||||||
|
(oids.GYRO_2_ADIS_HANDLER_ID, AdisGyroSetIds_0_2.CORE_HK),
|
||||||
|
(oids.GYRO_3_L3G_HANDLER_ID, L3gGyroSetIds_1_3.CORE_HK),
|
||||||
|
(oids.GPS_CONTROLLER, GpsSetIds.HK),
|
||||||
|
]
|
||||||
pack_acs_command(tc_queue=tc_queue, op_code="acs-a")
|
pack_acs_command(tc_queue=tc_queue, op_code="acs-a")
|
||||||
|
|
||||||
# MGMs
|
# MGMs
|
||||||
sid_list.append(make_sid(oids.MGM_0_LIS3_HANDLER_ID, MgmSetIds_0_2.CORE_HK))
|
for a_side_dev in a_side_pairs:
|
||||||
sid_list.append(make_sid(oids.MGM_1_RM3100_HANDLER_ID, MgmSetIds_1_3.CORE_HK))
|
oid = a_side_dev[0]
|
||||||
# Gyros
|
set_id = a_side_dev[1]
|
||||||
sid_list.append(make_sid(oids.GYRO_0_ADIS_HANDLER_ID, GyroSetIds_0_2.CORE_HK))
|
sid_list.append(make_sid(oid, set_id))
|
||||||
sid_list.append(make_sid(oids.GYRO_0_ADIS_HANDLER_ID, GyroSetIds_0_2.CFG_HK))
|
|
||||||
sid_list.append(make_sid(oids.GYRO_1_L3G_HANDLER_ID, GyroSetIds_1_3.CORE_HK))
|
|
||||||
# GNSS0
|
|
||||||
sid_list.append(make_sid(oids.GPS_HANDLER_0_ID, GpsSetIds.HK))
|
|
||||||
pack_generic_hk_listening_cmds(
|
pack_generic_hk_listening_cmds(
|
||||||
tc_queue=tc_queue,
|
tc_queue=tc_queue,
|
||||||
proc_key=key,
|
proc_key=key,
|
||||||
@ -261,13 +313,10 @@ def pack_proc_commands(tc_queue: TcQueueT, op_code: str):
|
|||||||
tc_queue.appendleft((QueueCommands.WAIT, 5.0))
|
tc_queue.appendleft((QueueCommands.WAIT, 5.0))
|
||||||
pack_acs_command(tc_queue=tc_queue, op_code="acs-b")
|
pack_acs_command(tc_queue=tc_queue, op_code="acs-b")
|
||||||
|
|
||||||
# MGMs
|
for b_side_dev in b_side_pairs:
|
||||||
sid_list.append(make_sid(oids.MGM_2_LIS3_HANDLER_ID, MgmSetIds_0_2.CORE_HK))
|
oid = b_side_dev[0]
|
||||||
sid_list.append(make_sid(oids.MGM_3_RM3100_HANDLER_ID, MgmSetIds_1_3.CORE_HK))
|
set_id = b_side_dev[1]
|
||||||
# Gyros
|
sid_list.append(make_sid(oid, set_id))
|
||||||
sid_list.append(make_sid(oids.GYRO_2_ADIS_HANDLER_ID, GyroSetIds_0_2.CORE_HK))
|
|
||||||
sid_list.append(make_sid(oids.GYRO_2_ADIS_HANDLER_ID, GyroSetIds_0_2.CFG_HK))
|
|
||||||
sid_list.append(make_sid(oids.GYRO_3_L3G_HANDLER_ID, GyroSetIds_1_3.CORE_HK))
|
|
||||||
# GNSS1
|
# GNSS1
|
||||||
sid_list.append(make_sid(oids.GPS_HANDLER_1_ID, GpsSetIds.HK))
|
sid_list.append(make_sid(oids.GPS_HANDLER_1_ID, GpsSetIds.HK))
|
||||||
pack_generic_hk_listening_cmds(
|
pack_generic_hk_listening_cmds(
|
||||||
@ -283,19 +332,31 @@ def pack_proc_commands(tc_queue: TcQueueT, op_code: str):
|
|||||||
pack_acs_command(tc_queue=tc_queue, op_code="acs-d")
|
pack_acs_command(tc_queue=tc_queue, op_code="acs-d")
|
||||||
|
|
||||||
# MGMs
|
# MGMs
|
||||||
sid_list.append(make_sid(oids.MGM_0_LIS3_HANDLER_ID, MgmSetIds_0_2.CORE_HK))
|
sid_list.append(make_sid(oids.MGM_0_LIS3_HANDLER_ID, MgmLis3SetIds_0_2.CORE_HK))
|
||||||
sid_list.append(make_sid(oids.MGM_1_RM3100_HANDLER_ID, MgmSetIds_1_3.CORE_HK))
|
sid_list.append(
|
||||||
sid_list.append(make_sid(oids.MGM_2_LIS3_HANDLER_ID, MgmSetIds_0_2.CORE_HK))
|
make_sid(oids.MGM_1_RM3100_HANDLER_ID, MgmRm3100SetIds_1_3.CORE_HK)
|
||||||
sid_list.append(make_sid(oids.MGM_3_RM3100_HANDLER_ID, MgmSetIds_1_3.CORE_HK))
|
)
|
||||||
|
sid_list.append(make_sid(oids.MGM_2_LIS3_HANDLER_ID, MgmLis3SetIds_0_2.CORE_HK))
|
||||||
|
sid_list.append(
|
||||||
|
make_sid(oids.MGM_3_RM3100_HANDLER_ID, MgmRm3100SetIds_1_3.CORE_HK)
|
||||||
|
)
|
||||||
# Gyros
|
# Gyros
|
||||||
sid_list.append(make_sid(oids.GYRO_0_ADIS_HANDLER_ID, GyroSetIds_0_2.CORE_HK))
|
sid_list.append(
|
||||||
sid_list.append(make_sid(oids.GYRO_0_ADIS_HANDLER_ID, GyroSetIds_0_2.CFG_HK))
|
make_sid(oids.GYRO_0_ADIS_HANDLER_ID, AdisGyroSetIds_0_2.CORE_HK)
|
||||||
sid_list.append(make_sid(oids.GYRO_1_L3G_HANDLER_ID, GyroSetIds_1_3.CORE_HK))
|
)
|
||||||
sid_list.append(make_sid(oids.GYRO_2_ADIS_HANDLER_ID, GyroSetIds_0_2.CORE_HK))
|
sid_list.append(
|
||||||
sid_list.append(make_sid(oids.GYRO_2_ADIS_HANDLER_ID, GyroSetIds_0_2.CFG_HK))
|
make_sid(oids.GYRO_0_ADIS_HANDLER_ID, AdisGyroSetIds_0_2.CFG_HK)
|
||||||
sid_list.append(make_sid(oids.GYRO_3_L3G_HANDLER_ID, GyroSetIds_1_3.CORE_HK))
|
)
|
||||||
|
sid_list.append(make_sid(oids.GYRO_1_L3G_HANDLER_ID, L3gGyroSetIds_1_3.CORE_HK))
|
||||||
|
sid_list.append(
|
||||||
|
make_sid(oids.GYRO_2_ADIS_HANDLER_ID, AdisGyroSetIds_0_2.CORE_HK)
|
||||||
|
)
|
||||||
|
sid_list.append(
|
||||||
|
make_sid(oids.GYRO_2_ADIS_HANDLER_ID, AdisGyroSetIds_0_2.CFG_HK)
|
||||||
|
)
|
||||||
|
sid_list.append(make_sid(oids.GYRO_3_L3G_HANDLER_ID, L3gGyroSetIds_1_3.CORE_HK))
|
||||||
# GNSS0+1
|
# GNSS0+1
|
||||||
sid_list.append(make_sid(oids.GPS_HANDLER_0_ID, GpsSetIds.HK))
|
sid_list.append(make_sid(oids.GPS_CONTROLLER, GpsSetIds.HK))
|
||||||
sid_list.append(make_sid(oids.GPS_HANDLER_1_ID, GpsSetIds.HK))
|
sid_list.append(make_sid(oids.GPS_HANDLER_1_ID, GpsSetIds.HK))
|
||||||
pack_generic_hk_listening_cmds(
|
pack_generic_hk_listening_cmds(
|
||||||
tc_queue=tc_queue,
|
tc_queue=tc_queue,
|
||||||
@ -516,16 +577,14 @@ def enable_listen_to_hk_for_x_seconds(
|
|||||||
tc_queue.appendleft(cmd.pack_command_tuple())
|
tc_queue.appendleft(cmd.pack_command_tuple())
|
||||||
|
|
||||||
|
|
||||||
def disable_listen_to_hk_for_x_seconds(
|
def gen_disable_listen_to_hk_for_x_seconds(
|
||||||
tc_queue: TcQueueT,
|
tc_queue: TcQueueT,
|
||||||
diag: bool,
|
diag: bool,
|
||||||
device: str,
|
device: str,
|
||||||
sid: bytes,
|
sid: bytes,
|
||||||
):
|
) -> PusTelecommand:
|
||||||
tc_queue.appendleft((QueueCommands.PRINT, f"Disabling periodic HK for {device}"))
|
tc_queue.appendleft((QueueCommands.PRINT, f"Disabling periodic HK for {device}"))
|
||||||
tc_queue.appendleft(
|
return disable_periodic_hk_command(diag=diag, sid=sid, ssc=0)
|
||||||
disable_periodic_hk_command(diag=diag, sid=sid, ssc=0).pack_command_tuple()
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def activate_mgts_alternately(
|
def activate_mgts_alternately(
|
||||||
|
@ -42,7 +42,7 @@ 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
|
||||||
from pus_tc.system.proc import pack_proc_commands
|
from pus_tc.system.proc import pack_proc_commands
|
||||||
from pus_tc.system.controllers import pack_controller_commands
|
from pus_tc.system.controllers import pack_cmd_ctrl_to_prompted_mode
|
||||||
from config.definitions import CustomServiceList
|
from config.definitions import CustomServiceList
|
||||||
from config.object_ids import (
|
from config.object_ids import (
|
||||||
get_object_ids,
|
get_object_ids,
|
||||||
@ -63,7 +63,7 @@ from config.object_ids import (
|
|||||||
PLOC_SUPV_ID,
|
PLOC_SUPV_ID,
|
||||||
STAR_TRACKER_ID,
|
STAR_TRACKER_ID,
|
||||||
PLOC_MEMORY_DUMPER_ID,
|
PLOC_MEMORY_DUMPER_ID,
|
||||||
GPS_HANDLER_0_ID,
|
GPS_CONTROLLER,
|
||||||
GPS_HANDLER_1_ID,
|
GPS_HANDLER_1_ID,
|
||||||
CCSDS_HANDLER_ID,
|
CCSDS_HANDLER_ID,
|
||||||
PDEC_HANDLER_ID,
|
PDEC_HANDLER_ID,
|
||||||
@ -208,7 +208,7 @@ def pack_service_queue_user(
|
|||||||
return pack_acs_command(tc_queue=service_queue, op_code=op_code)
|
return pack_acs_command(tc_queue=service_queue, op_code=op_code)
|
||||||
if service == CustomServiceList.GPS_0.value:
|
if service == CustomServiceList.GPS_0.value:
|
||||||
return pack_gps_command(
|
return pack_gps_command(
|
||||||
object_id=GPS_HANDLER_0_ID, tc_queue=service_queue, op_code=op_code
|
object_id=GPS_CONTROLLER, tc_queue=service_queue, op_code=op_code
|
||||||
)
|
)
|
||||||
if service == CustomServiceList.GPS_1.value:
|
if service == CustomServiceList.GPS_1.value:
|
||||||
return pack_gps_command(
|
return pack_gps_command(
|
||||||
@ -247,7 +247,7 @@ def pack_service_queue_user(
|
|||||||
tc_queue=service_queue, object_id=RW_ASSEMBLY, op_code=op_code
|
tc_queue=service_queue, object_id=RW_ASSEMBLY, op_code=op_code
|
||||||
)
|
)
|
||||||
if service == CustomServiceList.CONTROLLERS.value:
|
if service == CustomServiceList.CONTROLLERS.value:
|
||||||
return pack_controller_commands(tc_queue=service_queue, op_code=op_code)
|
return pack_cmd_ctrl_to_prompted_mode(tc_queue=service_queue, op_code=op_code)
|
||||||
LOGGER.warning("Invalid Service !")
|
LOGGER.warning("Invalid Service !")
|
||||||
|
|
||||||
|
|
||||||
|
@ -95,7 +95,7 @@ def handle_regular_hk_print(
|
|||||||
return handle_raw_mtm_measurement(printer, hk_data)
|
return handle_raw_mtm_measurement(printer, hk_data)
|
||||||
else:
|
else:
|
||||||
LOGGER.info("Service 3 TM: IMTQ handler reply with unknown set id")
|
LOGGER.info("Service 3 TM: IMTQ handler reply with unknown set id")
|
||||||
if objb == obj_ids.GPS_HANDLER_0_ID or object_id == obj_ids.GPS_HANDLER_1_ID:
|
if objb == obj_ids.GPS_CONTROLLER or object_id == obj_ids.GPS_HANDLER_1_ID:
|
||||||
handle_gps_data(printer=printer, hk_data=hk_data)
|
handle_gps_data(printer=printer, hk_data=hk_data)
|
||||||
if objb == obj_ids.BPX_HANDLER_ID:
|
if objb == obj_ids.BPX_HANDLER_ID:
|
||||||
handle_bpx_hk_data(hk_data=hk_data, set_id=set_id, printer=printer)
|
handle_bpx_hk_data(hk_data=hk_data, set_id=set_id, printer=printer)
|
||||||
|
2
tmtccmd
2
tmtccmd
@ -1 +1 @@
|
|||||||
Subproject commit 2354f5d2778c7681ddf6602766dd4e68b943e1c0
|
Subproject commit eaed332a69885c19912827eb71440e8562935d36
|
Loading…
Reference in New Issue
Block a user