consistency change for enum names
This commit is contained in:
parent
87f5bf83d1
commit
e7609f02b9
@ -121,11 +121,11 @@ def add_str_cmds(defs: TmtcDefinitionWrapper):
|
|||||||
|
|
||||||
@tmtc_definitions_provider
|
@tmtc_definitions_provider
|
||||||
def add_time_cmds(defs: TmtcDefinitionWrapper):
|
def add_time_cmds(defs: TmtcDefinitionWrapper):
|
||||||
from eive_tmtc.pus_tc.system.time import OpCodes, Info
|
from eive_tmtc.pus_tc.system.time import OpCode, Info
|
||||||
|
|
||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
oce.add(
|
oce.add(
|
||||||
keys=OpCodes.SET_CURRENT_TIME,
|
keys=OpCode.SET_CURRENT_TIME,
|
||||||
info=Info.SET_CURRENT_TIME,
|
info=Info.SET_CURRENT_TIME,
|
||||||
)
|
)
|
||||||
defs.add_service(
|
defs.add_service(
|
||||||
@ -141,11 +141,11 @@ def add_system_cmds(defs: TmtcDefinitionWrapper):
|
|||||||
|
|
||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
oce.add(
|
oce.add(
|
||||||
keys=controllers.OpCodes.THERMAL_CONTROLLER,
|
keys=controllers.OpCode.THERMAL_CONTROLLER,
|
||||||
info=controllers.Info.THERMAL_CONTROLLER,
|
info=controllers.Info.THERMAL_CONTROLLER,
|
||||||
)
|
)
|
||||||
oce.add(
|
oce.add(
|
||||||
keys=controllers.OpCodes.CORE_CONTROLLER,
|
keys=controllers.OpCode.CORE_CONTROLLER,
|
||||||
info=controllers.Info.CORE_CONTROLLER,
|
info=controllers.Info.CORE_CONTROLLER,
|
||||||
)
|
)
|
||||||
defs.add_service(
|
defs.add_service(
|
||||||
|
@ -15,19 +15,19 @@ from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Modes
|
|||||||
from tmtccmd.tc.pus_200_fsfw_modes import Subservices as ModeSubservices
|
from tmtccmd.tc.pus_200_fsfw_modes import Subservices as ModeSubservices
|
||||||
|
|
||||||
|
|
||||||
class BpxSetIds:
|
class BpxSetId:
|
||||||
GET_HK_SET = 0
|
GET_HK_SET = 0
|
||||||
GET_CFG_SET = 5
|
GET_CFG_SET = 5
|
||||||
|
|
||||||
|
|
||||||
class BpxActionIds:
|
class BpxActionId:
|
||||||
REBOOT = 2
|
REBOOT = 2
|
||||||
RESET_COUNTERS = 3
|
RESET_COUNTERS = 3
|
||||||
SET_CFG = 4
|
SET_CFG = 4
|
||||||
GET_CFG = 5
|
GET_CFG = 5
|
||||||
|
|
||||||
|
|
||||||
class BpxOpCodes:
|
class BpxOpCode:
|
||||||
HK = ["0", "hk"]
|
HK = ["0", "hk"]
|
||||||
OFF = ["off"]
|
OFF = ["off"]
|
||||||
ON = ["on"]
|
ON = ["on"]
|
||||||
@ -40,15 +40,15 @@ class BpxOpCodes:
|
|||||||
@tmtc_definitions_provider
|
@tmtc_definitions_provider
|
||||||
def add_bpx_cmd_definitions(defs: TmtcDefinitionWrapper):
|
def add_bpx_cmd_definitions(defs: TmtcDefinitionWrapper):
|
||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
oce.add(keys=BpxOpCodes.ON, info="On command")
|
oce.add(keys=BpxOpCode.ON, info="On command")
|
||||||
oce.add(keys=BpxOpCodes.OFF, info="Off command")
|
oce.add(keys=BpxOpCode.OFF, info="Off command")
|
||||||
oce.add(keys=BpxOpCodes.HK, info="Request BPX HK")
|
oce.add(keys=BpxOpCode.HK, info="Request BPX HK")
|
||||||
oce.add(keys=BpxOpCodes.RST_BOOT_CNT, info="Reset Boot Count")
|
oce.add(keys=BpxOpCode.RST_BOOT_CNT, info="Reset Boot Count")
|
||||||
oce.add(keys=BpxOpCodes.REQUEST_CFG, info="Request Configuration Struct (Step 1)")
|
oce.add(keys=BpxOpCode.REQUEST_CFG, info="Request Configuration Struct (Step 1)")
|
||||||
oce.add(
|
oce.add(
|
||||||
keys=BpxOpCodes.REQUEST_CFG_HK, info="Request Configuration Struct HK (Step 2)"
|
keys=BpxOpCode.REQUEST_CFG_HK, info="Request Configuration Struct HK (Step 2)"
|
||||||
)
|
)
|
||||||
oce.add(keys=BpxOpCodes.REBOOT, info="Reboot Command")
|
oce.add(keys=BpxOpCode.REBOOT, info="Reboot Command")
|
||||||
defs.add_service(
|
defs.add_service(
|
||||||
name=CustomServiceList.BPX_BATTERY.value,
|
name=CustomServiceList.BPX_BATTERY.value,
|
||||||
info="BPX Battery Handler",
|
info="BPX Battery Handler",
|
||||||
@ -60,11 +60,11 @@ def add_bpx_cmd_definitions(defs: TmtcDefinitionWrapper):
|
|||||||
def pack_bpx_commands(p: ServiceProviderParams):
|
def pack_bpx_commands(p: ServiceProviderParams):
|
||||||
op_code = p.op_code
|
op_code = p.op_code
|
||||||
q = p.queue_helper
|
q = p.queue_helper
|
||||||
if op_code in BpxOpCodes.HK:
|
if op_code in BpxOpCode.HK:
|
||||||
q.add_log_cmd("Requesting BPX battery HK set")
|
q.add_log_cmd("Requesting BPX battery HK set")
|
||||||
sid = make_sid(object_id=BPX_HANDLER_ID, set_id=BpxSetIds.GET_HK_SET)
|
sid = make_sid(object_id=BPX_HANDLER_ID, set_id=BpxSetId.GET_HK_SET)
|
||||||
q.add_pus_tc(generate_one_hk_command(sid=sid))
|
q.add_pus_tc(generate_one_hk_command(sid=sid))
|
||||||
if op_code in BpxOpCodes.OFF:
|
if op_code in BpxOpCode.OFF:
|
||||||
q.add_log_cmd("Off mode")
|
q.add_log_cmd("Off mode")
|
||||||
mode_cmd = pack_mode_data(BPX_HANDLER_ID, Modes.OFF, 0)
|
mode_cmd = pack_mode_data(BPX_HANDLER_ID, Modes.OFF, 0)
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
@ -74,7 +74,7 @@ def pack_bpx_commands(p: ServiceProviderParams):
|
|||||||
app_data=mode_cmd,
|
app_data=mode_cmd,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if op_code in BpxOpCodes.ON:
|
if op_code in BpxOpCode.ON:
|
||||||
q.add_log_cmd("On mode")
|
q.add_log_cmd("On mode")
|
||||||
mode_cmd = pack_mode_data(BPX_HANDLER_ID, Modes.ON, 0)
|
mode_cmd = pack_mode_data(BPX_HANDLER_ID, Modes.ON, 0)
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
@ -84,28 +84,26 @@ def pack_bpx_commands(p: ServiceProviderParams):
|
|||||||
app_data=mode_cmd,
|
app_data=mode_cmd,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if op_code in BpxOpCodes.RST_BOOT_CNT:
|
if op_code in BpxOpCode.RST_BOOT_CNT:
|
||||||
q.add_log_cmd("Resetting reboot counters")
|
q.add_log_cmd("Resetting reboot counters")
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
make_fsfw_action_cmd(
|
make_fsfw_action_cmd(
|
||||||
object_id=BPX_HANDLER_ID, action_id=BpxActionIds.RESET_COUNTERS
|
object_id=BPX_HANDLER_ID, action_id=BpxActionId.RESET_COUNTERS
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if op_code in BpxOpCodes.REQUEST_CFG:
|
if op_code in BpxOpCode.REQUEST_CFG:
|
||||||
q.add_log_cmd("Requesting configuration struct")
|
q.add_log_cmd("Requesting configuration struct")
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
make_fsfw_action_cmd(
|
make_fsfw_action_cmd(
|
||||||
object_id=BPX_HANDLER_ID, action_id=BpxActionIds.GET_CFG
|
object_id=BPX_HANDLER_ID, action_id=BpxActionId.GET_CFG
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if op_code in BpxOpCodes.REQUEST_CFG_HK:
|
if op_code in BpxOpCode.REQUEST_CFG_HK:
|
||||||
q.add_log_cmd("Requesting configuration struct HK")
|
q.add_log_cmd("Requesting configuration struct HK")
|
||||||
sid = make_sid(object_id=BPX_HANDLER_ID, set_id=BpxSetIds.GET_CFG_SET)
|
sid = make_sid(object_id=BPX_HANDLER_ID, set_id=BpxSetId.GET_CFG_SET)
|
||||||
q.add_pus_tc(generate_one_hk_command(sid=sid))
|
q.add_pus_tc(generate_one_hk_command(sid=sid))
|
||||||
if op_code in BpxOpCodes.REBOOT:
|
if op_code in BpxOpCode.REBOOT:
|
||||||
q.add_log_cmd("Rebooting BPX battery")
|
q.add_log_cmd("Rebooting BPX battery")
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
make_fsfw_action_cmd(
|
make_fsfw_action_cmd(object_id=BPX_HANDLER_ID, action_id=BpxActionId.REBOOT)
|
||||||
object_id=BPX_HANDLER_ID, action_id=BpxActionIds.REBOOT
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
@ -11,7 +11,7 @@ from tmtccmd.logging import get_console_logger
|
|||||||
LOGGER = get_console_logger()
|
LOGGER = get_console_logger()
|
||||||
|
|
||||||
|
|
||||||
class OpCodes:
|
class OpCode:
|
||||||
REQ_OS_HK = ["0", "hk-os"]
|
REQ_OS_HK = ["0", "hk-os"]
|
||||||
RESET_GNSS = ["5", "reset"]
|
RESET_GNSS = ["5", "reset"]
|
||||||
|
|
||||||
@ -21,15 +21,15 @@ class Info:
|
|||||||
RESET_GNSS = "Reset GNSS using reset pin"
|
RESET_GNSS = "Reset GNSS using reset pin"
|
||||||
|
|
||||||
|
|
||||||
class SetIds:
|
class SetId:
|
||||||
HK = 0
|
HK = 0
|
||||||
|
|
||||||
|
|
||||||
@tmtc_definitions_provider
|
@tmtc_definitions_provider
|
||||||
def add_gps_cmds(defs: TmtcDefinitionWrapper):
|
def add_gps_cmds(defs: TmtcDefinitionWrapper):
|
||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
oce.add(keys=OpCodes.RESET_GNSS, info=Info.RESET_GNSS)
|
oce.add(keys=OpCode.RESET_GNSS, info=Info.RESET_GNSS)
|
||||||
oce.add(keys=OpCodes.REQ_OS_HK, info=Info.REQ_OS_HK)
|
oce.add(keys=OpCode.REQ_OS_HK, info=Info.REQ_OS_HK)
|
||||||
defs.add_service(
|
defs.add_service(
|
||||||
name=CustomServiceList.GPS_CTRL.value,
|
name=CustomServiceList.GPS_CTRL.value,
|
||||||
info="GPS/GNSS Controller",
|
info="GPS/GNSS Controller",
|
||||||
@ -38,11 +38,11 @@ def add_gps_cmds(defs: TmtcDefinitionWrapper):
|
|||||||
|
|
||||||
|
|
||||||
def pack_gps_command(object_id: bytes, q: DefaultPusQueueHelper, op_code: str):
|
def pack_gps_command(object_id: bytes, q: DefaultPusQueueHelper, op_code: str):
|
||||||
if op_code in OpCodes.RESET_GNSS:
|
if op_code in OpCode.RESET_GNSS:
|
||||||
# TODO: This needs to be re-implemented
|
# TODO: This needs to be re-implemented
|
||||||
LOGGER.warning("Reset pin handling needs to be re-implemented")
|
LOGGER.warning("Reset pin handling needs to be re-implemented")
|
||||||
if op_code in OpCodes.REQ_OS_HK:
|
if op_code in OpCode.REQ_OS_HK:
|
||||||
q.add_log_cmd(f"GMSS: {Info.REQ_OS_HK}")
|
q.add_log_cmd(f"GMSS: {Info.REQ_OS_HK}")
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
generate_one_hk_command(sid=make_sid(object_id=object_id, set_id=SetIds.HK))
|
generate_one_hk_command(sid=make_sid(object_id=object_id, set_id=SetId.HK))
|
||||||
)
|
)
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import enum
|
import enum
|
||||||
|
|
||||||
|
|
||||||
class AdisGyroSetIds(enum.IntEnum):
|
class AdisGyroSetId(enum.IntEnum):
|
||||||
CORE_HK = 0
|
CORE_HK = 0
|
||||||
CFG_HK = 1
|
CFG_HK = 1
|
||||||
|
|
||||||
|
|
||||||
class L3gGyroSetIds(enum.IntEnum):
|
class L3gGyroSetId(enum.IntEnum):
|
||||||
CORE_HK = 0
|
CORE_HK = 0
|
||||||
|
@ -20,7 +20,7 @@ from tmtccmd.tc.pus_8_funccmd import make_fsfw_action_cmd
|
|||||||
from spacepackets.ecss.tc import PusTelecommand
|
from spacepackets.ecss.tc import PusTelecommand
|
||||||
|
|
||||||
|
|
||||||
class SwitchNumbers:
|
class SwitchNumber(enum.IntEnum):
|
||||||
HEATER_0_OBC_BRD = 0
|
HEATER_0_OBC_BRD = 0
|
||||||
HEATER_1_PLOC_PROC_BRD = 1
|
HEATER_1_PLOC_PROC_BRD = 1
|
||||||
HEATER_2_ACS_BRD = 2
|
HEATER_2_ACS_BRD = 2
|
||||||
@ -32,7 +32,7 @@ class SwitchNumbers:
|
|||||||
NUMBER_OF_SWITCHES = 8
|
NUMBER_OF_SWITCHES = 8
|
||||||
|
|
||||||
|
|
||||||
class OpCodes:
|
class OpCode:
|
||||||
HEATER_CMD = ["0", "switch-cmd"]
|
HEATER_CMD = ["0", "switch-cmd"]
|
||||||
HEATER_EXT_CTRL = ["1", "set-ext-ctrl"]
|
HEATER_EXT_CTRL = ["1", "set-ext-ctrl"]
|
||||||
HEATER_FAULTY_CMD = ["2", "set-faulty"]
|
HEATER_FAULTY_CMD = ["2", "set-faulty"]
|
||||||
@ -57,10 +57,10 @@ class ActionIds(enum.IntEnum):
|
|||||||
@tmtc_definitions_provider
|
@tmtc_definitions_provider
|
||||||
def add_heater_cmds(defs: TmtcDefinitionWrapper):
|
def add_heater_cmds(defs: TmtcDefinitionWrapper):
|
||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
oce.add(keys=OpCodes.HEATER_CMD, info=Info.HEATER_CMD)
|
oce.add(keys=OpCode.HEATER_CMD, info=Info.HEATER_CMD)
|
||||||
oce.add(keys=OpCodes.HEATER_HEALTHY_CMD, info=Info.HEATER_HEALTHY_CMD)
|
oce.add(keys=OpCode.HEATER_HEALTHY_CMD, info=Info.HEATER_HEALTHY_CMD)
|
||||||
oce.add(keys=OpCodes.HEATER_EXT_CTRL, info=Info.HEATER_EXT_CTRL)
|
oce.add(keys=OpCode.HEATER_EXT_CTRL, info=Info.HEATER_EXT_CTRL)
|
||||||
oce.add(keys=OpCodes.HEATER_FAULTY_CMD, info=Info.HEATER_FAULTY_CMD)
|
oce.add(keys=OpCode.HEATER_FAULTY_CMD, info=Info.HEATER_FAULTY_CMD)
|
||||||
defs.add_service(
|
defs.add_service(
|
||||||
name=CustomServiceList.HEATER.value,
|
name=CustomServiceList.HEATER.value,
|
||||||
info="Heater Device",
|
info="Heater Device",
|
||||||
@ -69,7 +69,7 @@ def add_heater_cmds(defs: TmtcDefinitionWrapper):
|
|||||||
|
|
||||||
|
|
||||||
def pack_heater_cmds(object_id: bytearray, op_code: str, q: DefaultPusQueueHelper):
|
def pack_heater_cmds(object_id: bytearray, op_code: str, q: DefaultPusQueueHelper):
|
||||||
if op_code in OpCodes.HEATER_CMD:
|
if op_code in OpCode.HEATER_CMD:
|
||||||
q.add_log_cmd("Heater Switching")
|
q.add_log_cmd("Heater Switching")
|
||||||
heater_number = prompt_heater()
|
heater_number = prompt_heater()
|
||||||
while True:
|
while True:
|
||||||
@ -89,7 +89,7 @@ def pack_heater_cmds(object_id: bytearray, op_code: str, q: DefaultPusQueueHelpe
|
|||||||
debug_string = f"Switching heater {heater_number} {act_str}"
|
debug_string = f"Switching heater {heater_number} {act_str}"
|
||||||
q.add_log_cmd(debug_string)
|
q.add_log_cmd(debug_string)
|
||||||
q.add_pus_tc(pack_switch_heater_command(object_id, heater_number, action))
|
q.add_pus_tc(pack_switch_heater_command(object_id, heater_number, action))
|
||||||
if op_code in OpCodes.HEATER_EXT_CTRL:
|
if op_code in OpCode.HEATER_EXT_CTRL:
|
||||||
heater_number = prompt_heater()
|
heater_number = prompt_heater()
|
||||||
obj_id = heater_idx_to_obj(heater_number)
|
obj_id = heater_idx_to_obj(heater_number)
|
||||||
health_cmd(
|
health_cmd(
|
||||||
@ -99,7 +99,7 @@ def pack_heater_cmds(object_id: bytearray, op_code: str, q: DefaultPusQueueHelpe
|
|||||||
health_str="External Control",
|
health_str="External Control",
|
||||||
heater_idx=heater_number,
|
heater_idx=heater_number,
|
||||||
)
|
)
|
||||||
if op_code in OpCodes.HEATER_FAULTY_CMD:
|
if op_code in OpCode.HEATER_FAULTY_CMD:
|
||||||
heater_number = prompt_heater()
|
heater_number = prompt_heater()
|
||||||
obj_id = heater_idx_to_obj(heater_number)
|
obj_id = heater_idx_to_obj(heater_number)
|
||||||
health_cmd(
|
health_cmd(
|
||||||
@ -109,7 +109,7 @@ def pack_heater_cmds(object_id: bytearray, op_code: str, q: DefaultPusQueueHelpe
|
|||||||
health_str="Faulty",
|
health_str="Faulty",
|
||||||
heater_idx=heater_number,
|
heater_idx=heater_number,
|
||||||
)
|
)
|
||||||
if op_code in OpCodes.HEATER_HEALTHY_CMD:
|
if op_code in OpCode.HEATER_HEALTHY_CMD:
|
||||||
heater_number = prompt_heater()
|
heater_number = prompt_heater()
|
||||||
obj_id = heater_idx_to_obj(heater_number)
|
obj_id = heater_idx_to_obj(heater_number)
|
||||||
health_cmd(
|
health_cmd(
|
||||||
@ -165,7 +165,7 @@ def prompt_heater() -> int:
|
|||||||
print("Heater number not a digit")
|
print("Heater number not a digit")
|
||||||
continue
|
continue
|
||||||
heater_number = int(heater_number)
|
heater_number = int(heater_number)
|
||||||
if heater_number >= SwitchNumbers.NUMBER_OF_SWITCHES or heater_number < 0:
|
if heater_number >= SwitchNumber.NUMBER_OF_SWITCHES or heater_number < 0:
|
||||||
print("Invalid heater switch number")
|
print("Invalid heater switch number")
|
||||||
continue
|
continue
|
||||||
break
|
break
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import enum
|
import enum
|
||||||
|
|
||||||
|
|
||||||
class MgmLis3SetIds(enum.IntEnum):
|
class MgmLis3SetId(enum.IntEnum):
|
||||||
CORE_HK = 0
|
CORE_HK = 0
|
||||||
|
|
||||||
|
|
||||||
class MgmRm3100SetIds(enum.IntEnum):
|
class MgmRm3100SetId(enum.IntEnum):
|
||||||
CORE_HK = 0
|
CORE_HK = 0
|
||||||
|
@ -9,7 +9,7 @@ from spacepackets.ecss.tc import PusTelecommand
|
|||||||
from tmtccmd.tc import DefaultPusQueueHelper
|
from tmtccmd.tc import DefaultPusQueueHelper
|
||||||
|
|
||||||
|
|
||||||
class CommandIds:
|
class CommandId:
|
||||||
# prints the clcw to the console. Useful for debugging
|
# prints the clcw to the console. Useful for debugging
|
||||||
PRINT_CLCW = bytearray([0x0, 0x0, 0x0, 0x0])
|
PRINT_CLCW = bytearray([0x0, 0x0, 0x0, 0x0])
|
||||||
# Print PDEC monitor register
|
# Print PDEC monitor register
|
||||||
@ -22,9 +22,9 @@ def pack_pdec_handler_test(
|
|||||||
q.add_log_cmd(f"Testing PDEC handler with object id: {object_id.hex()}")
|
q.add_log_cmd(f"Testing PDEC handler with object id: {object_id.hex()}")
|
||||||
if op_code == "0":
|
if op_code == "0":
|
||||||
q.add_log_cmd("PDEC Handler: Print CLCW")
|
q.add_log_cmd("PDEC Handler: Print CLCW")
|
||||||
command = object_id + CommandIds.PRINT_CLCW
|
command = object_id + CommandId.PRINT_CLCW
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "1":
|
if op_code == "1":
|
||||||
q.add_log_cmd("PDEC Handler: Print PDEC monitor register")
|
q.add_log_cmd("PDEC Handler: Print PDEC monitor register")
|
||||||
command = object_id + CommandIds.PRINT_PDEC_MON
|
command = object_id + CommandId.PRINT_PDEC_MON
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
|
@ -31,7 +31,7 @@ from eive_tmtc.config.object_ids import PL_PCDU_ID
|
|||||||
LOGGER = get_console_logger()
|
LOGGER = get_console_logger()
|
||||||
|
|
||||||
|
|
||||||
class OpCodes:
|
class OpCode:
|
||||||
SWITCH_HPA_ON_PROC = ["0", "proc_hpa"]
|
SWITCH_HPA_ON_PROC = ["0", "proc_hpa"]
|
||||||
SWITCH_ON = ["2", "on"]
|
SWITCH_ON = ["2", "on"]
|
||||||
SWITCH_OFF = ["3", "off"]
|
SWITCH_OFF = ["3", "off"]
|
||||||
@ -70,7 +70,7 @@ class Info:
|
|||||||
DISABLE_HK = "Disable HK"
|
DISABLE_HK = "Disable HK"
|
||||||
|
|
||||||
|
|
||||||
class SetIds(enum.IntEnum):
|
class SetId(enum.IntEnum):
|
||||||
ADC = 0
|
ADC = 0
|
||||||
|
|
||||||
|
|
||||||
@ -124,63 +124,63 @@ class ParamIds(enum.IntEnum):
|
|||||||
@tmtc_definitions_provider
|
@tmtc_definitions_provider
|
||||||
def add_pl_pcdu_cmds(defs: TmtcDefinitionWrapper):
|
def add_pl_pcdu_cmds(defs: TmtcDefinitionWrapper):
|
||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
oce.add(keys=OpCodes.SWITCH_HPA_ON_PROC, info=Info.SWITCH_HPA_ON_PROC)
|
oce.add(keys=OpCode.SWITCH_HPA_ON_PROC, info=Info.SWITCH_HPA_ON_PROC)
|
||||||
oce.add(keys=OpCodes.SWITCH_ON, info=Info.SWITCH_ON)
|
oce.add(keys=OpCode.SWITCH_ON, info=Info.SWITCH_ON)
|
||||||
oce.add(keys=OpCodes.SWITCH_OFF, info=Info.SWITCH_OFF)
|
oce.add(keys=OpCode.SWITCH_OFF, info=Info.SWITCH_OFF)
|
||||||
oce.add(keys=OpCodes.NORMAL_SSR, info=Info.NORMAL_SSR)
|
oce.add(keys=OpCode.NORMAL_SSR, info=Info.NORMAL_SSR)
|
||||||
oce.add(keys=OpCodes.NORMAL_DRO, info=Info.NORMAL_DRO)
|
oce.add(keys=OpCode.NORMAL_DRO, info=Info.NORMAL_DRO)
|
||||||
oce.add(keys=OpCodes.NORMAL_X8, info=Info.NORMAL_X8)
|
oce.add(keys=OpCode.NORMAL_X8, info=Info.NORMAL_X8)
|
||||||
oce.add(keys=OpCodes.NORMAL_TX, info=Info.NORMAL_TX)
|
oce.add(keys=OpCode.NORMAL_TX, info=Info.NORMAL_TX)
|
||||||
oce.add(keys=OpCodes.NORMAL_MPA, info=Info.NORMAL_MPA)
|
oce.add(keys=OpCode.NORMAL_MPA, info=Info.NORMAL_MPA)
|
||||||
oce.add(keys=OpCodes.NORMAL_HPA, info=Info.NORMAL_HPA)
|
oce.add(keys=OpCode.NORMAL_HPA, info=Info.NORMAL_HPA)
|
||||||
oce.add(keys=OpCodes.REQ_OS_HK, info=Info.REQ_OS_HK)
|
oce.add(keys=OpCode.REQ_OS_HK, info=Info.REQ_OS_HK)
|
||||||
oce.add(keys=OpCodes.ENABLE_HK, info=Info.ENABLE_HK)
|
oce.add(keys=OpCode.ENABLE_HK, info=Info.ENABLE_HK)
|
||||||
oce.add(
|
oce.add(
|
||||||
keys=OpCodes.INJECT_SSR_TO_DRO_FAILURE,
|
keys=OpCode.INJECT_SSR_TO_DRO_FAILURE,
|
||||||
info="Inject failure SSR to DRO transition",
|
info="Inject failure SSR to DRO transition",
|
||||||
)
|
)
|
||||||
oce.add(
|
oce.add(
|
||||||
keys=OpCodes.INJECT_DRO_TO_X8_FAILURE,
|
keys=OpCode.INJECT_DRO_TO_X8_FAILURE,
|
||||||
info="Inject failure in DRO to X8 transition",
|
info="Inject failure in DRO to X8 transition",
|
||||||
)
|
)
|
||||||
oce.add(
|
oce.add(
|
||||||
keys=OpCodes.INJECT_X8_TO_TX_FAILURE,
|
keys=OpCode.INJECT_X8_TO_TX_FAILURE,
|
||||||
info="Inject failure in X8 to TX transition",
|
info="Inject failure in X8 to TX transition",
|
||||||
)
|
)
|
||||||
oce.add(
|
oce.add(
|
||||||
keys=OpCodes.INJECT_TX_TO_MPA_FAILURE,
|
keys=OpCode.INJECT_TX_TO_MPA_FAILURE,
|
||||||
info="Inject failure in TX to MPA transition",
|
info="Inject failure in TX to MPA transition",
|
||||||
)
|
)
|
||||||
oce.add(
|
oce.add(
|
||||||
keys=OpCodes.INJECT_MPA_TO_HPA_FAILURE,
|
keys=OpCode.INJECT_MPA_TO_HPA_FAILURE,
|
||||||
info="Inject failure in MPA to HPA transition",
|
info="Inject failure in MPA to HPA transition",
|
||||||
)
|
)
|
||||||
oce.add(keys=OpCodes.INJECT_ALL_ON_FAILURE, info="Inject failure in all on mode")
|
oce.add(keys=OpCode.INJECT_ALL_ON_FAILURE, info="Inject failure in all on mode")
|
||||||
defs.add_service(CustomServiceList.PL_PCDU.value, "PL PCDU", oce)
|
defs.add_service(CustomServiceList.PL_PCDU.value, "PL PCDU", oce)
|
||||||
|
|
||||||
|
|
||||||
def pack_pl_pcdu_commands(q: DefaultPusQueueHelper, op_code: str):
|
def pack_pl_pcdu_commands(q: DefaultPusQueueHelper, op_code: str):
|
||||||
if op_code in OpCodes.SWITCH_ON:
|
if op_code in OpCode.SWITCH_ON:
|
||||||
pack_pl_pcdu_mode_cmd(q=q, info=Info.SWITCH_ON, mode=Modes.ON, submode=0)
|
pack_pl_pcdu_mode_cmd(q=q, info=Info.SWITCH_ON, mode=Modes.ON, submode=0)
|
||||||
if op_code in OpCodes.SWITCH_OFF:
|
if op_code in OpCode.SWITCH_OFF:
|
||||||
pack_pl_pcdu_mode_cmd(q=q, info=Info.SWITCH_OFF, mode=Modes.OFF, submode=0)
|
pack_pl_pcdu_mode_cmd(q=q, info=Info.SWITCH_OFF, mode=Modes.OFF, submode=0)
|
||||||
if op_code in OpCodes.ENABLE_HK:
|
if op_code in OpCode.ENABLE_HK:
|
||||||
interval = float(
|
interval = float(
|
||||||
input("Please enter HK collection interval in floating point seconds: ")
|
input("Please enter HK collection interval in floating point seconds: ")
|
||||||
)
|
)
|
||||||
cmds = enable_periodic_hk_command_with_interval(
|
cmds = enable_periodic_hk_command_with_interval(
|
||||||
diag=True, sid=make_sid(PL_PCDU_ID, SetIds.ADC), interval_seconds=interval
|
diag=True, sid=make_sid(PL_PCDU_ID, SetId.ADC), interval_seconds=interval
|
||||||
)
|
)
|
||||||
q.add_log_cmd(f"Enable PL PCDU HK with interval of {interval} seconds")
|
q.add_log_cmd(f"Enable PL PCDU HK with interval of {interval} seconds")
|
||||||
for cmd in cmds:
|
for cmd in cmds:
|
||||||
q.add_pus_tc(cmd)
|
q.add_pus_tc(cmd)
|
||||||
if op_code in OpCodes.DISABLE_HK:
|
if op_code in OpCode.DISABLE_HK:
|
||||||
cmd = disable_periodic_hk_command(
|
cmd = disable_periodic_hk_command(
|
||||||
diag=True, sid=make_sid(PL_PCDU_ID, SetIds.ADC)
|
diag=True, sid=make_sid(PL_PCDU_ID, SetId.ADC)
|
||||||
)
|
)
|
||||||
q.add_log_cmd("Disabling PL PCDU HK")
|
q.add_log_cmd("Disabling PL PCDU HK")
|
||||||
q.add_pus_tc(cmd)
|
q.add_pus_tc(cmd)
|
||||||
if op_code in OpCodes.NORMAL_SSR:
|
if op_code in OpCode.NORMAL_SSR:
|
||||||
pack_pl_pcdu_mode_cmd(
|
pack_pl_pcdu_mode_cmd(
|
||||||
q=q,
|
q=q,
|
||||||
info=Info.NORMAL_SSR,
|
info=Info.NORMAL_SSR,
|
||||||
@ -189,51 +189,51 @@ def pack_pl_pcdu_commands(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
NormalSubmodesMask.SOLID_STATE_RELAYS_ADC_ON
|
NormalSubmodesMask.SOLID_STATE_RELAYS_ADC_ON
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
if op_code in OpCodes.NORMAL_DRO:
|
if op_code in OpCode.NORMAL_DRO:
|
||||||
pack_pl_pcdu_mode_cmd(
|
pack_pl_pcdu_mode_cmd(
|
||||||
q=q,
|
q=q,
|
||||||
info=Info.NORMAL_DRO,
|
info=Info.NORMAL_DRO,
|
||||||
mode=Modes.NORMAL,
|
mode=Modes.NORMAL,
|
||||||
submode=submode_mask_to_submode(NormalSubmodesMask.DRO_ON),
|
submode=submode_mask_to_submode(NormalSubmodesMask.DRO_ON),
|
||||||
)
|
)
|
||||||
if op_code in OpCodes.NORMAL_X8:
|
if op_code in OpCode.NORMAL_X8:
|
||||||
pack_pl_pcdu_mode_cmd(
|
pack_pl_pcdu_mode_cmd(
|
||||||
q=q,
|
q=q,
|
||||||
info=Info.NORMAL_X8,
|
info=Info.NORMAL_X8,
|
||||||
mode=Modes.NORMAL,
|
mode=Modes.NORMAL,
|
||||||
submode=submode_mask_to_submode(NormalSubmodesMask.X8_ON),
|
submode=submode_mask_to_submode(NormalSubmodesMask.X8_ON),
|
||||||
)
|
)
|
||||||
if op_code in OpCodes.NORMAL_TX:
|
if op_code in OpCode.NORMAL_TX:
|
||||||
pack_pl_pcdu_mode_cmd(
|
pack_pl_pcdu_mode_cmd(
|
||||||
q=q,
|
q=q,
|
||||||
info=Info.NORMAL_TX,
|
info=Info.NORMAL_TX,
|
||||||
mode=Modes.NORMAL,
|
mode=Modes.NORMAL,
|
||||||
submode=submode_mask_to_submode(NormalSubmodesMask.TX_ON),
|
submode=submode_mask_to_submode(NormalSubmodesMask.TX_ON),
|
||||||
)
|
)
|
||||||
if op_code in OpCodes.NORMAL_MPA:
|
if op_code in OpCode.NORMAL_MPA:
|
||||||
pack_pl_pcdu_mode_cmd(
|
pack_pl_pcdu_mode_cmd(
|
||||||
q=q,
|
q=q,
|
||||||
info=Info.NORMAL_MPA,
|
info=Info.NORMAL_MPA,
|
||||||
mode=Modes.NORMAL,
|
mode=Modes.NORMAL,
|
||||||
submode=submode_mask_to_submode(NormalSubmodesMask.MPA_ON),
|
submode=submode_mask_to_submode(NormalSubmodesMask.MPA_ON),
|
||||||
)
|
)
|
||||||
if op_code in OpCodes.NORMAL_HPA:
|
if op_code in OpCode.NORMAL_HPA:
|
||||||
pack_pl_pcdu_mode_cmd(
|
pack_pl_pcdu_mode_cmd(
|
||||||
q=q,
|
q=q,
|
||||||
info=Info.NORMAL_HPA,
|
info=Info.NORMAL_HPA,
|
||||||
mode=Modes.NORMAL,
|
mode=Modes.NORMAL,
|
||||||
submode=submode_mask_to_submode(NormalSubmodesMask.HPA_ON),
|
submode=submode_mask_to_submode(NormalSubmodesMask.HPA_ON),
|
||||||
)
|
)
|
||||||
if op_code in OpCodes.REQ_OS_HK:
|
if op_code in OpCode.REQ_OS_HK:
|
||||||
q.add_log_cmd(f"PL PCDU: {Info.REQ_OS_HK}")
|
q.add_log_cmd(f"PL PCDU: {Info.REQ_OS_HK}")
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
generate_one_diag_command(
|
generate_one_diag_command(
|
||||||
sid=make_sid(object_id=PL_PCDU_ID, set_id=SetIds.ADC)
|
sid=make_sid(object_id=PL_PCDU_ID, set_id=SetId.ADC)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if op_code in OpCodes.SWITCH_HPA_ON_PROC:
|
if op_code in OpCode.SWITCH_HPA_ON_PROC:
|
||||||
hpa_on_procedure(q)
|
hpa_on_procedure(q)
|
||||||
if op_code in OpCodes.INJECT_ALL_ON_FAILURE:
|
if op_code in OpCode.INJECT_ALL_ON_FAILURE:
|
||||||
pack_failure_injection_cmd(
|
pack_failure_injection_cmd(
|
||||||
q=q,
|
q=q,
|
||||||
param_id=ParamIds.INJECT_ALL_ON_FAILURE,
|
param_id=ParamIds.INJECT_ALL_ON_FAILURE,
|
||||||
|
@ -18,11 +18,11 @@ from tmtccmd.tc.pus_3_fsfw_hk import generate_one_hk_command, make_sid
|
|||||||
from tmtccmd.util import ObjectIdU32
|
from tmtccmd.util import ObjectIdU32
|
||||||
|
|
||||||
|
|
||||||
class SetIds:
|
class SetId:
|
||||||
HK = 3
|
HK = 3
|
||||||
|
|
||||||
|
|
||||||
class OpCodes:
|
class OpCode:
|
||||||
ON = ["0", "on"]
|
ON = ["0", "on"]
|
||||||
NORMAL = ["1", "normal"]
|
NORMAL = ["1", "normal"]
|
||||||
OFF = ["2", "off"]
|
OFF = ["2", "off"]
|
||||||
@ -40,7 +40,7 @@ class Info:
|
|||||||
DEBUG_OFF = "Switch debug output off"
|
DEBUG_OFF = "Switch debug output off"
|
||||||
|
|
||||||
|
|
||||||
class CommandIds:
|
class CommandId:
|
||||||
START_CONVERSIONS = 2
|
START_CONVERSIONS = 2
|
||||||
READ_CONVERSIONS = 3
|
READ_CONVERSIONS = 3
|
||||||
ENABLE_DEBUG_OUTPUT = 4
|
ENABLE_DEBUG_OUTPUT = 4
|
||||||
@ -50,12 +50,12 @@ class CommandIds:
|
|||||||
@tmtc_definitions_provider
|
@tmtc_definitions_provider
|
||||||
def add_rad_sens_cmds(defs: TmtcDefinitionWrapper):
|
def add_rad_sens_cmds(defs: TmtcDefinitionWrapper):
|
||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
oce.add(info=Info.ON, keys=OpCodes.ON)
|
oce.add(info=Info.ON, keys=OpCode.ON)
|
||||||
oce.add(info=Info.OFF, keys=OpCodes.OFF)
|
oce.add(info=Info.OFF, keys=OpCode.OFF)
|
||||||
oce.add(info=Info.NORMAL, keys=OpCodes.NORMAL)
|
oce.add(info=Info.NORMAL, keys=OpCode.NORMAL)
|
||||||
oce.add(info=Info.REQ_OS_HK, keys=OpCodes.REQ_HK_ONCE)
|
oce.add(info=Info.REQ_OS_HK, keys=OpCode.REQ_HK_ONCE)
|
||||||
oce.add(info=Info.DEBUG_ON, keys=OpCodes.DEBUG_ON)
|
oce.add(info=Info.DEBUG_ON, keys=OpCode.DEBUG_ON)
|
||||||
oce.add(info=Info.DEBUG_OFF, keys=OpCodes.DEBUG_OFF)
|
oce.add(info=Info.DEBUG_OFF, keys=OpCode.DEBUG_OFF)
|
||||||
defs.add_service(
|
defs.add_service(
|
||||||
name=CustomServiceList.RAD_SENSOR.value,
|
name=CustomServiceList.RAD_SENSOR.value,
|
||||||
info="Radiation Sensor",
|
info="Radiation Sensor",
|
||||||
@ -68,26 +68,24 @@ def pack_rad_sensor_test_into(
|
|||||||
):
|
):
|
||||||
q.add_log_cmd(f"Commanding Radiation sensor handler {object_id}")
|
q.add_log_cmd(f"Commanding Radiation sensor handler {object_id}")
|
||||||
|
|
||||||
if op_code in OpCodes.ON:
|
if op_code in OpCode.ON:
|
||||||
rad_sensor_mode_cmd(object_id, Modes.ON, Info.ON, q)
|
rad_sensor_mode_cmd(object_id, Modes.ON, Info.ON, q)
|
||||||
if op_code in OpCodes.NORMAL:
|
if op_code in OpCode.NORMAL:
|
||||||
rad_sensor_mode_cmd(object_id, Modes.NORMAL, Info.NORMAL, q)
|
rad_sensor_mode_cmd(object_id, Modes.NORMAL, Info.NORMAL, q)
|
||||||
if op_code in OpCodes.OFF:
|
if op_code in OpCode.OFF:
|
||||||
rad_sensor_mode_cmd(object_id, Modes.OFF, Info.OFF, q)
|
rad_sensor_mode_cmd(object_id, Modes.OFF, Info.OFF, q)
|
||||||
if op_code in OpCodes.REQ_HK_ONCE:
|
if op_code in OpCode.REQ_HK_ONCE:
|
||||||
q.add_log_cmd(f"Rad sensor: {Info.REQ_OS_HK}")
|
q.add_log_cmd(f"Rad sensor: {Info.REQ_OS_HK}")
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
generate_one_hk_command(sid=make_sid(object_id.as_bytes, set_id=SetIds.HK))
|
generate_one_hk_command(sid=make_sid(object_id.as_bytes, set_id=SetId.HK))
|
||||||
)
|
)
|
||||||
if op_code in OpCodes.DEBUG_ON:
|
if op_code in OpCode.DEBUG_ON:
|
||||||
q.add_log_cmd(f"Rad sensor: {Info.DEBUG_ON}")
|
q.add_log_cmd(f"Rad sensor: {Info.DEBUG_ON}")
|
||||||
command = object_id.as_bytes + struct.pack("!I", CommandIds.ENABLE_DEBUG_OUTPUT)
|
command = object_id.as_bytes + struct.pack("!I", CommandId.ENABLE_DEBUG_OUTPUT)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code in OpCodes.DEBUG_OFF:
|
if op_code in OpCode.DEBUG_OFF:
|
||||||
q.add_log_cmd(f"Rad sensor: {Info.DEBUG_OFF}")
|
q.add_log_cmd(f"Rad sensor: {Info.DEBUG_OFF}")
|
||||||
command = object_id.as_bytes + struct.pack(
|
command = object_id.as_bytes + struct.pack("!I", CommandId.DISABLE_DEBUG_OUTPUT)
|
||||||
"!I", CommandIds.DISABLE_DEBUG_OUTPUT
|
|
||||||
)
|
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from eive_tmtc.config.definitions import CustomServiceList
|
from eive_tmtc.config.definitions import CustomServiceList
|
||||||
from eive_tmtc.pus_tc.devs.pdec_handler import CommandIds
|
from eive_tmtc.pus_tc.devs.pdec_handler import CommandId
|
||||||
from spacepackets.ecss import PusTelecommand
|
from spacepackets.ecss import PusTelecommand
|
||||||
from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry
|
from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry
|
||||||
from tmtccmd.config.tmtc import tmtc_definitions_provider
|
from tmtccmd.config.tmtc import tmtc_definitions_provider
|
||||||
@ -32,7 +32,7 @@ RTD_IDS = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class OpCodes:
|
class OpCode:
|
||||||
ON = ["0", "on"]
|
ON = ["0", "on"]
|
||||||
OFF = ["1", "off"]
|
OFF = ["1", "off"]
|
||||||
NORMAL = ["2", "normal"]
|
NORMAL = ["2", "normal"]
|
||||||
@ -49,9 +49,9 @@ class Info:
|
|||||||
@tmtc_definitions_provider
|
@tmtc_definitions_provider
|
||||||
def specify_rtd_cmds(defs: TmtcDefinitionWrapper):
|
def specify_rtd_cmds(defs: TmtcDefinitionWrapper):
|
||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
oce.add(keys=OpCodes.ON, info=Info.ON)
|
oce.add(keys=OpCode.ON, info=Info.ON)
|
||||||
oce.add(keys=OpCodes.NORMAL, info=Info.NORMAL)
|
oce.add(keys=OpCode.NORMAL, info=Info.NORMAL)
|
||||||
oce.add(keys=OpCodes.OFF, info=Info.OFF)
|
oce.add(keys=OpCode.OFF, info=Info.OFF)
|
||||||
defs.add_service(
|
defs.add_service(
|
||||||
name=CustomServiceList.RTD.value, info="RTD commands", op_code_entry=oce
|
name=CustomServiceList.RTD.value, info="RTD commands", op_code_entry=oce
|
||||||
)
|
)
|
||||||
@ -67,7 +67,7 @@ def pack_rtd_commands(
|
|||||||
tgt_rtd_idx = prompt_rtd_idx()
|
tgt_rtd_idx = prompt_rtd_idx()
|
||||||
object_id_dict = get_object_ids()
|
object_id_dict = get_object_ids()
|
||||||
object_id = object_id_dict.get(RTD_IDS[tgt_rtd_idx])
|
object_id = object_id_dict.get(RTD_IDS[tgt_rtd_idx])
|
||||||
if op_code in OpCodes.ON:
|
if op_code in OpCode.ON:
|
||||||
app_data = pack_mode_data(
|
app_data = pack_mode_data(
|
||||||
object_id=object_id.as_bytes, mode=Modes.ON, submode=0
|
object_id=object_id.as_bytes, mode=Modes.ON, submode=0
|
||||||
)
|
)
|
||||||
@ -76,7 +76,7 @@ def pack_rtd_commands(
|
|||||||
service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=app_data
|
service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=app_data
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if op_code in OpCodes.NORMAL:
|
if op_code in OpCode.NORMAL:
|
||||||
app_data = pack_mode_data(
|
app_data = pack_mode_data(
|
||||||
object_id=object_id.as_bytes, mode=Modes.NORMAL, submode=0
|
object_id=object_id.as_bytes, mode=Modes.NORMAL, submode=0
|
||||||
)
|
)
|
||||||
@ -85,7 +85,7 @@ def pack_rtd_commands(
|
|||||||
service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=app_data
|
service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=app_data
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if op_code in OpCodes.OFF:
|
if op_code in OpCode.OFF:
|
||||||
app_data = pack_mode_data(
|
app_data = pack_mode_data(
|
||||||
object_id=object_id.as_bytes, mode=Modes.OFF, submode=0
|
object_id=object_id.as_bytes, mode=Modes.OFF, submode=0
|
||||||
)
|
)
|
||||||
@ -94,8 +94,8 @@ def pack_rtd_commands(
|
|||||||
service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=app_data
|
service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=app_data
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if op_code in OpCodes.CONFIG_CMD:
|
if op_code in OpCode.CONFIG_CMD:
|
||||||
command = object_id.as_bytes + CommandIds.PRINT_CLCW
|
command = object_id.as_bytes + CommandId.PRINT_CLCW
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ from eive_tmtc.config.object_ids import SCEX_HANDLER_ID
|
|||||||
USE_SCEX_CONF_FILE = True
|
USE_SCEX_CONF_FILE = True
|
||||||
|
|
||||||
|
|
||||||
class OpCodes:
|
class OpCode:
|
||||||
PING = ["0", "ping"]
|
PING = ["0", "ping"]
|
||||||
ION_CMD = ["1", "ion"]
|
ION_CMD = ["1", "ion"]
|
||||||
TEMP_CMD = ["2", "temp"]
|
TEMP_CMD = ["2", "temp"]
|
||||||
@ -30,7 +30,7 @@ class OpCodes:
|
|||||||
SWITCH_OFF = ["8", "off"]
|
SWITCH_OFF = ["8", "off"]
|
||||||
|
|
||||||
|
|
||||||
class ActionIds(enum.IntEnum):
|
class ActionId(enum.IntEnum):
|
||||||
PING = 7
|
PING = 7
|
||||||
ION_CMD = 4
|
ION_CMD = 4
|
||||||
TEMP_CMD = 3
|
TEMP_CMD = 3
|
||||||
@ -58,16 +58,16 @@ class Info:
|
|||||||
@tmtc_definitions_provider
|
@tmtc_definitions_provider
|
||||||
def add_scex_cmds(defs: TmtcDefinitionWrapper):
|
def add_scex_cmds(defs: TmtcDefinitionWrapper):
|
||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
oce.add(keys=OpCodes.PING, info=Info.PING)
|
oce.add(keys=OpCode.PING, info=Info.PING)
|
||||||
oce.add(keys=OpCodes.ION_CMD, info=Info.ION_CMD)
|
oce.add(keys=OpCode.ION_CMD, info=Info.ION_CMD)
|
||||||
oce.add(keys=OpCodes.TEMP_CMD, info=Info.TEMP_CMD)
|
oce.add(keys=OpCode.TEMP_CMD, info=Info.TEMP_CMD)
|
||||||
oce.add(keys=OpCodes.EXP_STATUS_CMD, info=Info.EXP_STATUS_CMD)
|
oce.add(keys=OpCode.EXP_STATUS_CMD, info=Info.EXP_STATUS_CMD)
|
||||||
oce.add(keys=OpCodes.ONE_CELLS_CMD, info=Info.ONE_CELLS_CMD)
|
oce.add(keys=OpCode.ONE_CELLS_CMD, info=Info.ONE_CELLS_CMD)
|
||||||
|
|
||||||
oce.add(keys=OpCodes.ALL_CELLS_CMD, info=Info.ALL_CELLS_CMD)
|
oce.add(keys=OpCode.ALL_CELLS_CMD, info=Info.ALL_CELLS_CMD)
|
||||||
oce.add(keys=OpCodes.FRAM, info=Info.FRAM)
|
oce.add(keys=OpCode.FRAM, info=Info.FRAM)
|
||||||
oce.add(keys=OpCodes.SWITCH_ON, info=Info.SWITCH_ON)
|
oce.add(keys=OpCode.SWITCH_ON, info=Info.SWITCH_ON)
|
||||||
oce.add(keys=OpCodes.SWITCH_OFF, info=Info.SWITCH_OFF)
|
oce.add(keys=OpCode.SWITCH_OFF, info=Info.SWITCH_OFF)
|
||||||
|
|
||||||
defs.add_service(
|
defs.add_service(
|
||||||
name=CustomServiceList.SCEX.value, info="SCEX Device", op_code_entry=oce
|
name=CustomServiceList.SCEX.value, info="SCEX Device", op_code_entry=oce
|
||||||
@ -78,7 +78,7 @@ def add_scex_cmds(defs: TmtcDefinitionWrapper):
|
|||||||
def pack_scex_cmds(p: ServiceProviderParams):
|
def pack_scex_cmds(p: ServiceProviderParams):
|
||||||
op_code = p.op_code
|
op_code = p.op_code
|
||||||
q = p.queue_helper
|
q = p.queue_helper
|
||||||
if op_code in OpCodes.SWITCH_ON:
|
if op_code in OpCode.SWITCH_ON:
|
||||||
q.add_log_cmd(Info.SWITCH_ON)
|
q.add_log_cmd(Info.SWITCH_ON)
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
PusTelecommand(
|
PusTelecommand(
|
||||||
@ -87,7 +87,7 @@ def pack_scex_cmds(p: ServiceProviderParams):
|
|||||||
app_data=pack_mode_data(SCEX_HANDLER_ID, Modes.ON, 0),
|
app_data=pack_mode_data(SCEX_HANDLER_ID, Modes.ON, 0),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if op_code in OpCodes.SWITCH_OFF:
|
if op_code in OpCode.SWITCH_OFF:
|
||||||
q.add_log_cmd(Info.SWITCH_OFF)
|
q.add_log_cmd(Info.SWITCH_OFF)
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
PusTelecommand(
|
PusTelecommand(
|
||||||
@ -96,30 +96,28 @@ def pack_scex_cmds(p: ServiceProviderParams):
|
|||||||
app_data=pack_mode_data(SCEX_HANDLER_ID, Modes.OFF, 0),
|
app_data=pack_mode_data(SCEX_HANDLER_ID, Modes.OFF, 0),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if op_code in OpCodes.PING:
|
if op_code in OpCode.PING:
|
||||||
q.add_log_cmd(Info.PING)
|
q.add_log_cmd(Info.PING)
|
||||||
app_data = bytes([0])
|
app_data = bytes([0])
|
||||||
q.add_pus_tc(make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionIds.PING, app_data))
|
q.add_pus_tc(make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionId.PING, app_data))
|
||||||
if op_code in OpCodes.ION_CMD:
|
if op_code in OpCode.ION_CMD:
|
||||||
q.add_log_cmd(Info.ION_CMD)
|
q.add_log_cmd(Info.ION_CMD)
|
||||||
app_data = bytes([0])
|
app_data = bytes([0])
|
||||||
q.add_pus_tc(make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionIds.ION_CMD, app_data))
|
q.add_pus_tc(make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionId.ION_CMD, app_data))
|
||||||
if op_code in OpCodes.TEMP_CMD:
|
if op_code in OpCode.TEMP_CMD:
|
||||||
q.add_log_cmd(Info.TEMP_CMD)
|
q.add_log_cmd(Info.TEMP_CMD)
|
||||||
app_data = bytes([0])
|
app_data = bytes([0])
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionId.TEMP_CMD, app_data))
|
||||||
make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionIds.TEMP_CMD, app_data)
|
|
||||||
)
|
|
||||||
|
|
||||||
if op_code in OpCodes.EXP_STATUS_CMD:
|
if op_code in OpCode.EXP_STATUS_CMD:
|
||||||
q.add_log_cmd(Info.EXP_STATUS_CMD)
|
q.add_log_cmd(Info.EXP_STATUS_CMD)
|
||||||
app_data = bytes([0])
|
app_data = bytes([0])
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionIds.EXP_STATUS_CMD, app_data)
|
make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionId.EXP_STATUS_CMD, app_data)
|
||||||
)
|
)
|
||||||
|
|
||||||
# one cell
|
# one cell
|
||||||
if op_code in OpCodes.ONE_CELLS_CMD:
|
if op_code in OpCode.ONE_CELLS_CMD:
|
||||||
q.add_log_cmd(Info.ONE_CELLS_CMD)
|
q.add_log_cmd(Info.ONE_CELLS_CMD)
|
||||||
app_data = bytearray([0])
|
app_data = bytearray([0])
|
||||||
|
|
||||||
@ -164,10 +162,10 @@ def pack_scex_cmds(p: ServiceProviderParams):
|
|||||||
app_data.append(dac_weight3[cn])
|
app_data.append(dac_weight3[cn])
|
||||||
|
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionIds.ONE_CELLS_CMD, app_data)
|
make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionId.ONE_CELLS_CMD, app_data)
|
||||||
)
|
)
|
||||||
|
|
||||||
if op_code in OpCodes.ALL_CELLS_CMD:
|
if op_code in OpCode.ALL_CELLS_CMD:
|
||||||
q.add_log_cmd(Info.ALL_CELLS_CMD)
|
q.add_log_cmd(Info.ALL_CELLS_CMD)
|
||||||
app_data = bytearray([0])
|
app_data = bytearray([0])
|
||||||
|
|
||||||
@ -196,13 +194,13 @@ def pack_scex_cmds(p: ServiceProviderParams):
|
|||||||
app_data.append(dac_weight3[cn])
|
app_data.append(dac_weight3[cn])
|
||||||
|
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionIds.ALL_CELLS_CMD, app_data)
|
make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionId.ALL_CELLS_CMD, app_data)
|
||||||
)
|
)
|
||||||
|
|
||||||
if op_code in OpCodes.FRAM:
|
if op_code in OpCode.FRAM:
|
||||||
q.add_log_cmd(Info.FRAM)
|
q.add_log_cmd(Info.FRAM)
|
||||||
app_data = bytes([0])
|
app_data = bytes([0])
|
||||||
q.add_pus_tc(make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionIds.FRAM, app_data))
|
q.add_pus_tc(make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionId.FRAM, app_data))
|
||||||
|
|
||||||
|
|
||||||
def append_16_bit_val(packet: bytearray, val: int):
|
def append_16_bit_val(packet: bytearray, val: int):
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
@author J. Meier
|
@author J. Meier
|
||||||
@date 14.08.2021
|
@date 14.08.2021
|
||||||
"""
|
"""
|
||||||
|
import enum
|
||||||
import struct
|
import struct
|
||||||
|
|
||||||
from spacepackets.ecss.tc import PusTelecommand
|
from spacepackets.ecss.tc import PusTelecommand
|
||||||
@ -19,7 +20,7 @@ from eive_tmtc.utility.input_helper import InputHelper
|
|||||||
LOGGER = get_console_logger()
|
LOGGER = get_console_logger()
|
||||||
|
|
||||||
|
|
||||||
class StarTrackerActionIds:
|
class StarTrackerActionId(enum.IntEnum):
|
||||||
PING = 0
|
PING = 0
|
||||||
BOOT = 1
|
BOOT = 1
|
||||||
REQ_VERSION = 2
|
REQ_VERSION = 2
|
||||||
@ -183,57 +184,57 @@ def pack_star_tracker_commands(
|
|||||||
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data))
|
||||||
if op_code == "5":
|
if op_code == "5":
|
||||||
q.add_log_cmd("Star tracker: Ping")
|
q.add_log_cmd("Star tracker: Ping")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.PING)
|
data = obyt + struct.pack("!I", StarTrackerActionId.PING)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "6":
|
if op_code == "6":
|
||||||
q.add_log_cmd("Star tracker: Switch to bootloader program")
|
q.add_log_cmd("Star tracker: Switch to bootloader program")
|
||||||
data = obyt + struct.pack(
|
data = obyt + struct.pack(
|
||||||
"!I", StarTrackerActionIds.SWITCH_TO_BOOTLOADER_PROGRAM
|
"!I", StarTrackerActionId.SWITCH_TO_BOOTLOADER_PROGRAM
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "7":
|
if op_code == "7":
|
||||||
q.add_log_cmd("Star tracker: Temperature request")
|
q.add_log_cmd("Star tracker: Temperature request")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_TEMPERATURE)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_TEMPERATURE)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "8":
|
if op_code == "8":
|
||||||
q.add_log_cmd("Star tracker: Request version")
|
q.add_log_cmd("Star tracker: Request version")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_VERSION)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_VERSION)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "9":
|
if op_code == "9":
|
||||||
q.add_log_cmd("Star tracker: Request interface")
|
q.add_log_cmd("Star tracker: Request interface")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_INTERFACE)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_INTERFACE)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "10":
|
if op_code == "10":
|
||||||
q.add_log_cmd("Star tracker: Request power")
|
q.add_log_cmd("Star tracker: Request power")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_POWER)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_POWER)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "11":
|
if op_code == "11":
|
||||||
q.add_log_cmd("Star tracker: Set subscription parameters")
|
q.add_log_cmd("Star tracker: Set subscription parameters")
|
||||||
json_file = get_config_file()
|
json_file = get_config_file()
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.SUBSCRIPTION)
|
+ struct.pack("!I", StarTrackerActionId.SUBSCRIPTION)
|
||||||
+ bytearray(json_file, "utf-8")
|
+ bytearray(json_file, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "12":
|
if op_code == "12":
|
||||||
q.add_log_cmd("Star tracker: Boot")
|
q.add_log_cmd("Star tracker: Boot")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.BOOT)
|
data = obyt + struct.pack("!I", StarTrackerActionId.BOOT)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "13":
|
if op_code == "13":
|
||||||
q.add_log_cmd("Star tracker: Request time")
|
q.add_log_cmd("Star tracker: Request time")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_TIME)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_TIME)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "14":
|
if op_code == "14":
|
||||||
q.add_log_cmd("Star tracker: Request solution")
|
q.add_log_cmd("Star tracker: Request solution")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_SOLUTION)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_SOLUTION)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "15":
|
if op_code == "15":
|
||||||
q.add_log_cmd("Star tracker: Upload image")
|
q.add_log_cmd("Star tracker: Upload image")
|
||||||
image = get_upload_image()
|
image = get_upload_image()
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.UPLOAD_IMAGE)
|
+ struct.pack("!I", StarTrackerActionId.UPLOAD_IMAGE)
|
||||||
+ bytearray(image, "utf-8")
|
+ bytearray(image, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -244,7 +245,7 @@ def pack_star_tracker_commands(
|
|||||||
path = FileDefs.download_path
|
path = FileDefs.download_path
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.DOWNLOAD_IMAGE)
|
+ struct.pack("!I", StarTrackerActionId.DOWNLOAD_IMAGE)
|
||||||
+ bytearray(path, "utf-8")
|
+ bytearray(path, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -253,7 +254,7 @@ def pack_star_tracker_commands(
|
|||||||
json_file = get_config_file()
|
json_file = get_config_file()
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.LIMITS)
|
+ struct.pack("!I", StarTrackerActionId.LIMITS)
|
||||||
+ bytearray(json_file, "utf-8")
|
+ bytearray(json_file, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -262,7 +263,7 @@ def pack_star_tracker_commands(
|
|||||||
json_file = get_config_file()
|
json_file = get_config_file()
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.TRACKING)
|
+ struct.pack("!I", StarTrackerActionId.TRACKING)
|
||||||
+ bytearray(json_file, "utf-8")
|
+ bytearray(json_file, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -271,7 +272,7 @@ def pack_star_tracker_commands(
|
|||||||
json_file = get_config_file()
|
json_file = get_config_file()
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.MOUNTING)
|
+ struct.pack("!I", StarTrackerActionId.MOUNTING)
|
||||||
+ bytearray(json_file, "utf-8")
|
+ bytearray(json_file, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -280,7 +281,7 @@ def pack_star_tracker_commands(
|
|||||||
json_file = get_config_file()
|
json_file = get_config_file()
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.CAMERA)
|
+ struct.pack("!I", StarTrackerActionId.CAMERA)
|
||||||
+ bytearray(json_file, "utf-8")
|
+ bytearray(json_file, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -289,7 +290,7 @@ def pack_star_tracker_commands(
|
|||||||
json_file = get_config_file()
|
json_file = get_config_file()
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.CENTROIDING)
|
+ struct.pack("!I", StarTrackerActionId.CENTROIDING)
|
||||||
+ bytearray(json_file, "utf-8")
|
+ bytearray(json_file, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -298,7 +299,7 @@ def pack_star_tracker_commands(
|
|||||||
json_file = get_config_file()
|
json_file = get_config_file()
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.LISA)
|
+ struct.pack("!I", StarTrackerActionId.LISA)
|
||||||
+ bytearray(json_file, "utf-8")
|
+ bytearray(json_file, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -307,7 +308,7 @@ def pack_star_tracker_commands(
|
|||||||
json_file = get_config_file()
|
json_file = get_config_file()
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.MATCHING)
|
+ struct.pack("!I", StarTrackerActionId.MATCHING)
|
||||||
+ bytearray(json_file, "utf-8")
|
+ bytearray(json_file, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -316,7 +317,7 @@ def pack_star_tracker_commands(
|
|||||||
json_file = get_config_file()
|
json_file = get_config_file()
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.VALIDATION)
|
+ struct.pack("!I", StarTrackerActionId.VALIDATION)
|
||||||
+ bytearray(json_file, "utf-8")
|
+ bytearray(json_file, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -325,7 +326,7 @@ def pack_star_tracker_commands(
|
|||||||
json_file = get_config_file()
|
json_file = get_config_file()
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.ALGO)
|
+ struct.pack("!I", StarTrackerActionId.ALGO)
|
||||||
+ bytearray(json_file, "utf-8")
|
+ bytearray(json_file, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -334,37 +335,37 @@ def pack_star_tracker_commands(
|
|||||||
actionid = int(input("Specify parameter ID (take image - 4): "))
|
actionid = int(input("Specify parameter ID (take image - 4): "))
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.TAKE_IMAGE)
|
+ struct.pack("!I", StarTrackerActionId.TAKE_IMAGE)
|
||||||
+ struct.pack("!B", actionid)
|
+ struct.pack("!B", actionid)
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "28":
|
if op_code == "28":
|
||||||
q.add_log_cmd("Star tracker: Stop str helper")
|
q.add_log_cmd("Star tracker: Stop str helper")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.STOP_STR_HELPER)
|
data = obyt + struct.pack("!I", StarTrackerActionId.STOP_STR_HELPER)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "30":
|
if op_code == "30":
|
||||||
q.add_log_cmd("Star tracker: Set name of download image")
|
q.add_log_cmd("Star tracker: Set name of download image")
|
||||||
filename = input("Specify download image name: ")
|
filename = input("Specify download image name: ")
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.CHANGE_DOWNLOAD_IMAGE)
|
+ struct.pack("!I", StarTrackerActionId.CHANGE_DOWNLOAD_IMAGE)
|
||||||
+ bytearray(filename, "utf-8")
|
+ bytearray(filename, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "31":
|
if op_code == "31":
|
||||||
q.add_log_cmd("Star tracker: Request histogram")
|
q.add_log_cmd("Star tracker: Request histogram")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_HISTOGRAM)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_HISTOGRAM)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "32":
|
if op_code == "32":
|
||||||
q.add_log_cmd("Star tracker: Request contrast")
|
q.add_log_cmd("Star tracker: Request contrast")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_CONTRAST)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_CONTRAST)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "33":
|
if op_code == "33":
|
||||||
q.add_log_cmd("Star tracker: Set json filename")
|
q.add_log_cmd("Star tracker: Set json filename")
|
||||||
json_file = get_config_file()
|
json_file = get_config_file()
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.SET_JSON_FILE_NAME)
|
+ struct.pack("!I", StarTrackerActionId.SET_JSON_FILE_NAME)
|
||||||
+ bytearray(json_file, "utf-8")
|
+ bytearray(json_file, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -377,7 +378,7 @@ def pack_star_tracker_commands(
|
|||||||
filename = input("Specify filename: ")
|
filename = input("Specify filename: ")
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.SET_FLASH_READ_FILENAME)
|
+ struct.pack("!I", StarTrackerActionId.SET_FLASH_READ_FILENAME)
|
||||||
+ bytearray(filename, "utf-8")
|
+ bytearray(filename, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -390,7 +391,7 @@ def pack_star_tracker_commands(
|
|||||||
unix_time = 1640783543
|
unix_time = 1640783543
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.SET_TIME)
|
+ struct.pack("!I", StarTrackerActionId.SET_TIME)
|
||||||
+ struct.pack("!Q", unix_time)
|
+ struct.pack("!Q", unix_time)
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -399,7 +400,7 @@ def pack_star_tracker_commands(
|
|||||||
id = 0
|
id = 0
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.DOWNLOAD_CENTROID)
|
+ struct.pack("!I", StarTrackerActionId.DOWNLOAD_CENTROID)
|
||||||
+ struct.pack("!B", id)
|
+ struct.pack("!B", id)
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -408,7 +409,7 @@ def pack_star_tracker_commands(
|
|||||||
id = 0
|
id = 0
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.DOWNLOAD_MATCHED_STAR)
|
+ struct.pack("!I", StarTrackerActionId.DOWNLOAD_MATCHED_STAR)
|
||||||
+ struct.pack("!B", id)
|
+ struct.pack("!B", id)
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -417,7 +418,7 @@ def pack_star_tracker_commands(
|
|||||||
id = 0
|
id = 0
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.DOWNLOAD_DBIMAGE)
|
+ struct.pack("!I", StarTrackerActionId.DOWNLOAD_DBIMAGE)
|
||||||
+ struct.pack("!B", id)
|
+ struct.pack("!B", id)
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -427,7 +428,7 @@ def pack_star_tracker_commands(
|
|||||||
type = 1 # 0 - normal, 1 - fast
|
type = 1 # 0 - normal, 1 - fast
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.DOWNLOAD_BLOBPIXEL)
|
+ struct.pack("!I", StarTrackerActionId.DOWNLOAD_BLOBPIXEL)
|
||||||
+ struct.pack("!B", id)
|
+ struct.pack("!B", id)
|
||||||
+ struct.pack("!B", type)
|
+ struct.pack("!B", type)
|
||||||
)
|
)
|
||||||
@ -438,7 +439,7 @@ def pack_star_tracker_commands(
|
|||||||
length = int(input("Size to download: "))
|
length = int(input("Size to download: "))
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.DOWNLOAD_FPGA_IMAGE)
|
+ struct.pack("!I", StarTrackerActionId.DOWNLOAD_FPGA_IMAGE)
|
||||||
+ struct.pack("!I", position)
|
+ struct.pack("!I", position)
|
||||||
+ struct.pack("!I", length)
|
+ struct.pack("!I", length)
|
||||||
+ bytearray(FileDefs.downloadFpgaImagePath, "utf-8")
|
+ bytearray(FileDefs.downloadFpgaImagePath, "utf-8")
|
||||||
@ -448,7 +449,7 @@ def pack_star_tracker_commands(
|
|||||||
q.add_log_cmd("Star tracker: Change donwload FPGA image file name")
|
q.add_log_cmd("Star tracker: Change donwload FPGA image file name")
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.CHANGE_FPGA_DOWNLOAD_FILE)
|
+ struct.pack("!I", StarTrackerActionId.CHANGE_FPGA_DOWNLOAD_FILE)
|
||||||
+ bytearray(FileDefs.downloadFpgaImageName, "utf-8")
|
+ bytearray(FileDefs.downloadFpgaImageName, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -456,7 +457,7 @@ def pack_star_tracker_commands(
|
|||||||
q.add_log_cmd("Star tracker: Upload FPGA image")
|
q.add_log_cmd("Star tracker: Upload FPGA image")
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.UPLOAD_FPGA_IMAGE)
|
+ struct.pack("!I", StarTrackerActionId.UPLOAD_FPGA_IMAGE)
|
||||||
+ bytearray(FileDefs.uploadFpgaImageName, "utf-8")
|
+ bytearray(FileDefs.uploadFpgaImageName, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -465,28 +466,28 @@ def pack_star_tracker_commands(
|
|||||||
id = 3
|
id = 3
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.FPGA_ACTION)
|
+ struct.pack("!I", StarTrackerActionId.FPGA_ACTION)
|
||||||
+ struct.pack("!B", id)
|
+ struct.pack("!B", id)
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "48":
|
if op_code == "48":
|
||||||
q.add_log_cmd("Star tracker: Unlock")
|
q.add_log_cmd("Star tracker: Unlock")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.UNLOCK)
|
data = obyt + struct.pack("!I", StarTrackerActionId.UNLOCK)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "49":
|
if op_code == "49":
|
||||||
q.add_log_cmd("Star tracker: Request camera parameters")
|
q.add_log_cmd("Star tracker: Request camera parameters")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_CAMERA_PARAMS)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_CAMERA_PARAMS)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "50":
|
if op_code == "50":
|
||||||
q.add_log_cmd("Star tracker: Request limits")
|
q.add_log_cmd("Star tracker: Request limits")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_LIMITS)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_LIMITS)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "51":
|
if op_code == "51":
|
||||||
q.add_log_cmd("Star tracker: Set image processor parameters")
|
q.add_log_cmd("Star tracker: Set image processor parameters")
|
||||||
json_file = get_config_file()
|
json_file = get_config_file()
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.IMAGE_PROCESSOR)
|
+ struct.pack("!I", StarTrackerActionId.IMAGE_PROCESSOR)
|
||||||
+ bytearray(json_file, "utf-8")
|
+ bytearray(json_file, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -494,7 +495,7 @@ def pack_star_tracker_commands(
|
|||||||
q.add_log_cmd("Star tracker: EGSE load ground config camera parameters")
|
q.add_log_cmd("Star tracker: EGSE load ground config camera parameters")
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.CAMERA)
|
+ struct.pack("!I", StarTrackerActionId.CAMERA)
|
||||||
+ bytearray(FileDefs.egse_ground_config, "utf-8")
|
+ bytearray(FileDefs.egse_ground_config, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -502,64 +503,64 @@ def pack_star_tracker_commands(
|
|||||||
q.add_log_cmd("Star tracker: EGSE load flight config camera parameters")
|
q.add_log_cmd("Star tracker: EGSE load flight config camera parameters")
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.CAMERA)
|
+ struct.pack("!I", StarTrackerActionId.CAMERA)
|
||||||
+ bytearray(FileDefs.egse_flight_config, "utf-8")
|
+ bytearray(FileDefs.egse_flight_config, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "54":
|
if op_code == "54":
|
||||||
q.add_log_cmd("Star tracker: Request log level parameters")
|
q.add_log_cmd("Star tracker: Request log level parameters")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_LOG_LEVEL)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_LOG_LEVEL)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "55":
|
if op_code == "55":
|
||||||
q.add_log_cmd("Star tracker: Request mounting parameters")
|
q.add_log_cmd("Star tracker: Request mounting parameters")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_MOUNTING)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_MOUNTING)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "56":
|
if op_code == "56":
|
||||||
q.add_log_cmd("Star tracker: Request image processor parameters")
|
q.add_log_cmd("Star tracker: Request image processor parameters")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_IMAGE_PROCESSOR)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_IMAGE_PROCESSOR)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "57":
|
if op_code == "57":
|
||||||
q.add_log_cmd("Star tracker: Request centroiding parameters")
|
q.add_log_cmd("Star tracker: Request centroiding parameters")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_CENTROIDING)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_CENTROIDING)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "58":
|
if op_code == "58":
|
||||||
q.add_log_cmd("Star tracker: Request lisa parameters")
|
q.add_log_cmd("Star tracker: Request lisa parameters")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_LISA)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_LISA)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "59":
|
if op_code == "59":
|
||||||
q.add_log_cmd("Star tracker: Request matching parameters")
|
q.add_log_cmd("Star tracker: Request matching parameters")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_MATCHING)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_MATCHING)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "60":
|
if op_code == "60":
|
||||||
q.add_log_cmd("Star tracker: Request tracking parameters")
|
q.add_log_cmd("Star tracker: Request tracking parameters")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_TRACKING)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_TRACKING)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "61":
|
if op_code == "61":
|
||||||
q.add_log_cmd("Star tracker: Request validation parameters")
|
q.add_log_cmd("Star tracker: Request validation parameters")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_VALIDATION)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_VALIDATION)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "62":
|
if op_code == "62":
|
||||||
q.add_log_cmd("Star tracker: Request algo parameters")
|
q.add_log_cmd("Star tracker: Request algo parameters")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_ALGO)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_ALGO)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "63":
|
if op_code == "63":
|
||||||
q.add_log_cmd("Star tracker: Request subscription parameters")
|
q.add_log_cmd("Star tracker: Request subscription parameters")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_SUBSCRIPTION)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_SUBSCRIPTION)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "64":
|
if op_code == "64":
|
||||||
q.add_log_cmd("Star tracker: Request log subscription parameters")
|
q.add_log_cmd("Star tracker: Request log subscription parameters")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_LOG_SUBSCRIPTION)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_LOG_SUBSCRIPTION)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "65":
|
if op_code == "65":
|
||||||
q.add_log_cmd("Star tracker: Request debug camera parameters")
|
q.add_log_cmd("Star tracker: Request debug camera parameters")
|
||||||
data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_DEBUG_CAMERA)
|
data = obyt + struct.pack("!I", StarTrackerActionId.REQ_DEBUG_CAMERA)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "66":
|
if op_code == "66":
|
||||||
q.add_log_cmd("Star tracker: Set log level parameters")
|
q.add_log_cmd("Star tracker: Set log level parameters")
|
||||||
json_file = get_config_file()
|
json_file = get_config_file()
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.LOGLEVEL)
|
+ struct.pack("!I", StarTrackerActionId.LOGLEVEL)
|
||||||
+ bytearray(json_file, "utf-8")
|
+ bytearray(json_file, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -569,7 +570,7 @@ def pack_star_tracker_commands(
|
|||||||
json_file = get_config_file()
|
json_file = get_config_file()
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.LOG_SUBSCRIPTION)
|
+ struct.pack("!I", StarTrackerActionId.LOG_SUBSCRIPTION)
|
||||||
+ bytearray(json_file, "utf-8")
|
+ bytearray(json_file, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -578,7 +579,7 @@ def pack_star_tracker_commands(
|
|||||||
json_file = get_config_file()
|
json_file = get_config_file()
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.DEBUG_CAMERA)
|
+ struct.pack("!I", StarTrackerActionId.DEBUG_CAMERA)
|
||||||
+ bytearray(json_file, "utf-8")
|
+ bytearray(json_file, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
@ -587,20 +588,20 @@ def pack_star_tracker_commands(
|
|||||||
firmware = get_firmware()
|
firmware = get_firmware()
|
||||||
data = (
|
data = (
|
||||||
obyt
|
obyt
|
||||||
+ struct.pack("!I", StarTrackerActionIds.FIRMWARE_UPDATE)
|
+ struct.pack("!I", StarTrackerActionId.FIRMWARE_UPDATE)
|
||||||
+ bytearray(firmware, "utf-8")
|
+ bytearray(firmware, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "70":
|
if op_code == "70":
|
||||||
q.add_log_cmd("Star tracker: Disable timestamp generation")
|
q.add_log_cmd("Star tracker: Disable timestamp generation")
|
||||||
command = obyt + struct.pack(
|
command = obyt + struct.pack(
|
||||||
"!I", StarTrackerActionIds.DISBALE_TIMESTAMP_GENERATION
|
"!I", StarTrackerActionId.DISBALE_TIMESTAMP_GENERATION
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "71":
|
if op_code == "71":
|
||||||
q.add_log_cmd("Star tracker: Enable timestamp generation")
|
q.add_log_cmd("Star tracker: Enable timestamp generation")
|
||||||
command = obyt + struct.pack(
|
command = obyt + struct.pack(
|
||||||
"!I", StarTrackerActionIds.ENABLE_TIMESTAMP_GENERATION
|
"!I", StarTrackerActionId.ENABLE_TIMESTAMP_GENERATION
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
|
|
||||||
@ -613,7 +614,7 @@ def pack_read_command(object_id: bytes) -> bytearray:
|
|||||||
path = FileDefs.download_path
|
path = FileDefs.download_path
|
||||||
data = (
|
data = (
|
||||||
object_id
|
object_id
|
||||||
+ struct.pack("!I", StarTrackerActionIds.FLASH_READ)
|
+ struct.pack("!I", StarTrackerActionId.FLASH_READ)
|
||||||
+ struct.pack("!B", start_region)
|
+ struct.pack("!B", start_region)
|
||||||
+ struct.pack("!I", size)
|
+ struct.pack("!I", size)
|
||||||
+ bytearray(path, "utf-8")
|
+ bytearray(path, "utf-8")
|
||||||
@ -627,7 +628,7 @@ def pack_checksum_command(object_id: bytes) -> bytearray:
|
|||||||
size = PartitionSize.STAR_TRACKER_FIRMWARE
|
size = PartitionSize.STAR_TRACKER_FIRMWARE
|
||||||
data = (
|
data = (
|
||||||
object_id
|
object_id
|
||||||
+ struct.pack("!I", StarTrackerActionIds.CHECKSUM)
|
+ struct.pack("!I", StarTrackerActionId.CHECKSUM)
|
||||||
+ struct.pack("!B", start_region)
|
+ struct.pack("!B", start_region)
|
||||||
+ struct.pack("!I", address)
|
+ struct.pack("!I", address)
|
||||||
+ struct.pack("!I", size)
|
+ struct.pack("!I", size)
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
class SetIds:
|
class SetId:
|
||||||
HK = 3
|
HK = 3
|
||||||
|
@ -5,6 +5,8 @@
|
|||||||
@author J. Meier
|
@author J. Meier
|
||||||
@date 13.12.2020
|
@date 13.12.2020
|
||||||
"""
|
"""
|
||||||
|
import enum
|
||||||
|
|
||||||
from eive_tmtc.config.definitions import CustomServiceList
|
from eive_tmtc.config.definitions import CustomServiceList
|
||||||
from tmtccmd.config.tmtc import (
|
from tmtccmd.config.tmtc import (
|
||||||
tmtc_definitions_provider,
|
tmtc_definitions_provider,
|
||||||
@ -20,12 +22,12 @@ import struct
|
|||||||
from tmtccmd.util import ObjectIdU32
|
from tmtccmd.util import ObjectIdU32
|
||||||
|
|
||||||
|
|
||||||
class SetIds:
|
class SetId:
|
||||||
RX_REGISTERS_DATASET = 1
|
RX_REGISTERS_DATASET = 1
|
||||||
TX_REGISTERS_DATASET = 2
|
TX_REGISTERS_DATASET = 2
|
||||||
|
|
||||||
|
|
||||||
class OpCodes:
|
class OpCode:
|
||||||
OFF = "off"
|
OFF = "off"
|
||||||
ON = "on"
|
ON = "on"
|
||||||
NORMAL = "nml"
|
NORMAL = "nml"
|
||||||
@ -46,7 +48,7 @@ class Info:
|
|||||||
SET_CW = "Set TX carrier wave"
|
SET_CW = "Set TX carrier wave"
|
||||||
|
|
||||||
|
|
||||||
class CommandIds:
|
class CommandId(enum.IntEnum):
|
||||||
READ_RX_STATUS_REGISTERS = 2
|
READ_RX_STATUS_REGISTERS = 2
|
||||||
SET_TX_MODE_STANDBY = 3
|
SET_TX_MODE_STANDBY = 3
|
||||||
SET_TX_MODE_MODULATION = 4
|
SET_TX_MODE_MODULATION = 4
|
||||||
@ -67,16 +69,16 @@ class CommandIds:
|
|||||||
@tmtc_definitions_provider
|
@tmtc_definitions_provider
|
||||||
def add_syrlinks_cmds(defs: TmtcDefinitionWrapper):
|
def add_syrlinks_cmds(defs: TmtcDefinitionWrapper):
|
||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
oce.add(OpCodes.OFF, "Syrlinks Handler: Set mode off")
|
oce.add(OpCode.OFF, "Syrlinks Handler: Set mode off")
|
||||||
oce.add(OpCodes.ON, "Syrlinks Handler: Set mode on")
|
oce.add(OpCode.ON, "Syrlinks Handler: Set mode on")
|
||||||
oce.add(OpCodes.NORMAL, "Syrlinks Handler: Set mode normal")
|
oce.add(OpCode.NORMAL, "Syrlinks Handler: Set mode normal")
|
||||||
oce.add(OpCodes.STANDBY, "Syrlinks Handler: Set TX standby")
|
oce.add(OpCode.STANDBY, "Syrlinks Handler: Set TX standby")
|
||||||
oce.add(OpCodes.MODULATION, "Syrlinks Handler: Set TX modulation")
|
oce.add(OpCode.MODULATION, "Syrlinks Handler: Set TX modulation")
|
||||||
oce.add(OpCodes.HK_RX_REGS, Info.HK_RX_REGS)
|
oce.add(OpCode.HK_RX_REGS, Info.HK_RX_REGS)
|
||||||
oce.add(OpCodes.HK_TX_REGS, Info.HK_TX_REGS)
|
oce.add(OpCode.HK_TX_REGS, Info.HK_TX_REGS)
|
||||||
oce.add(OpCodes.SET_CW, Info.SET_CW)
|
oce.add(OpCode.SET_CW, Info.SET_CW)
|
||||||
oce.add(OpCodes.TX_STATUS, Info.TX_STATUS)
|
oce.add(OpCode.TX_STATUS, Info.TX_STATUS)
|
||||||
oce.add(OpCodes.RX_STATUS, Info.RX_STATUS)
|
oce.add(OpCode.RX_STATUS, Info.RX_STATUS)
|
||||||
oce.add("7", "Syrlinks Handler: Read TX waveform")
|
oce.add("7", "Syrlinks Handler: Read TX waveform")
|
||||||
oce.add("8", "Syrlinks Handler: Read TX AGC value high byte")
|
oce.add("8", "Syrlinks Handler: Read TX AGC value high byte")
|
||||||
oce.add("9", "Syrlinks Handler: Read TX AGC value low byte")
|
oce.add("9", "Syrlinks Handler: Read TX AGC value low byte")
|
||||||
@ -96,83 +98,83 @@ def pack_syrlinks_command(
|
|||||||
obyt = object_id.as_bytes
|
obyt = object_id.as_bytes
|
||||||
prefix = "Syrlinks"
|
prefix = "Syrlinks"
|
||||||
q.add_log_cmd(f"Testing Syrlinks with object id: {object_id.as_hex_string}")
|
q.add_log_cmd(f"Testing Syrlinks with object id: {object_id.as_hex_string}")
|
||||||
if op_code == OpCodes.OFF:
|
if op_code == OpCode.OFF:
|
||||||
q.add_log_cmd(f"{prefix}: Set mode off")
|
q.add_log_cmd(f"{prefix}: Set mode off")
|
||||||
data = pack_mode_data(obyt, Modes.OFF, 0)
|
data = pack_mode_data(obyt, Modes.OFF, 0)
|
||||||
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data))
|
||||||
if op_code == OpCodes.ON:
|
if op_code == OpCode.ON:
|
||||||
q.add_log_cmd(f"{prefix}: Set mode on")
|
q.add_log_cmd(f"{prefix}: Set mode on")
|
||||||
data = pack_mode_data(obyt, Modes.ON, 0)
|
data = pack_mode_data(obyt, Modes.ON, 0)
|
||||||
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data))
|
||||||
if op_code == OpCodes.NORMAL:
|
if op_code == OpCode.NORMAL:
|
||||||
q.add_log_cmd(f"{prefix}: Mode Normal")
|
q.add_log_cmd(f"{prefix}: Mode Normal")
|
||||||
data = pack_mode_data(obyt, Modes.NORMAL, 0)
|
data = pack_mode_data(obyt, Modes.NORMAL, 0)
|
||||||
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data))
|
||||||
if op_code == OpCodes.STANDBY:
|
if op_code == OpCode.STANDBY:
|
||||||
q.add_log_cmd(f"{prefix}: Set TX mode standby")
|
q.add_log_cmd(f"{prefix}: Set TX mode standby")
|
||||||
data = obyt + struct.pack("!I", CommandIds.SET_TX_MODE_STANDBY)
|
data = obyt + struct.pack("!I", CommandId.SET_TX_MODE_STANDBY)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == OpCodes.MODULATION:
|
if op_code == OpCode.MODULATION:
|
||||||
q.add_log_cmd(f"{prefix}: Set TX mode modulation")
|
q.add_log_cmd(f"{prefix}: Set TX mode modulation")
|
||||||
data = obyt + struct.pack("!I", CommandIds.SET_TX_MODE_MODULATION)
|
data = obyt + struct.pack("!I", CommandId.SET_TX_MODE_MODULATION)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code in OpCodes.SET_CW:
|
if op_code in OpCode.SET_CW:
|
||||||
q.add_log_cmd(f"{prefix}: {Info.SET_CW}")
|
q.add_log_cmd(f"{prefix}: {Info.SET_CW}")
|
||||||
data = obyt + struct.pack("!I", CommandIds.SET_TX_MODE_CW)
|
data = obyt + struct.pack("!I", CommandId.SET_TX_MODE_CW)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code in OpCodes.HK_RX_REGS:
|
if op_code in OpCode.HK_RX_REGS:
|
||||||
q.add_log_cmd(f"{prefix}: {Info.HK_RX_REGS}")
|
q.add_log_cmd(f"{prefix}: {Info.HK_RX_REGS}")
|
||||||
sid = make_sid(obyt, SetIds.RX_REGISTERS_DATASET)
|
sid = make_sid(obyt, SetId.RX_REGISTERS_DATASET)
|
||||||
q.add_pus_tc(generate_one_hk_command(sid))
|
q.add_pus_tc(generate_one_hk_command(sid))
|
||||||
if op_code in OpCodes.HK_TX_REGS:
|
if op_code in OpCode.HK_TX_REGS:
|
||||||
q.add_log_cmd(f"{prefix}: {Info.HK_TX_REGS}")
|
q.add_log_cmd(f"{prefix}: {Info.HK_TX_REGS}")
|
||||||
sid = make_sid(obyt, SetIds.TX_REGISTERS_DATASET)
|
sid = make_sid(obyt, SetId.TX_REGISTERS_DATASET)
|
||||||
q.add_pus_tc(generate_one_hk_command(sid))
|
q.add_pus_tc(generate_one_hk_command(sid))
|
||||||
if op_code in OpCodes.TX_STATUS:
|
if op_code in OpCode.TX_STATUS:
|
||||||
q.add_log_cmd(f"{prefix}: {Info.TX_STATUS}")
|
q.add_log_cmd(f"{prefix}: {Info.TX_STATUS}")
|
||||||
command = obyt + struct.pack("!I", CommandIds.READ_TX_STATUS)
|
command = obyt + struct.pack("!I", CommandId.READ_TX_STATUS)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "9":
|
if op_code == "9":
|
||||||
q.add_log_cmd("Syrlinks: Read TX waveform")
|
q.add_log_cmd("Syrlinks: Read TX waveform")
|
||||||
command = obyt + struct.pack("!I", CommandIds.READ_TX_WAVEFORM)
|
command = obyt + struct.pack("!I", CommandId.READ_TX_WAVEFORM)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "10":
|
if op_code == "10":
|
||||||
q.add_log_cmd("Syrlinks: Read TX AGC value high byte")
|
q.add_log_cmd("Syrlinks: Read TX AGC value high byte")
|
||||||
command = obyt + struct.pack("!I", CommandIds.READ_TX_AGC_VALUE_HIGH_BYTE)
|
command = obyt + struct.pack("!I", CommandId.READ_TX_AGC_VALUE_HIGH_BYTE)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "11":
|
if op_code == "11":
|
||||||
q.add_log_cmd("Syrlinks: Read TX AGC value low byte")
|
q.add_log_cmd("Syrlinks: Read TX AGC value low byte")
|
||||||
command = obyt + struct.pack("!I", CommandIds.READ_TX_AGC_VALUE_LOW_BYTE)
|
command = obyt + struct.pack("!I", CommandId.READ_TX_AGC_VALUE_LOW_BYTE)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "12":
|
if op_code == "12":
|
||||||
q.add_log_cmd("Syrlinks: Write LCL config")
|
q.add_log_cmd("Syrlinks: Write LCL config")
|
||||||
command = obyt + struct.pack("!I", CommandIds.WRITE_LCL_CONFIG)
|
command = obyt + struct.pack("!I", CommandId.WRITE_LCL_CONFIG)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "13":
|
if op_code == "13":
|
||||||
q.add_log_cmd("Syrlinks: Read RX status registers")
|
q.add_log_cmd("Syrlinks: Read RX status registers")
|
||||||
command = obyt + struct.pack("!I", CommandIds.READ_RX_STATUS_REGISTERS)
|
command = obyt + struct.pack("!I", CommandId.READ_RX_STATUS_REGISTERS)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "14":
|
if op_code == "14":
|
||||||
q.add_log_cmd("Syrlinks: Read LCL config register")
|
q.add_log_cmd("Syrlinks: Read LCL config register")
|
||||||
command = obyt + struct.pack("!I", CommandIds.READ_LCL_CONFIG_REGISTER)
|
command = obyt + struct.pack("!I", CommandId.READ_LCL_CONFIG_REGISTER)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "15":
|
if op_code == "15":
|
||||||
q.add_log_cmd("Syrlinks: Set waveform OQPSK")
|
q.add_log_cmd("Syrlinks: Set waveform OQPSK")
|
||||||
command = obyt + struct.pack("!I", CommandIds.SET_WAVEFORM_OQPSK)
|
command = obyt + struct.pack("!I", CommandId.SET_WAVEFORM_OQPSK)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "16":
|
if op_code == "16":
|
||||||
q.add_log_cmd("Syrlinks: Set waveform BPSK")
|
q.add_log_cmd("Syrlinks: Set waveform BPSK")
|
||||||
command = obyt + struct.pack("!I", CommandIds.SET_WAVEFORM_BPSK)
|
command = obyt + struct.pack("!I", CommandId.SET_WAVEFORM_BPSK)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "17":
|
if op_code == "17":
|
||||||
q.add_log_cmd("Syrlinks: Set second config")
|
q.add_log_cmd("Syrlinks: Set second config")
|
||||||
command = obyt + struct.pack("!I", CommandIds.SET_SECOND_CONFIG)
|
command = obyt + struct.pack("!I", CommandId.SET_SECOND_CONFIG)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "18":
|
if op_code == "18":
|
||||||
q.add_log_cmd("Syrlinks: Enable debug printout")
|
q.add_log_cmd("Syrlinks: Enable debug printout")
|
||||||
command = obyt + struct.pack("!I", CommandIds.ENABLE_DEBUG)
|
command = obyt + struct.pack("!I", CommandId.ENABLE_DEBUG)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "19":
|
if op_code == "19":
|
||||||
q.add_log_cmd("Syrlinks: Disable debug printout")
|
q.add_log_cmd("Syrlinks: Disable debug printout")
|
||||||
command = obyt + struct.pack("!I", CommandIds.DISABLE_DEBUG)
|
command = obyt + struct.pack("!I", CommandId.DISABLE_DEBUG)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
|
@ -28,7 +28,7 @@ class Tmp1075TestProcedure:
|
|||||||
set_mode_on = False # If mode is MODE_ON, temperature will only be read on command
|
set_mode_on = False # If mode is MODE_ON, temperature will only be read on command
|
||||||
|
|
||||||
|
|
||||||
class Tmp1075ActionIds:
|
class Tmp1075ActionId:
|
||||||
get_temp = bytearray([0x0, 0x0, 0x0, 0x01])
|
get_temp = bytearray([0x0, 0x0, 0x0, 0x01])
|
||||||
start_adc_conversion = bytearray([0x0, 0x0, 0x0, 0x02])
|
start_adc_conversion = bytearray([0x0, 0x0, 0x0, 0x02])
|
||||||
|
|
||||||
@ -42,11 +42,11 @@ def pack_tmp1075_test_into(
|
|||||||
obyt = object_id.as_bytes
|
obyt = object_id.as_bytes
|
||||||
if Tmp1075TestProcedure.all or Tmp1075TestProcedure.start_adc_conversion:
|
if Tmp1075TestProcedure.all or Tmp1075TestProcedure.start_adc_conversion:
|
||||||
q.add_log_cmd("TMP1075: Starting new temperature conversion")
|
q.add_log_cmd("TMP1075: Starting new temperature conversion")
|
||||||
command = obyt + Tmp1075ActionIds.start_adc_conversion
|
command = obyt + Tmp1075ActionId.start_adc_conversion
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if Tmp1075TestProcedure.all or Tmp1075TestProcedure.get_temp:
|
if Tmp1075TestProcedure.all or Tmp1075TestProcedure.get_temp:
|
||||||
q.add_log_cmd("TMP1075: Read temperature")
|
q.add_log_cmd("TMP1075: Read temperature")
|
||||||
command = obyt + Tmp1075ActionIds.get_temp
|
command = obyt + Tmp1075ActionId.get_temp
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
|
|
||||||
if Tmp1075TestProcedure.set_mode_normal:
|
if Tmp1075TestProcedure.set_mode_normal:
|
||||||
|
@ -8,7 +8,7 @@ from eive_tmtc.tmtc.common import pack_mode_cmd_with_info
|
|||||||
import eive_tmtc.config.object_ids as obj_ids
|
import eive_tmtc.config.object_ids as obj_ids
|
||||||
|
|
||||||
|
|
||||||
class OpCodes:
|
class OpCode:
|
||||||
THERMAL_CONTROLLER = [obj_ids.THERMAL_CONTROLLER_ID.hex(), "ctrl-th"]
|
THERMAL_CONTROLLER = [obj_ids.THERMAL_CONTROLLER_ID.hex(), "ctrl-th"]
|
||||||
CORE_CONTROLLER = [obj_ids.CORE_CONTROLLER_ID.hex(), "ctrl-core"]
|
CORE_CONTROLLER = [obj_ids.CORE_CONTROLLER_ID.hex(), "ctrl-core"]
|
||||||
|
|
||||||
@ -89,7 +89,7 @@ def get_object_from_op_code(op_code: str):
|
|||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if op_code in OpCodes.THERMAL_CONTROLLER:
|
if op_code in OpCode.THERMAL_CONTROLLER:
|
||||||
return obj_ids.THERMAL_CONTROLLER_ID
|
return obj_ids.THERMAL_CONTROLLER_ID
|
||||||
if op_code in OpCodes.CORE_CONTROLLER:
|
if op_code in OpCode.CORE_CONTROLLER:
|
||||||
return obj_ids.CORE_CONTROLLER_ID
|
return obj_ids.CORE_CONTROLLER_ID
|
||||||
|
@ -19,22 +19,22 @@ from tmtccmd.tc.pus_11_tc_sched import (
|
|||||||
from tmtccmd.tc.pus_3_fsfw_hk import *
|
from tmtccmd.tc.pus_3_fsfw_hk import *
|
||||||
|
|
||||||
import eive_tmtc.config.object_ids as oids
|
import eive_tmtc.config.object_ids as oids
|
||||||
from eive_tmtc.pus_tc.system.tcs import OpCodes as TcsOpCodes
|
from eive_tmtc.pus_tc.system.tcs import OpCode as TcsOpCodes
|
||||||
from eive_tmtc.pus_tc.devs.bpx_batt import BpxSetIds
|
from eive_tmtc.pus_tc.devs.bpx_batt import BpxSetId
|
||||||
from eive_tmtc.tmtc.core import SetIds as CoreSetIds
|
from eive_tmtc.tmtc.core import SetIds as CoreSetIds
|
||||||
from eive_tmtc.tmtc.power.common_power import SetId as GsSetIds
|
from eive_tmtc.tmtc.power.common_power import SetId as GsSetIds
|
||||||
from eive_tmtc.pus_tc.devs.rad_sensor import SetIds as RadSetIds
|
from eive_tmtc.pus_tc.devs.rad_sensor import SetId as RadSetIds
|
||||||
from eive_tmtc.pus_tc.devs.mgms import MgmLis3SetIds as MgmLis3SetIds_0_2
|
from eive_tmtc.pus_tc.devs.mgms import MgmLis3SetId as MgmLis3SetIds_0_2
|
||||||
from eive_tmtc.pus_tc.devs.mgms import MgmRm3100SetIds as MgmRm3100SetIds_1_3
|
from eive_tmtc.pus_tc.devs.mgms import MgmRm3100SetId as MgmRm3100SetIds_1_3
|
||||||
from eive_tmtc.pus_tc.devs.gyros import AdisGyroSetIds as AdisGyroSetIds_0_2
|
from eive_tmtc.pus_tc.devs.gyros import AdisGyroSetId as AdisGyroSetIds_0_2
|
||||||
from eive_tmtc.pus_tc.devs.gyros import L3gGyroSetIds as L3gGyroSetIds_1_3
|
from eive_tmtc.pus_tc.devs.gyros import L3gGyroSetId as L3gGyroSetIds_1_3
|
||||||
from eive_tmtc.pus_tc.devs.syrlinks_hk_handler import SetIds as SyrlinksSetIds
|
from eive_tmtc.pus_tc.devs.syrlinks_hk_handler import SetId as SyrlinksSetIds
|
||||||
from eive_tmtc.pus_tc.devs.gps import SetIds as GpsSetIds
|
from eive_tmtc.pus_tc.devs.gps import SetId as GpsSetIds
|
||||||
from eive_tmtc.tmtc.acs.imtq import ImtqSetIds
|
from eive_tmtc.tmtc.acs.imtq import ImtqSetId
|
||||||
from eive_tmtc.pus_tc.devs.sus import SetIds
|
from eive_tmtc.pus_tc.devs.sus import SetId
|
||||||
from eive_tmtc.pus_tc.devs.star_tracker import SetIds as StrSetIds
|
from eive_tmtc.pus_tc.devs.star_tracker import SetIds as StrSetIds
|
||||||
from eive_tmtc.tmtc.acs.reaction_wheels import (
|
from eive_tmtc.tmtc.acs.reaction_wheels import (
|
||||||
RwSetIds,
|
RwSetId,
|
||||||
rw_speed_up_cmd_consec,
|
rw_speed_up_cmd_consec,
|
||||||
rw_speed_down_cmd_consec,
|
rw_speed_down_cmd_consec,
|
||||||
)
|
)
|
||||||
@ -49,7 +49,7 @@ from eive_tmtc.pus_tc.devs.star_tracker import pack_star_tracker_commands
|
|||||||
from eive_tmtc.tmtc.acs.reaction_wheels import pack_rw_ass_cmds, pack_set_speed_command
|
from eive_tmtc.tmtc.acs.reaction_wheels import pack_rw_ass_cmds, pack_set_speed_command
|
||||||
|
|
||||||
|
|
||||||
class OpCodes:
|
class OpCode:
|
||||||
"""FT: Functional Test"""
|
"""FT: Functional Test"""
|
||||||
|
|
||||||
TV_SETUP_TCS_FT_ON = ["s", "tcs-ft-on"]
|
TV_SETUP_TCS_FT_ON = ["s", "tcs-ft-on"]
|
||||||
@ -93,34 +93,34 @@ KAI = KeyAndInfo
|
|||||||
|
|
||||||
PROC_INFO_DICT = {
|
PROC_INFO_DICT = {
|
||||||
KAI.TV_SETUP_TCS_FT_ON[0]: [
|
KAI.TV_SETUP_TCS_FT_ON[0]: [
|
||||||
OpCodes.TV_SETUP_TCS_FT_ON,
|
OpCode.TV_SETUP_TCS_FT_ON,
|
||||||
KAI.TV_SETUP_TCS_FT_ON[1],
|
KAI.TV_SETUP_TCS_FT_ON[1],
|
||||||
120.0,
|
120.0,
|
||||||
10.0,
|
10.0,
|
||||||
],
|
],
|
||||||
KAI.TV_TEARDOWN_TCS_FT_OFF[0]: [
|
KAI.TV_TEARDOWN_TCS_FT_OFF[0]: [
|
||||||
OpCodes.TV_TEARDOWN_TCS_FT_OFF,
|
OpCode.TV_TEARDOWN_TCS_FT_OFF,
|
||||||
KAI.TV_TEARDOWN_TCS_FT_OFF[1],
|
KAI.TV_TEARDOWN_TCS_FT_OFF[1],
|
||||||
120.0,
|
120.0,
|
||||||
10.0,
|
10.0,
|
||||||
],
|
],
|
||||||
KAI.BAT_FT[0]: [OpCodes.BAT_FT, KAI.BAT_FT[1], 120.0, 10.0],
|
KAI.BAT_FT[0]: [OpCode.BAT_FT, KAI.BAT_FT[1], 120.0, 10.0],
|
||||||
KAI.CORE_FT[0]: [OpCodes.CORE_FT, KAI.CORE_FT[1], 120.0, 10.0],
|
KAI.CORE_FT[0]: [OpCode.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]: [OpCode.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]: [OpCode.RAD_SEN_FT, KAI.RAD_SEN_FT[1], 120.0, 10.0],
|
||||||
KAI.ACS_FT[0]: [OpCodes.ACS_FT, KAI.ACS_FT[1], 120.0, 10.0],
|
KAI.ACS_FT[0]: [OpCode.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]: [OpCode.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
|
||||||
# seconds is not needed after MGTs are tested
|
# seconds is not needed after MGTs are tested
|
||||||
KAI.MGT_FT_DP[0]: [OpCodes.MGT_FT_DP, KAI.MGT_FT_DP[1], 10.0, 10.0],
|
KAI.MGT_FT_DP[0]: [OpCode.MGT_FT_DP, KAI.MGT_FT_DP[1], 10.0, 10.0],
|
||||||
KAI.SUS_FT[0]: [OpCodes.SUS_FT, KAI.SUS_FT[1], 120.0, 10.0],
|
KAI.SUS_FT[0]: [OpCode.SUS_FT, KAI.SUS_FT[1], 120.0, 10.0],
|
||||||
KAI.STR_FT[0]: [OpCodes.STR_FT, KAI.STR_FT[1], 120.0, 10.0],
|
KAI.STR_FT[0]: [OpCode.STR_FT, KAI.STR_FT[1], 120.0, 10.0],
|
||||||
# collection_time for KAI.RW_FT_ONE_RW maybe be reduced as a full 120
|
# collection_time for KAI.RW_FT_ONE_RW maybe be reduced as a full 120
|
||||||
# seconds is not needed after RWs are tested
|
# seconds is not needed after RWs are tested
|
||||||
KAI.RW_FT_ONE_RW[0]: [OpCodes.RW_FT_ONE_RW, KAI.RW_FT_ONE_RW[1], 10.0, 1.0],
|
KAI.RW_FT_ONE_RW[0]: [OpCode.RW_FT_ONE_RW, KAI.RW_FT_ONE_RW[1], 10.0, 1.0],
|
||||||
# collection_time for KAI.RW_FT_ONE_RW maybe be reduced as a full 120
|
# collection_time for KAI.RW_FT_ONE_RW maybe be reduced as a full 120
|
||||||
# seconds is not needed after RWs are tested
|
# seconds is not needed after RWs are tested
|
||||||
KAI.RW_FT_TWO_RWS[0]: [OpCodes.RW_FT_TWO_RWS, KAI.RW_FT_TWO_RWS[1], 10.0, 1.0],
|
KAI.RW_FT_TWO_RWS[0]: [OpCode.RW_FT_TWO_RWS, KAI.RW_FT_TWO_RWS[1], 10.0, 1.0],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -223,12 +223,12 @@ def pack_generic_hk_listening_cmds(
|
|||||||
def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str):
|
def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str):
|
||||||
sid_list = []
|
sid_list = []
|
||||||
obj_id_dict = get_object_ids()
|
obj_id_dict = get_object_ids()
|
||||||
if op_code in OpCodes.RESET_SCHED:
|
if op_code in OpCode.RESET_SCHED:
|
||||||
q.add_log_cmd("Resetting/Clearing TC schedule")
|
q.add_log_cmd("Resetting/Clearing TC schedule")
|
||||||
q.add_pus_tc(generate_reset_tc_sched_cmd())
|
q.add_pus_tc(generate_reset_tc_sched_cmd())
|
||||||
if op_code in OpCodes.BAT_FT:
|
if op_code in OpCode.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, BpxSetId.GET_HK_SET))
|
||||||
diag_list = [False]
|
diag_list = [False]
|
||||||
pack_generic_hk_listening_cmds(
|
pack_generic_hk_listening_cmds(
|
||||||
q=q,
|
q=q,
|
||||||
@ -238,7 +238,7 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
cfg=GenericHkListeningCfg.default(),
|
cfg=GenericHkListeningCfg.default(),
|
||||||
)
|
)
|
||||||
|
|
||||||
if op_code in OpCodes.CORE_FT:
|
if op_code in OpCode.CORE_FT:
|
||||||
key = KAI.CORE_FT[0]
|
key = KAI.CORE_FT[0]
|
||||||
sid_list.append(make_sid(oids.CORE_CONTROLLER_ID, CoreSetIds.HK))
|
sid_list.append(make_sid(oids.CORE_CONTROLLER_ID, CoreSetIds.HK))
|
||||||
diag_list = [False]
|
diag_list = [False]
|
||||||
@ -250,7 +250,7 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
cfg=GenericHkListeningCfg.default(),
|
cfg=GenericHkListeningCfg.default(),
|
||||||
)
|
)
|
||||||
|
|
||||||
if op_code in OpCodes.PCDU_FT:
|
if op_code in OpCode.PCDU_FT:
|
||||||
key = KAI.PCDU_FT[0]
|
key = KAI.PCDU_FT[0]
|
||||||
pcdu_pairs = [
|
pcdu_pairs = [
|
||||||
(oids.P60_DOCK_HANDLER, GsSetIds.CORE),
|
(oids.P60_DOCK_HANDLER, GsSetIds.CORE),
|
||||||
@ -286,7 +286,7 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
cfg=GenericHkListeningCfg.default(),
|
cfg=GenericHkListeningCfg.default(),
|
||||||
)
|
)
|
||||||
|
|
||||||
if op_code in OpCodes.RAD_SEN_FT:
|
if op_code in OpCode.RAD_SEN_FT:
|
||||||
key = KAI.RAD_SEN_FT[0]
|
key = KAI.RAD_SEN_FT[0]
|
||||||
sid_list.append(make_sid(oids.RAD_SENSOR_ID, RadSetIds.HK))
|
sid_list.append(make_sid(oids.RAD_SENSOR_ID, RadSetIds.HK))
|
||||||
diag_list = [False]
|
diag_list = [False]
|
||||||
@ -298,18 +298,18 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
cfg=GenericHkListeningCfg.default(),
|
cfg=GenericHkListeningCfg.default(),
|
||||||
)
|
)
|
||||||
|
|
||||||
if op_code in OpCodes.TV_SETUP_TCS_FT_ON:
|
if op_code in OpCode.TV_SETUP_TCS_FT_ON:
|
||||||
# Enable scheduling
|
# Enable scheduling
|
||||||
q.add_pus_tc(generate_enable_tc_sched_cmd())
|
q.add_pus_tc(generate_enable_tc_sched_cmd())
|
||||||
# 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(q=q, op_code=TcsOpCodes.TCS_BOARD_ASS_NORMAL[0])
|
pack_tcs_sys_commands(q=q, op_code=TcsOpCodes.TCS_BOARD_ASS_NORMAL[0])
|
||||||
pack_cmd_ctrl_to_nml(q=q, object_id=obj_id_dict.get(oids.THERMAL_CONTROLLER_ID))
|
pack_cmd_ctrl_to_nml(q=q, object_id=obj_id_dict.get(oids.THERMAL_CONTROLLER_ID))
|
||||||
|
|
||||||
if op_code in OpCodes.TV_TEARDOWN_TCS_FT_OFF:
|
if op_code in OpCode.TV_TEARDOWN_TCS_FT_OFF:
|
||||||
# TCS board should always be on anyway, do not command it off here
|
# TCS board should always be on anyway, do not command it off here
|
||||||
pack_cmd_ctrl_to_off(q=q, object_id=obj_id_dict.get(oids.THERMAL_CONTROLLER_ID))
|
pack_cmd_ctrl_to_off(q=q, object_id=obj_id_dict.get(oids.THERMAL_CONTROLLER_ID))
|
||||||
|
|
||||||
if op_code in OpCodes.ACS_FT:
|
if op_code in OpCode.ACS_FT:
|
||||||
key = KAI.ACS_FT[0]
|
key = KAI.ACS_FT[0]
|
||||||
a_side_pairs = [
|
a_side_pairs = [
|
||||||
(oids.MGM_0_LIS3_HANDLER_ID, MgmLis3SetIds_0_2.CORE_HK),
|
(oids.MGM_0_LIS3_HANDLER_ID, MgmLis3SetIds_0_2.CORE_HK),
|
||||||
@ -392,12 +392,12 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
|
|
||||||
pack_acs_command(q=q, op_code="acs-off")
|
pack_acs_command(q=q, op_code="acs-off")
|
||||||
|
|
||||||
if op_code in OpCodes.MGT_FT:
|
if op_code in OpCode.MGT_FT:
|
||||||
key = KAI.MGT_FT[0]
|
key = KAI.MGT_FT[0]
|
||||||
imtq_pairs = [
|
imtq_pairs = [
|
||||||
(oids.IMTQ_HANDLER_ID, ImtqSetIds.ENG_HK_SET),
|
(oids.IMTQ_HANDLER_ID, ImtqSetId.ENG_HK_SET),
|
||||||
(oids.IMTQ_HANDLER_ID, ImtqSetIds.CAL_MTM_SET),
|
(oids.IMTQ_HANDLER_ID, ImtqSetId.CAL_MTM_SET),
|
||||||
(oids.IMTQ_HANDLER_ID, ImtqSetIds.RAW_MTM_SET),
|
(oids.IMTQ_HANDLER_ID, ImtqSetId.RAW_MTM_SET),
|
||||||
]
|
]
|
||||||
diag_list = [
|
diag_list = [
|
||||||
True,
|
True,
|
||||||
@ -425,7 +425,7 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
|
|
||||||
pack_imtq_test_into(oids.IMTQ_HANDLER_ID, q=q, op_code="0")
|
pack_imtq_test_into(oids.IMTQ_HANDLER_ID, q=q, op_code="0")
|
||||||
|
|
||||||
if op_code in OpCodes.MGT_FT_DP:
|
if op_code in OpCode.MGT_FT_DP:
|
||||||
key = KAI.MGT_FT_DP[0]
|
key = KAI.MGT_FT_DP[0]
|
||||||
a_side_pairs = [
|
a_side_pairs = [
|
||||||
(oids.MGM_0_LIS3_HANDLER_ID, MgmLis3SetIds_0_2.CORE_HK),
|
(oids.MGM_0_LIS3_HANDLER_ID, MgmLis3SetIds_0_2.CORE_HK),
|
||||||
@ -442,9 +442,9 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
(oids.GPS_CONTROLLER, GpsSetIds.HK),
|
(oids.GPS_CONTROLLER, GpsSetIds.HK),
|
||||||
]
|
]
|
||||||
imtq_pairs = [
|
imtq_pairs = [
|
||||||
(oids.IMTQ_HANDLER_ID, ImtqSetIds.ENG_HK_SET),
|
(oids.IMTQ_HANDLER_ID, ImtqSetId.ENG_HK_SET),
|
||||||
(oids.IMTQ_HANDLER_ID, ImtqSetIds.CAL_MTM_SET),
|
(oids.IMTQ_HANDLER_ID, ImtqSetId.CAL_MTM_SET),
|
||||||
(oids.IMTQ_HANDLER_ID, ImtqSetIds.RAW_MTM_SET),
|
(oids.IMTQ_HANDLER_ID, ImtqSetId.RAW_MTM_SET),
|
||||||
]
|
]
|
||||||
d_side_and_imtq_pairs = a_side_pairs + b_side_pairs + imtq_pairs
|
d_side_and_imtq_pairs = a_side_pairs + b_side_pairs + imtq_pairs
|
||||||
diag_list = [
|
diag_list = [
|
||||||
@ -487,7 +487,7 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
pack_imtq_test_into(oids.IMTQ_HANDLER_ID, q=q, op_code="0")
|
pack_imtq_test_into(oids.IMTQ_HANDLER_ID, q=q, op_code="0")
|
||||||
pack_acs_command(q=q, op_code="acs-off")
|
pack_acs_command(q=q, op_code="acs-off")
|
||||||
|
|
||||||
if op_code in OpCodes.SUS_FT:
|
if op_code in OpCode.SUS_FT:
|
||||||
key = KAI.SUS_FT[0]
|
key = KAI.SUS_FT[0]
|
||||||
|
|
||||||
pack_sus_cmds(q=q, op_code="sus-nom")
|
pack_sus_cmds(q=q, op_code="sus-nom")
|
||||||
@ -519,7 +519,7 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
|
|
||||||
# SUSs
|
# SUSs
|
||||||
for nom_sus in sus_n_ids:
|
for nom_sus in sus_n_ids:
|
||||||
sid_list.append(make_sid(nom_sus, SetIds.HK))
|
sid_list.append(make_sid(nom_sus, SetId.HK))
|
||||||
pack_generic_hk_listening_cmds(
|
pack_generic_hk_listening_cmds(
|
||||||
q=q,
|
q=q,
|
||||||
proc_key=key,
|
proc_key=key,
|
||||||
@ -543,7 +543,7 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
|
|
||||||
# SUSs
|
# SUSs
|
||||||
for red_sus in sus_r_ids:
|
for red_sus in sus_r_ids:
|
||||||
sid_list.append(make_sid(red_sus, SetIds.HK))
|
sid_list.append(make_sid(red_sus, SetId.HK))
|
||||||
pack_generic_hk_listening_cmds(
|
pack_generic_hk_listening_cmds(
|
||||||
q=q,
|
q=q,
|
||||||
proc_key=key,
|
proc_key=key,
|
||||||
@ -558,9 +558,9 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
|
|
||||||
# SUSs
|
# SUSs
|
||||||
for nom_sus in sus_n_ids:
|
for nom_sus in sus_n_ids:
|
||||||
sid_list.append(make_sid(nom_sus, SetIds.HK))
|
sid_list.append(make_sid(nom_sus, SetId.HK))
|
||||||
for red_sus in sus_r_ids:
|
for red_sus in sus_r_ids:
|
||||||
sid_list.append(make_sid(red_sus, SetIds.HK))
|
sid_list.append(make_sid(red_sus, SetId.HK))
|
||||||
diag_list = [
|
diag_list = [
|
||||||
True,
|
True,
|
||||||
True,
|
True,
|
||||||
@ -585,7 +585,7 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
|
|
||||||
pack_acs_command(q=q, op_code="sus-off")
|
pack_acs_command(q=q, op_code="sus-off")
|
||||||
|
|
||||||
if op_code in OpCodes.SYRLINKS_FT:
|
if op_code in OpCode.SYRLINKS_FT:
|
||||||
key = KAI.SYRLINKS_FT[0]
|
key = KAI.SYRLINKS_FT[0]
|
||||||
sid_list = [
|
sid_list = [
|
||||||
make_sid(oids.SYRLINKS_HANDLER_ID, SyrlinksSetIds.RX_REGISTERS_DATASET),
|
make_sid(oids.SYRLINKS_HANDLER_ID, SyrlinksSetIds.RX_REGISTERS_DATASET),
|
||||||
@ -599,7 +599,7 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
diag_list=[False],
|
diag_list=[False],
|
||||||
cfg=GenericHkListeningCfg.default(),
|
cfg=GenericHkListeningCfg.default(),
|
||||||
)
|
)
|
||||||
if op_code in OpCodes.STR_FT:
|
if op_code in OpCode.STR_FT:
|
||||||
key = KAI.STR_FT[0]
|
key = KAI.STR_FT[0]
|
||||||
|
|
||||||
pack_star_tracker_commands(object_id=oids.STAR_TRACKER_ID, q=q, op_code="2")
|
pack_star_tracker_commands(object_id=oids.STAR_TRACKER_ID, q=q, op_code="2")
|
||||||
@ -617,21 +617,21 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
|
|
||||||
pack_star_tracker_commands(object_id=oids.STAR_TRACKER_ID, q=q, op_code="3")
|
pack_star_tracker_commands(object_id=oids.STAR_TRACKER_ID, q=q, op_code="3")
|
||||||
|
|
||||||
if op_code in OpCodes.RW_FT_ONE_RW:
|
if op_code in OpCode.RW_FT_ONE_RW:
|
||||||
key = KAI.RW_FT_ONE_RW[0]
|
key = KAI.RW_FT_ONE_RW[0]
|
||||||
rw_pairs = [
|
rw_pairs = [
|
||||||
(oids.RW1_ID, RwSetIds.STATUS_SET_ID),
|
(oids.RW1_ID, RwSetId.STATUS_SET_ID),
|
||||||
(oids.RW1_ID, RwSetIds.LAST_RESET),
|
(oids.RW1_ID, RwSetId.LAST_RESET),
|
||||||
(oids.RW1_ID, RwSetIds.TM_SET),
|
(oids.RW1_ID, RwSetId.TM_SET),
|
||||||
(oids.RW2_ID, RwSetIds.STATUS_SET_ID),
|
(oids.RW2_ID, RwSetId.STATUS_SET_ID),
|
||||||
(oids.RW2_ID, RwSetIds.LAST_RESET),
|
(oids.RW2_ID, RwSetId.LAST_RESET),
|
||||||
(oids.RW2_ID, RwSetIds.TM_SET),
|
(oids.RW2_ID, RwSetId.TM_SET),
|
||||||
(oids.RW3_ID, RwSetIds.STATUS_SET_ID),
|
(oids.RW3_ID, RwSetId.STATUS_SET_ID),
|
||||||
(oids.RW3_ID, RwSetIds.LAST_RESET),
|
(oids.RW3_ID, RwSetId.LAST_RESET),
|
||||||
(oids.RW3_ID, RwSetIds.TM_SET),
|
(oids.RW3_ID, RwSetId.TM_SET),
|
||||||
(oids.RW4_ID, RwSetIds.STATUS_SET_ID),
|
(oids.RW4_ID, RwSetId.STATUS_SET_ID),
|
||||||
(oids.RW4_ID, RwSetIds.LAST_RESET),
|
(oids.RW4_ID, RwSetId.LAST_RESET),
|
||||||
(oids.RW4_ID, RwSetIds.TM_SET),
|
(oids.RW4_ID, RwSetId.TM_SET),
|
||||||
]
|
]
|
||||||
diag_list = [
|
diag_list = [
|
||||||
True,
|
True,
|
||||||
@ -666,25 +666,25 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
pack_rw_ass_cmds(object_id=oids.RW_ASSEMBLY, q=q, op_code="off")
|
pack_rw_ass_cmds(object_id=oids.RW_ASSEMBLY, q=q, op_code="off")
|
||||||
|
|
||||||
# ass command with 2 rws to speed
|
# ass command with 2 rws to speed
|
||||||
if op_code in OpCodes.RW_FT_TWO_RWS:
|
if op_code in OpCode.RW_FT_TWO_RWS:
|
||||||
key = KAI.RW_FT_TWO_RWS[0]
|
key = KAI.RW_FT_TWO_RWS[0]
|
||||||
rw_pairs = [
|
rw_pairs = [
|
||||||
(oids.RW1_ID, RwSetIds.STATUS_SET_ID),
|
(oids.RW1_ID, RwSetId.STATUS_SET_ID),
|
||||||
(oids.RW1_ID, RwSetIds.TEMPERATURE_SET_ID),
|
(oids.RW1_ID, RwSetId.TEMPERATURE_SET_ID),
|
||||||
(oids.RW1_ID, RwSetIds.LAST_RESET),
|
(oids.RW1_ID, RwSetId.LAST_RESET),
|
||||||
(oids.RW1_ID, RwSetIds.TM_SET),
|
(oids.RW1_ID, RwSetId.TM_SET),
|
||||||
(oids.RW2_ID, RwSetIds.STATUS_SET_ID),
|
(oids.RW2_ID, RwSetId.STATUS_SET_ID),
|
||||||
(oids.RW2_ID, RwSetIds.TEMPERATURE_SET_ID),
|
(oids.RW2_ID, RwSetId.TEMPERATURE_SET_ID),
|
||||||
(oids.RW2_ID, RwSetIds.LAST_RESET),
|
(oids.RW2_ID, RwSetId.LAST_RESET),
|
||||||
(oids.RW2_ID, RwSetIds.TM_SET),
|
(oids.RW2_ID, RwSetId.TM_SET),
|
||||||
(oids.RW3_ID, RwSetIds.STATUS_SET_ID),
|
(oids.RW3_ID, RwSetId.STATUS_SET_ID),
|
||||||
(oids.RW3_ID, RwSetIds.TEMPERATURE_SET_ID),
|
(oids.RW3_ID, RwSetId.TEMPERATURE_SET_ID),
|
||||||
(oids.RW3_ID, RwSetIds.LAST_RESET),
|
(oids.RW3_ID, RwSetId.LAST_RESET),
|
||||||
(oids.RW3_ID, RwSetIds.TM_SET),
|
(oids.RW3_ID, RwSetId.TM_SET),
|
||||||
(oids.RW4_ID, RwSetIds.STATUS_SET_ID),
|
(oids.RW4_ID, RwSetId.STATUS_SET_ID),
|
||||||
(oids.RW4_ID, RwSetIds.TEMPERATURE_SET_ID),
|
(oids.RW4_ID, RwSetId.TEMPERATURE_SET_ID),
|
||||||
(oids.RW4_ID, RwSetIds.LAST_RESET),
|
(oids.RW4_ID, RwSetId.LAST_RESET),
|
||||||
(oids.RW4_ID, RwSetIds.TM_SET),
|
(oids.RW4_ID, RwSetId.TM_SET),
|
||||||
]
|
]
|
||||||
diag_list = [
|
diag_list = [
|
||||||
False,
|
False,
|
||||||
|
@ -14,7 +14,7 @@ from eive_tmtc.tmtc.common import pack_mode_cmd_with_info
|
|||||||
from eive_tmtc.config.object_ids import TCS_BOARD_ASS_ID, TCS_CONTROLLER
|
from eive_tmtc.config.object_ids import TCS_BOARD_ASS_ID, TCS_CONTROLLER
|
||||||
|
|
||||||
|
|
||||||
class OpCodes:
|
class OpCode:
|
||||||
TCS_BOARD_ASS_NORMAL = ["0", "normal"]
|
TCS_BOARD_ASS_NORMAL = ["0", "normal"]
|
||||||
TCS_BOARD_ASS_OFF = ["1", "off"]
|
TCS_BOARD_ASS_OFF = ["1", "off"]
|
||||||
REQUEST_SENSOR_TEMP_SET = ["2", "temps"]
|
REQUEST_SENSOR_TEMP_SET = ["2", "temps"]
|
||||||
@ -26,7 +26,7 @@ class Info:
|
|||||||
TCS_BOARD_ASS_OFF = "Switching TCS board assembly off"
|
TCS_BOARD_ASS_OFF = "Switching TCS board assembly off"
|
||||||
|
|
||||||
|
|
||||||
class SetIds(enum.IntEnum):
|
class SetId(enum.IntEnum):
|
||||||
PRIMARY_SENSORS = 0
|
PRIMARY_SENSORS = 0
|
||||||
DEVICE_SENSORS = 1
|
DEVICE_SENSORS = 1
|
||||||
SUS_TEMP_SENSORS = 2
|
SUS_TEMP_SENSORS = 2
|
||||||
@ -36,14 +36,14 @@ class SetIds(enum.IntEnum):
|
|||||||
def add_tcs_cmds(defs: TmtcDefinitionWrapper):
|
def add_tcs_cmds(defs: TmtcDefinitionWrapper):
|
||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
oce.add(
|
oce.add(
|
||||||
keys=OpCodes.TCS_BOARD_ASS_NORMAL,
|
keys=OpCode.TCS_BOARD_ASS_NORMAL,
|
||||||
info=Info.TCS_BOARD_ASS_NORMAL,
|
info=Info.TCS_BOARD_ASS_NORMAL,
|
||||||
)
|
)
|
||||||
oce.add(
|
oce.add(
|
||||||
keys=OpCodes.TCS_BOARD_ASS_OFF,
|
keys=OpCode.TCS_BOARD_ASS_OFF,
|
||||||
info=Info.TCS_BOARD_ASS_OFF,
|
info=Info.TCS_BOARD_ASS_OFF,
|
||||||
)
|
)
|
||||||
oce.add(keys=OpCodes.REQUEST_SENSOR_TEMP_SET, info=Info.REQUEST_SENSOR_TEMP_SET)
|
oce.add(keys=OpCode.REQUEST_SENSOR_TEMP_SET, info=Info.REQUEST_SENSOR_TEMP_SET)
|
||||||
defs.add_service(
|
defs.add_service(
|
||||||
name=CustomServiceList.TCS.value,
|
name=CustomServiceList.TCS.value,
|
||||||
info="TCS Board Assembly",
|
info="TCS Board Assembly",
|
||||||
@ -52,15 +52,15 @@ def add_tcs_cmds(defs: TmtcDefinitionWrapper):
|
|||||||
|
|
||||||
|
|
||||||
def pack_tcs_sys_commands(q: DefaultPusQueueHelper, op_code: str):
|
def pack_tcs_sys_commands(q: DefaultPusQueueHelper, op_code: str):
|
||||||
if op_code in OpCodes.REQUEST_SENSOR_TEMP_SET:
|
if op_code in OpCode.REQUEST_SENSOR_TEMP_SET:
|
||||||
sensor_set_sid = make_sid(TCS_CONTROLLER, SetIds.PRIMARY_SENSORS)
|
sensor_set_sid = make_sid(TCS_CONTROLLER, SetId.PRIMARY_SENSORS)
|
||||||
q.add_log_cmd(Info.REQUEST_SENSOR_TEMP_SET)
|
q.add_log_cmd(Info.REQUEST_SENSOR_TEMP_SET)
|
||||||
q.add_pus_tc(generate_one_hk_command(sensor_set_sid))
|
q.add_pus_tc(generate_one_hk_command(sensor_set_sid))
|
||||||
pack_tcs_ass_cmds(q, op_code)
|
pack_tcs_ass_cmds(q, op_code)
|
||||||
|
|
||||||
|
|
||||||
def pack_tcs_ass_cmds(q: DefaultPusQueueHelper, op_code: str):
|
def pack_tcs_ass_cmds(q: DefaultPusQueueHelper, op_code: str):
|
||||||
if op_code in OpCodes.TCS_BOARD_ASS_NORMAL:
|
if op_code in OpCode.TCS_BOARD_ASS_NORMAL:
|
||||||
pack_mode_cmd_with_info(
|
pack_mode_cmd_with_info(
|
||||||
object_id=TCS_BOARD_ASS_ID,
|
object_id=TCS_BOARD_ASS_ID,
|
||||||
mode=Modes.NORMAL,
|
mode=Modes.NORMAL,
|
||||||
@ -68,7 +68,7 @@ def pack_tcs_ass_cmds(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
q=q,
|
q=q,
|
||||||
info=Info.TCS_BOARD_ASS_NORMAL,
|
info=Info.TCS_BOARD_ASS_NORMAL,
|
||||||
)
|
)
|
||||||
if op_code in OpCodes.TCS_BOARD_ASS_OFF:
|
if op_code in OpCode.TCS_BOARD_ASS_OFF:
|
||||||
pack_mode_cmd_with_info(
|
pack_mode_cmd_with_info(
|
||||||
object_id=TCS_BOARD_ASS_ID,
|
object_id=TCS_BOARD_ASS_ID,
|
||||||
mode=Modes.OFF,
|
mode=Modes.OFF,
|
||||||
|
@ -11,7 +11,7 @@ from tmtccmd.tc.decorator import ServiceProviderParams
|
|||||||
LOGGER = get_console_logger()
|
LOGGER = get_console_logger()
|
||||||
|
|
||||||
|
|
||||||
class OpCodes:
|
class OpCode:
|
||||||
SET_CURRENT_TIME = ["0", "set-curr-time"]
|
SET_CURRENT_TIME = ["0", "set-curr-time"]
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import struct
|
import struct
|
||||||
from eive_tmtc.config.object_ids import *
|
from eive_tmtc.config.object_ids import *
|
||||||
from eive_tmtc.tmtc.acs.imtq import ImtqActionIds
|
from eive_tmtc.tmtc.acs.imtq import ImtqActionId
|
||||||
from eive_tmtc.pus_tm.defs import PrintWrapper
|
from eive_tmtc.pus_tm.defs import PrintWrapper
|
||||||
from eive_tmtc.tmtc.payload.ploc_mpsoc import PlocReplyIds
|
from eive_tmtc.tmtc.payload.ploc_mpsoc import PlocReplyIds
|
||||||
from eive_tmtc.tmtc.payload.ploc_supervisor import SupvActionIds
|
from eive_tmtc.tmtc.payload.ploc_supervisor import SupvActionId
|
||||||
from eive_tmtc.pus_tc.devs.star_tracker import StarTrackerActionIds
|
from eive_tmtc.pus_tc.devs.star_tracker import StarTrackerActionId
|
||||||
from eive_tmtc.tmtc.power.tm import handle_get_param_data_reply
|
from eive_tmtc.tmtc.power.tm import handle_get_param_data_reply
|
||||||
from tmtccmd.logging import get_console_logger
|
from tmtccmd.logging import get_console_logger
|
||||||
from tmtccmd.tm import Service8FsfwTm
|
from tmtccmd.tm import Service8FsfwTm
|
||||||
@ -52,7 +52,7 @@ def handle_action_reply(
|
|||||||
def handle_imtq_replies(
|
def handle_imtq_replies(
|
||||||
action_id: int, printer: FsfwTmTcPrinter, custom_data: bytearray
|
action_id: int, printer: FsfwTmTcPrinter, custom_data: bytearray
|
||||||
):
|
):
|
||||||
if action_id == struct.unpack("!I", ImtqActionIds.get_commanded_dipole)[0]:
|
if action_id == struct.unpack("!I", ImtqActionId.get_commanded_dipole)[0]:
|
||||||
header_list = [
|
header_list = [
|
||||||
"Commanded X-Dipole",
|
"Commanded X-Dipole",
|
||||||
"Commanded Y-Dipole",
|
"Commanded Y-Dipole",
|
||||||
@ -99,14 +99,14 @@ def handle_ploc_replies(
|
|||||||
def handle_supervisor_replies(
|
def handle_supervisor_replies(
|
||||||
action_id: int, printer: FsfwTmTcPrinter, custom_data: bytearray
|
action_id: int, printer: FsfwTmTcPrinter, custom_data: bytearray
|
||||||
):
|
):
|
||||||
if action_id == SupvActionIds.DUMP_MRAM:
|
if action_id == SupvActionId.DUMP_MRAM:
|
||||||
header_list = ["MRAM Dump"]
|
header_list = ["MRAM Dump"]
|
||||||
content_list = [custom_data[: len(custom_data)]]
|
content_list = [custom_data[: len(custom_data)]]
|
||||||
print(header_list)
|
print(header_list)
|
||||||
print(content_list)
|
print(content_list)
|
||||||
printer.file_logger.info(header_list)
|
printer.file_logger.info(header_list)
|
||||||
printer.file_logger.info(content_list)
|
printer.file_logger.info(content_list)
|
||||||
elif action_id == SupvActionIds.READ_GPIO:
|
elif action_id == SupvActionId.READ_GPIO:
|
||||||
header_list = ["GPIO state"]
|
header_list = ["GPIO state"]
|
||||||
content_list = [struct.unpack("!H", custom_data[:2])[0]]
|
content_list = [struct.unpack("!H", custom_data[:2])[0]]
|
||||||
print(header_list)
|
print(header_list)
|
||||||
@ -118,7 +118,7 @@ def handle_supervisor_replies(
|
|||||||
def handle_startracker_replies(
|
def handle_startracker_replies(
|
||||||
action_id: int, printer: FsfwTmTcPrinter, custom_data: bytearray
|
action_id: int, printer: FsfwTmTcPrinter, custom_data: bytearray
|
||||||
):
|
):
|
||||||
if action_id == StarTrackerActionIds.CHECKSUM:
|
if action_id == StarTrackerActionId.CHECKSUM:
|
||||||
if len(custom_data) != 5:
|
if len(custom_data) != 5:
|
||||||
LOGGER.warning(
|
LOGGER.warning(
|
||||||
"Star tracker reply has invalid length {0}".format(len(custom_data))
|
"Star tracker reply has invalid length {0}".format(len(custom_data))
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import struct
|
import struct
|
||||||
|
|
||||||
from eive_tmtc.pus_tc.devs.bpx_batt import BpxSetIds
|
from eive_tmtc.pus_tc.devs.bpx_batt import BpxSetId
|
||||||
from eive_tmtc.pus_tm.defs import PrintWrapper
|
from eive_tmtc.pus_tm.defs import PrintWrapper
|
||||||
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
||||||
|
|
||||||
@ -21,7 +21,7 @@ HEADER_LIST = [
|
|||||||
|
|
||||||
def handle_bpx_hk_data(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes):
|
def handle_bpx_hk_data(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes):
|
||||||
pw = PrintWrapper(printer)
|
pw = PrintWrapper(printer)
|
||||||
if set_id == BpxSetIds.GET_HK_SET:
|
if set_id == BpxSetId.GET_HK_SET:
|
||||||
fmt_str = "!HHHHhhhhIB"
|
fmt_str = "!HHHHhhhhIB"
|
||||||
inc_len = struct.calcsize(fmt_str)
|
inc_len = struct.calcsize(fmt_str)
|
||||||
(
|
(
|
||||||
@ -52,7 +52,7 @@ def handle_bpx_hk_data(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes):
|
|||||||
pw.dlog(str(HEADER_LIST))
|
pw.dlog(str(HEADER_LIST))
|
||||||
pw.dlog(str(content_list))
|
pw.dlog(str(content_list))
|
||||||
printer.print_validity_buffer(validity_buffer=validity_buffer, num_vars=10)
|
printer.print_validity_buffer(validity_buffer=validity_buffer, num_vars=10)
|
||||||
elif set_id == BpxSetIds.GET_CFG_SET:
|
elif set_id == BpxSetId.GET_CFG_SET:
|
||||||
battheat_mode = hk_data[0]
|
battheat_mode = hk_data[0]
|
||||||
battheat_low = struct.unpack("!b", hk_data[1:2])[0]
|
battheat_low = struct.unpack("!b", hk_data[1:2])[0]
|
||||||
battheat_high = struct.unpack("!b", hk_data[2:3])[0]
|
battheat_high = struct.unpack("!b", hk_data[2:3])[0]
|
||||||
|
@ -4,7 +4,7 @@ from eive_tmtc.pus_tm.defs import PrintWrapper
|
|||||||
from tmtccmd.util import ObjectIdU32
|
from tmtccmd.util import ObjectIdU32
|
||||||
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
||||||
|
|
||||||
from eive_tmtc.pus_tc.devs.gyros import L3gGyroSetIds, AdisGyroSetIds
|
from eive_tmtc.pus_tc.devs.gyros import L3gGyroSetId, AdisGyroSetId
|
||||||
import eive_tmtc.config.object_ids as obj_ids
|
import eive_tmtc.config.object_ids as obj_ids
|
||||||
|
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ def handle_gyros_hk_data(
|
|||||||
def handle_adis_gyro_hk(
|
def handle_adis_gyro_hk(
|
||||||
object_id: ObjectIdU32, printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes
|
object_id: ObjectIdU32, printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes
|
||||||
):
|
):
|
||||||
if set_id == AdisGyroSetIds.CORE_HK:
|
if set_id == AdisGyroSetId.CORE_HK:
|
||||||
pw = PrintWrapper(printer)
|
pw = PrintWrapper(printer)
|
||||||
fmt_str = "!ddddddf"
|
fmt_str = "!ddddddf"
|
||||||
inc_len = struct.calcsize(fmt_str)
|
inc_len = struct.calcsize(fmt_str)
|
||||||
@ -44,7 +44,7 @@ def handle_adis_gyro_hk(
|
|||||||
)
|
)
|
||||||
pw.dlog(f"Acceleration (m/s^2): X {accelX} | Y {accelY} | Z {accelZ}")
|
pw.dlog(f"Acceleration (m/s^2): X {accelX} | Y {accelY} | Z {accelZ}")
|
||||||
pw.dlog(f"Temperature {temp} C")
|
pw.dlog(f"Temperature {temp} C")
|
||||||
if set_id == AdisGyroSetIds.CFG_HK:
|
if set_id == AdisGyroSetId.CFG_HK:
|
||||||
pw = PrintWrapper(printer)
|
pw = PrintWrapper(printer)
|
||||||
fmt_str = "!HBHH"
|
fmt_str = "!HBHH"
|
||||||
inc_len = struct.calcsize(fmt_str)
|
inc_len = struct.calcsize(fmt_str)
|
||||||
@ -60,7 +60,7 @@ def handle_adis_gyro_hk(
|
|||||||
def handle_l3g_gyro_hk(
|
def handle_l3g_gyro_hk(
|
||||||
object_id: ObjectIdU32, printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes
|
object_id: ObjectIdU32, printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes
|
||||||
):
|
):
|
||||||
if set_id == L3gGyroSetIds.CORE_HK:
|
if set_id == L3gGyroSetId.CORE_HK:
|
||||||
pw = PrintWrapper(printer)
|
pw = PrintWrapper(printer)
|
||||||
fmt_str = "!ffff"
|
fmt_str = "!ffff"
|
||||||
inc_len = struct.calcsize(fmt_str)
|
inc_len = struct.calcsize(fmt_str)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import struct
|
import struct
|
||||||
|
|
||||||
from eive_tmtc.pus_tm.defs import PrintWrapper
|
from eive_tmtc.pus_tm.defs import PrintWrapper
|
||||||
from eive_tmtc.pus_tc.devs.mgms import MgmRm3100SetIds, MgmLis3SetIds
|
from eive_tmtc.pus_tc.devs.mgms import MgmRm3100SetId, MgmLis3SetId
|
||||||
from tmtccmd.util import ObjectIdU32
|
from tmtccmd.util import ObjectIdU32
|
||||||
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
||||||
import eive_tmtc.config.object_ids as obj_ids
|
import eive_tmtc.config.object_ids as obj_ids
|
||||||
@ -26,7 +26,7 @@ def handle_mgm_hk_data(
|
|||||||
def handle_mgm_lis3_hk_data(
|
def handle_mgm_lis3_hk_data(
|
||||||
object_id: ObjectIdU32, printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes
|
object_id: ObjectIdU32, printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes
|
||||||
):
|
):
|
||||||
if set_id == MgmLis3SetIds.CORE_HK:
|
if set_id == MgmLis3SetId.CORE_HK:
|
||||||
pw = PrintWrapper(printer)
|
pw = PrintWrapper(printer)
|
||||||
fmt_str = "!ffff"
|
fmt_str = "!ffff"
|
||||||
inc_len = struct.calcsize(fmt_str)
|
inc_len = struct.calcsize(fmt_str)
|
||||||
@ -43,7 +43,7 @@ def handle_mgm_lis3_hk_data(
|
|||||||
def handle_mgm_rm3100_hk_data(
|
def handle_mgm_rm3100_hk_data(
|
||||||
object_id: ObjectIdU32, printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes
|
object_id: ObjectIdU32, printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes
|
||||||
):
|
):
|
||||||
if set_id == MgmRm3100SetIds.CORE_HK:
|
if set_id == MgmRm3100SetId.CORE_HK:
|
||||||
pw = PrintWrapper(printer)
|
pw = PrintWrapper(printer)
|
||||||
fmt_str = f"!fff"
|
fmt_str = f"!fff"
|
||||||
inc_len = struct.calcsize(fmt_str)
|
inc_len = struct.calcsize(fmt_str)
|
||||||
|
@ -2,7 +2,7 @@ import struct
|
|||||||
|
|
||||||
from eive_tmtc.pus_tm.defs import PrintWrapper
|
from eive_tmtc.pus_tm.defs import PrintWrapper
|
||||||
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
||||||
from eive_tmtc.pus_tc.devs.plpcdu import SetIds
|
from eive_tmtc.pus_tc.devs.plpcdu import SetId
|
||||||
|
|
||||||
|
|
||||||
ADC_CHANNELS_NAMED = [
|
ADC_CHANNELS_NAMED = [
|
||||||
@ -22,7 +22,7 @@ ADC_CHANNELS_NAMED = [
|
|||||||
|
|
||||||
|
|
||||||
def handle_plpcdu_hk(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes):
|
def handle_plpcdu_hk(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes):
|
||||||
if set_id == SetIds.ADC:
|
if set_id == SetId.ADC:
|
||||||
pw = PrintWrapper(printer)
|
pw = PrintWrapper(printer)
|
||||||
current_idx = 0
|
current_idx = 0
|
||||||
pw.dlog("Received PL PCDU ADC HK data")
|
pw.dlog("Received PL PCDU ADC HK data")
|
||||||
|
@ -2,11 +2,11 @@ import struct
|
|||||||
|
|
||||||
from eive_tmtc.pus_tm.defs import PrintWrapper
|
from eive_tmtc.pus_tm.defs import PrintWrapper
|
||||||
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
||||||
from eive_tmtc.pus_tc.devs.rad_sensor import SetIds
|
from eive_tmtc.pus_tc.devs.rad_sensor import SetId
|
||||||
|
|
||||||
|
|
||||||
def handle_rad_sensor_data(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes):
|
def handle_rad_sensor_data(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes):
|
||||||
if set_id == SetIds.HK:
|
if set_id == SetId.HK:
|
||||||
pw = PrintWrapper(printer)
|
pw = PrintWrapper(printer)
|
||||||
current_idx = 0
|
current_idx = 0
|
||||||
pw.dlog("Received Radiation Sensor HK data")
|
pw.dlog("Received Radiation Sensor HK data")
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import struct
|
import struct
|
||||||
|
|
||||||
from eive_tmtc.pus_tm.defs import PrintWrapper
|
from eive_tmtc.pus_tm.defs import PrintWrapper
|
||||||
from eive_tmtc.pus_tc.devs.sus import SetIds
|
from eive_tmtc.pus_tc.devs.sus import SetId
|
||||||
from tmtccmd.util import ObjectIdU32
|
from tmtccmd.util import ObjectIdU32
|
||||||
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
||||||
|
|
||||||
@ -11,7 +11,7 @@ def handle_sus_hk(
|
|||||||
):
|
):
|
||||||
pw = PrintWrapper(printer)
|
pw = PrintWrapper(printer)
|
||||||
pw.dlog(f"Received SUS HK data from {object_id}")
|
pw.dlog(f"Received SUS HK data from {object_id}")
|
||||||
if set_id == SetIds.HK:
|
if set_id == SetId.HK:
|
||||||
current_idx = 0
|
current_idx = 0
|
||||||
temperature = struct.unpack("!f", hk_data[current_idx : current_idx + 4])[0]
|
temperature = struct.unpack("!f", hk_data[current_idx : current_idx + 4])[0]
|
||||||
current_idx += 4
|
current_idx += 4
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
import struct
|
import struct
|
||||||
|
|
||||||
from eive_tmtc.pus_tm.defs import PrintWrapper
|
from eive_tmtc.pus_tm.defs import PrintWrapper
|
||||||
from eive_tmtc.pus_tc.devs.syrlinks_hk_handler import SetIds
|
from eive_tmtc.pus_tc.devs.syrlinks_hk_handler import SetId
|
||||||
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
||||||
|
|
||||||
|
|
||||||
def handle_syrlinks_hk_data(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes):
|
def handle_syrlinks_hk_data(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes):
|
||||||
if set_id == SetIds.RX_REGISTERS_DATASET:
|
if set_id == SetId.RX_REGISTERS_DATASET:
|
||||||
return handle_syrlinks_rx_registers_dataset(printer, hk_data)
|
return handle_syrlinks_rx_registers_dataset(printer, hk_data)
|
||||||
elif set_id == SetIds.TX_REGISTERS_DATASET:
|
elif set_id == SetId.TX_REGISTERS_DATASET:
|
||||||
return handle_syrlinks_tx_registers_dataset(printer, hk_data)
|
return handle_syrlinks_tx_registers_dataset(printer, hk_data)
|
||||||
else:
|
else:
|
||||||
pw = PrintWrapper(printer)
|
pw = PrintWrapper(printer)
|
||||||
|
@ -4,7 +4,7 @@ from eive_tmtc.config.events import get_event_dict
|
|||||||
from eive_tmtc.config.object_ids import get_object_ids
|
from eive_tmtc.config.object_ids import get_object_ids
|
||||||
from eive_tmtc.pus_tm.defs import PrintWrapper
|
from eive_tmtc.pus_tm.defs import PrintWrapper
|
||||||
from eive_tmtc.pus_tm.verification_handler import generic_retval_printout
|
from eive_tmtc.pus_tm.verification_handler import generic_retval_printout
|
||||||
from eive_tmtc.tmtc.acs.acs_subsystem import AcsModes
|
from eive_tmtc.tmtc.acs.acs_subsystem import AcsMode
|
||||||
from tmtccmd.tc.pus_200_fsfw_modes import Modes
|
from tmtccmd.tc.pus_200_fsfw_modes import Modes
|
||||||
|
|
||||||
from tmtccmd.tm import Service5Tm
|
from tmtccmd.tm import Service5Tm
|
||||||
@ -57,13 +57,13 @@ def handle_event_packet(raw_tm: bytes, printer: FsfwTmTcPrinter):
|
|||||||
if obj_name == "ACS_SUBSYSTEM":
|
if obj_name == "ACS_SUBSYSTEM":
|
||||||
if tm.param_1 == Modes.OFF:
|
if tm.param_1 == Modes.OFF:
|
||||||
mode_name = "Off"
|
mode_name = "Off"
|
||||||
elif tm.param_1 == AcsModes.IDLE:
|
elif tm.param_1 == AcsMode.IDLE:
|
||||||
mode_name = "Idle"
|
mode_name = "Idle"
|
||||||
elif tm.param_1 == AcsModes.DETUMBLE:
|
elif tm.param_1 == AcsMode.DETUMBLE:
|
||||||
mode_name = "Detumble"
|
mode_name = "Detumble"
|
||||||
elif tm.param_1 == AcsModes.SAFE:
|
elif tm.param_1 == AcsMode.SAFE:
|
||||||
mode_name = "Safe"
|
mode_name = "Safe"
|
||||||
elif tm.param_1 == AcsModes.TARGET_PT:
|
elif tm.param_1 == AcsMode.TARGET_PT:
|
||||||
mode_name = "Target Pointing"
|
mode_name = "Target Pointing"
|
||||||
else:
|
else:
|
||||||
if tm.param_1 == Modes.OFF:
|
if tm.param_1 == Modes.OFF:
|
||||||
|
@ -25,7 +25,7 @@ from eive_tmtc.tmtc.power.tm import (
|
|||||||
)
|
)
|
||||||
from eive_tmtc.pus_tm.devs.syrlinks import handle_syrlinks_hk_data
|
from eive_tmtc.pus_tm.devs.syrlinks import handle_syrlinks_hk_data
|
||||||
from eive_tmtc.tmtc.acs.imtq import (
|
from eive_tmtc.tmtc.acs.imtq import (
|
||||||
ImtqSetIds,
|
ImtqSetId,
|
||||||
handle_self_test_data,
|
handle_self_test_data,
|
||||||
handle_eng_set,
|
handle_eng_set,
|
||||||
handle_calibrated_mtm_measurement,
|
handle_calibrated_mtm_measurement,
|
||||||
@ -95,15 +95,15 @@ def handle_regular_hk_print(
|
|||||||
elif objb == obj_ids.SYRLINKS_HANDLER_ID:
|
elif objb == obj_ids.SYRLINKS_HANDLER_ID:
|
||||||
handle_syrlinks_hk_data(printer=printer, hk_data=hk_data, set_id=set_id)
|
handle_syrlinks_hk_data(printer=printer, hk_data=hk_data, set_id=set_id)
|
||||||
elif objb == obj_ids.IMTQ_HANDLER_ID:
|
elif objb == obj_ids.IMTQ_HANDLER_ID:
|
||||||
if (set_id >= ImtqSetIds.POSITIVE_X_TEST) and (
|
if (set_id >= ImtqSetId.POSITIVE_X_TEST) and (
|
||||||
set_id <= ImtqSetIds.NEGATIVE_Z_TEST
|
set_id <= ImtqSetId.NEGATIVE_Z_TEST
|
||||||
):
|
):
|
||||||
return handle_self_test_data(printer, hk_data)
|
return handle_self_test_data(printer, hk_data)
|
||||||
elif set_id == ImtqSetIds.ENG_HK_SET:
|
elif set_id == ImtqSetId.ENG_HK_SET:
|
||||||
return handle_eng_set(printer, hk_data)
|
return handle_eng_set(printer, hk_data)
|
||||||
elif set_id == ImtqSetIds.CAL_MTM_SET:
|
elif set_id == ImtqSetId.CAL_MTM_SET:
|
||||||
return handle_calibrated_mtm_measurement(printer, hk_data)
|
return handle_calibrated_mtm_measurement(printer, hk_data)
|
||||||
elif set_id == ImtqSetIds.RAW_MTM_SET:
|
elif set_id == ImtqSetId.RAW_MTM_SET:
|
||||||
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")
|
||||||
|
@ -7,7 +7,7 @@ from tmtccmd.util import ObjectIdU32
|
|||||||
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
||||||
|
|
||||||
|
|
||||||
class SetIds(enum.IntEnum):
|
class SetId(enum.IntEnum):
|
||||||
SENSOR_TEMPERATURE_SET = 0
|
SENSOR_TEMPERATURE_SET = 0
|
||||||
DEVICE_TEMPERATURE_SET = 1
|
DEVICE_TEMPERATURE_SET = 1
|
||||||
SUS_TEMPERATURE_SET = 2
|
SUS_TEMPERATURE_SET = 2
|
||||||
@ -23,7 +23,7 @@ def handle_thermal_controller_hk_data(
|
|||||||
if TCP_TEMP_DEV_SERVER:
|
if TCP_TEMP_DEV_SERVER:
|
||||||
TCP_TEMP_DEV_SERVER = TmTcpServer("localhost", 7306)
|
TCP_TEMP_DEV_SERVER = TmTcpServer("localhost", 7306)
|
||||||
"""
|
"""
|
||||||
if set_id == SetIds.SENSOR_TEMPERATURE_SET:
|
if set_id == SetId.SENSOR_TEMPERATURE_SET:
|
||||||
pw = PrintWrapper(printer)
|
pw = PrintWrapper(printer)
|
||||||
pw.dlog("Received sensor temperature data")
|
pw.dlog("Received sensor temperature data")
|
||||||
|
|
||||||
@ -58,7 +58,7 @@ def handle_thermal_controller_hk_data(
|
|||||||
# tcp_server_sensor_temperatures.report_parsed_hk_data(
|
# tcp_server_sensor_temperatures.report_parsed_hk_data(
|
||||||
# object_id, set_id, parsed_data
|
# object_id, set_id, parsed_data
|
||||||
# )
|
# )
|
||||||
elif set_id == SetIds.DEVICE_TEMPERATURE_SET:
|
elif set_id == SetId.DEVICE_TEMPERATURE_SET:
|
||||||
pw = PrintWrapper(printer)
|
pw = PrintWrapper(printer)
|
||||||
pw.dlog("Received device temperature data")
|
pw.dlog("Received device temperature data")
|
||||||
fmt_str = "!fhhhhiiiifffhffffffffffffff"
|
fmt_str = "!fhhhhiiiifffhffffffffffffff"
|
||||||
@ -99,7 +99,7 @@ def handle_thermal_controller_hk_data(
|
|||||||
# tcp_server_device_temperatures.report_parsed_hk_data(
|
# tcp_server_device_temperatures.report_parsed_hk_data(
|
||||||
# object_id, set_id, parsed_data
|
# object_id, set_id, parsed_data
|
||||||
# )
|
# )
|
||||||
elif set_id == SetIds.SUS_TEMPERATURE_SET:
|
elif set_id == SetId.SUS_TEMPERATURE_SET:
|
||||||
pass
|
pass
|
||||||
# pw = PrintWrapper(printer)
|
# pw = PrintWrapper(printer)
|
||||||
# pw.dlog("Received SUS temperature data")
|
# pw.dlog("Received SUS temperature data")
|
||||||
|
@ -24,7 +24,7 @@ class AcsOpCodes:
|
|||||||
ACS_ASS_DUAL_ON = ["6", "do"]
|
ACS_ASS_DUAL_ON = ["6", "do"]
|
||||||
|
|
||||||
|
|
||||||
class DualSideSubmodes(enum.IntEnum):
|
class DualSideSubmode(enum.IntEnum):
|
||||||
A_SIDE = 0
|
A_SIDE = 0
|
||||||
B_SIDE = 1
|
B_SIDE = 1
|
||||||
DUAL_SIDE = 2
|
DUAL_SIDE = 2
|
||||||
@ -35,7 +35,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
pack_mode_cmd_with_info(
|
pack_mode_cmd_with_info(
|
||||||
object_id=ACS_BOARD_ASS_ID,
|
object_id=ACS_BOARD_ASS_ID,
|
||||||
mode=Modes.NORMAL,
|
mode=Modes.NORMAL,
|
||||||
submode=DualSideSubmodes.A_SIDE,
|
submode=DualSideSubmode.A_SIDE,
|
||||||
q=q,
|
q=q,
|
||||||
info="Switching to ACS board assembly A side",
|
info="Switching to ACS board assembly A side",
|
||||||
)
|
)
|
||||||
@ -43,7 +43,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
pack_mode_cmd_with_info(
|
pack_mode_cmd_with_info(
|
||||||
object_id=ACS_BOARD_ASS_ID,
|
object_id=ACS_BOARD_ASS_ID,
|
||||||
mode=Modes.NORMAL,
|
mode=Modes.NORMAL,
|
||||||
submode=DualSideSubmodes.B_SIDE,
|
submode=DualSideSubmode.B_SIDE,
|
||||||
q=q,
|
q=q,
|
||||||
info="Switching to ACS board assembly B side",
|
info="Switching to ACS board assembly B side",
|
||||||
)
|
)
|
||||||
@ -51,7 +51,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
pack_mode_cmd_with_info(
|
pack_mode_cmd_with_info(
|
||||||
object_id=ACS_BOARD_ASS_ID,
|
object_id=ACS_BOARD_ASS_ID,
|
||||||
mode=Modes.NORMAL,
|
mode=Modes.NORMAL,
|
||||||
submode=DualSideSubmodes.DUAL_SIDE,
|
submode=DualSideSubmode.DUAL_SIDE,
|
||||||
q=q,
|
q=q,
|
||||||
info="Switching to ACS board assembly dual mode",
|
info="Switching to ACS board assembly dual mode",
|
||||||
)
|
)
|
||||||
@ -59,7 +59,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
pack_mode_cmd_with_info(
|
pack_mode_cmd_with_info(
|
||||||
object_id=ACS_BOARD_ASS_ID,
|
object_id=ACS_BOARD_ASS_ID,
|
||||||
mode=Modes.ON,
|
mode=Modes.ON,
|
||||||
submode=DualSideSubmodes.A_SIDE,
|
submode=DualSideSubmode.A_SIDE,
|
||||||
q=q,
|
q=q,
|
||||||
info="Switching ACS board assembly A side on",
|
info="Switching ACS board assembly A side on",
|
||||||
)
|
)
|
||||||
@ -67,7 +67,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
pack_mode_cmd_with_info(
|
pack_mode_cmd_with_info(
|
||||||
object_id=ACS_BOARD_ASS_ID,
|
object_id=ACS_BOARD_ASS_ID,
|
||||||
mode=Modes.ON,
|
mode=Modes.ON,
|
||||||
submode=DualSideSubmodes.B_SIDE,
|
submode=DualSideSubmode.B_SIDE,
|
||||||
q=q,
|
q=q,
|
||||||
info="Switching ACS board assembly B side on",
|
info="Switching ACS board assembly B side on",
|
||||||
)
|
)
|
||||||
@ -75,7 +75,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
pack_mode_cmd_with_info(
|
pack_mode_cmd_with_info(
|
||||||
object_id=ACS_BOARD_ASS_ID,
|
object_id=ACS_BOARD_ASS_ID,
|
||||||
mode=Modes.ON,
|
mode=Modes.ON,
|
||||||
submode=DualSideSubmodes.B_SIDE,
|
submode=DualSideSubmode.B_SIDE,
|
||||||
q=q,
|
q=q,
|
||||||
info="Switching ACS board assembly dual side on",
|
info="Switching ACS board assembly dual side on",
|
||||||
)
|
)
|
||||||
|
@ -15,7 +15,7 @@ from tmtccmd.tc import service_provider
|
|||||||
from tmtccmd.tc.decorator import ServiceProviderParams
|
from tmtccmd.tc.decorator import ServiceProviderParams
|
||||||
|
|
||||||
|
|
||||||
class OpCodes(str, enum.Enum):
|
class OpCode(str, enum.Enum):
|
||||||
OFF = "off"
|
OFF = "off"
|
||||||
SAFE = "safe"
|
SAFE = "safe"
|
||||||
DETUMBLE = "detumble"
|
DETUMBLE = "detumble"
|
||||||
@ -24,7 +24,7 @@ class OpCodes(str, enum.Enum):
|
|||||||
REPORT_ALL_MODES = "all_modes"
|
REPORT_ALL_MODES = "all_modes"
|
||||||
|
|
||||||
|
|
||||||
class AcsModes(enum.IntEnum):
|
class AcsMode(enum.IntEnum):
|
||||||
OFF = 0
|
OFF = 0
|
||||||
SAFE = 1 << 24
|
SAFE = 1 << 24
|
||||||
DETUMBLE = 2 << 24
|
DETUMBLE = 2 << 24
|
||||||
@ -42,10 +42,10 @@ class Info(str, enum.Enum):
|
|||||||
|
|
||||||
|
|
||||||
HANDLER_LIST: Dict[str, Tuple[int, str]] = {
|
HANDLER_LIST: Dict[str, Tuple[int, str]] = {
|
||||||
OpCodes.OFF: (AcsModes.OFF, Info.OFF),
|
OpCode.OFF: (AcsMode.OFF, Info.OFF),
|
||||||
OpCodes.IDLE: (AcsModes.IDLE, Info.IDLE),
|
OpCode.IDLE: (AcsMode.IDLE, Info.IDLE),
|
||||||
OpCodes.SAFE: (AcsModes.SAFE, Info.SAFE),
|
OpCode.SAFE: (AcsMode.SAFE, Info.SAFE),
|
||||||
OpCodes.DETUMBLE: (AcsModes.DETUMBLE, Info.DETUMBLE),
|
OpCode.DETUMBLE: (AcsMode.DETUMBLE, Info.DETUMBLE),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -54,7 +54,7 @@ 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:
|
if op_code in OpCode.REPORT_ALL_MODES:
|
||||||
q.add_log_cmd(f"{info_prefix}: {Info.REPORT_ALL_MODES}")
|
q.add_log_cmd(f"{info_prefix}: {Info.REPORT_ALL_MODES}")
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
PusTelecommand(
|
PusTelecommand(
|
||||||
@ -78,8 +78,8 @@ def build_acs_subsystem_cmd(p: ServiceProviderParams):
|
|||||||
@tmtc_definitions_provider
|
@tmtc_definitions_provider
|
||||||
def add_acs_subsystem_cmds(defs: TmtcDefinitionWrapper):
|
def add_acs_subsystem_cmds(defs: TmtcDefinitionWrapper):
|
||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
oce.add(OpCodes.OFF, Info.OFF)
|
oce.add(OpCode.OFF, Info.OFF)
|
||||||
oce.add(OpCodes.SAFE, Info.SAFE)
|
oce.add(OpCode.SAFE, Info.SAFE)
|
||||||
oce.add(OpCodes.IDLE, Info.IDLE)
|
oce.add(OpCode.IDLE, Info.IDLE)
|
||||||
oce.add(OpCodes.REPORT_ALL_MODES, Info.REPORT_ALL_MODES)
|
oce.add(OpCode.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)
|
||||||
|
@ -27,14 +27,14 @@ from tmtccmd.util import ObjectIdU32
|
|||||||
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
||||||
|
|
||||||
|
|
||||||
class OpCodes:
|
class OpCode:
|
||||||
ON = ["on"]
|
ON = ["on"]
|
||||||
NORMAL = ["normal"]
|
NORMAL = ["normal"]
|
||||||
OFF = ["off"]
|
OFF = ["off"]
|
||||||
SET_DIPOLE = ["set_dipole"]
|
SET_DIPOLE = ["set_dipole"]
|
||||||
|
|
||||||
|
|
||||||
class ImtqSetIds:
|
class ImtqSetId:
|
||||||
ENG_HK_SET = 1
|
ENG_HK_SET = 1
|
||||||
CAL_MTM_SET = 2
|
CAL_MTM_SET = 2
|
||||||
RAW_MTM_SET = 3
|
RAW_MTM_SET = 3
|
||||||
@ -46,7 +46,7 @@ class ImtqSetIds:
|
|||||||
NEGATIVE_Z_TEST = 9
|
NEGATIVE_Z_TEST = 9
|
||||||
|
|
||||||
|
|
||||||
class ImtqActionIds:
|
class ImtqActionId:
|
||||||
start_actuation_dipole = bytearray([0x0, 0x0, 0x0, 0x02])
|
start_actuation_dipole = bytearray([0x0, 0x0, 0x0, 0x02])
|
||||||
get_commanded_dipole = bytearray([0x0, 0x0, 0x0, 0x03])
|
get_commanded_dipole = bytearray([0x0, 0x0, 0x0, 0x03])
|
||||||
perform_positive_x_test = bytearray([0x0, 0x0, 0x0, 0x07])
|
perform_positive_x_test = bytearray([0x0, 0x0, 0x0, 0x07])
|
||||||
@ -63,16 +63,16 @@ class ImtqActionIds:
|
|||||||
@tmtc_definitions_provider
|
@tmtc_definitions_provider
|
||||||
def add_imtq_cmds(defs: TmtcDefinitionWrapper):
|
def add_imtq_cmds(defs: TmtcDefinitionWrapper):
|
||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
oce.add(OpCodes.OFF, "Mode Off")
|
oce.add(OpCode.OFF, "Mode Off")
|
||||||
oce.add(OpCodes.ON, "Mode On")
|
oce.add(OpCode.ON, "Mode On")
|
||||||
oce.add(OpCodes.NORMAL, "Mode Normal")
|
oce.add(OpCode.NORMAL, "Mode Normal")
|
||||||
oce.add("3", "IMTQ perform pos X self test")
|
oce.add("3", "IMTQ perform pos X self test")
|
||||||
oce.add("4", "IMTQ perform neg X self test")
|
oce.add("4", "IMTQ perform neg X self test")
|
||||||
oce.add("5", "IMTQ perform pos Y self test")
|
oce.add("5", "IMTQ perform pos Y self test")
|
||||||
oce.add("6", "IMTQ perform neg Y self test")
|
oce.add("6", "IMTQ perform neg Y self test")
|
||||||
oce.add("7", "IMTQ perform pos Z self test")
|
oce.add("7", "IMTQ perform pos Z self test")
|
||||||
oce.add("8", "IMTQ perform neg Z self test")
|
oce.add("8", "IMTQ perform neg Z self test")
|
||||||
oce.add(OpCodes.SET_DIPOLE, "IMTQ command dipole")
|
oce.add(OpCode.SET_DIPOLE, "IMTQ command dipole")
|
||||||
oce.add("10", "IMTQ get commanded dipole")
|
oce.add("10", "IMTQ get commanded dipole")
|
||||||
oce.add("11", "IMTQ get engineering hk set")
|
oce.add("11", "IMTQ get engineering hk set")
|
||||||
oce.add("12", "IMTQ get calibrated MTM measurement one shot")
|
oce.add("12", "IMTQ get calibrated MTM measurement one shot")
|
||||||
@ -85,92 +85,92 @@ def pack_imtq_test_into(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_cod
|
|||||||
f"Testing ISIS IMTQ handler with object id: {object_id.as_hex_string}"
|
f"Testing ISIS IMTQ handler with object id: {object_id.as_hex_string}"
|
||||||
)
|
)
|
||||||
|
|
||||||
if op_code in OpCodes.OFF:
|
if op_code in OpCode.OFF:
|
||||||
q.add_log_cmd("IMTQ: Set mode off")
|
q.add_log_cmd("IMTQ: Set mode off")
|
||||||
command = pack_mode_data(object_id.as_bytes, Modes.OFF, 0)
|
command = pack_mode_data(object_id.as_bytes, Modes.OFF, 0)
|
||||||
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command))
|
||||||
if op_code in OpCodes.ON:
|
if op_code in OpCode.ON:
|
||||||
q.add_log_cmd("IMTQ: Set mode on")
|
q.add_log_cmd("IMTQ: Set mode on")
|
||||||
command = pack_mode_data(object_id.as_bytes, Modes.ON, 0)
|
command = pack_mode_data(object_id.as_bytes, Modes.ON, 0)
|
||||||
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command))
|
||||||
if op_code in OpCodes.NORMAL:
|
if op_code in OpCode.NORMAL:
|
||||||
q.add_log_cmd("IMTQ: Mode Normal")
|
q.add_log_cmd("IMTQ: Mode Normal")
|
||||||
command = pack_mode_data(object_id.as_bytes, Modes.NORMAL, 0)
|
command = pack_mode_data(object_id.as_bytes, Modes.NORMAL, 0)
|
||||||
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command))
|
||||||
if op_code == "3":
|
if op_code == "3":
|
||||||
q.add_log_cmd("IMTQ: Perform positive x self test")
|
q.add_log_cmd("IMTQ: Perform positive x self test")
|
||||||
command = object_id.as_bytes + ImtqActionIds.perform_positive_x_test
|
command = object_id.as_bytes + ImtqActionId.perform_positive_x_test
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
|
|
||||||
q.add_log_cmd("IMTQ: Initiate reading of positive x self test results")
|
q.add_log_cmd("IMTQ: Initiate reading of positive x self test results")
|
||||||
command = object_id.as_bytes + ImtqActionIds.read_self_test_results
|
command = object_id.as_bytes + ImtqActionId.read_self_test_results
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
|
|
||||||
q.add_log_cmd("IMTQ: Request dataset with positive x self test results")
|
q.add_log_cmd("IMTQ: Request dataset with positive x self test results")
|
||||||
sid = make_sid(object_id.as_bytes, ImtqSetIds.POSITIVE_X_TEST)
|
sid = make_sid(object_id.as_bytes, ImtqSetId.POSITIVE_X_TEST)
|
||||||
q.add_pus_tc(generate_one_hk_command(sid))
|
q.add_pus_tc(generate_one_hk_command(sid))
|
||||||
|
|
||||||
if op_code == "4":
|
if op_code == "4":
|
||||||
q.add_log_cmd("IMTQ: Perform negative x self test")
|
q.add_log_cmd("IMTQ: Perform negative x self test")
|
||||||
command = object_id.as_bytes + ImtqActionIds.perform_negative_x_test
|
command = object_id.as_bytes + ImtqActionId.perform_negative_x_test
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
q.add_log_cmd("IMTQ: Initiate reading of negative x self test results")
|
q.add_log_cmd("IMTQ: Initiate reading of negative x self test results")
|
||||||
command = object_id.as_bytes + ImtqActionIds.read_self_test_results
|
command = object_id.as_bytes + ImtqActionId.read_self_test_results
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
q.add_log_cmd("IMTQ: Request dataset with negative x self test results")
|
q.add_log_cmd("IMTQ: Request dataset with negative x self test results")
|
||||||
sid = make_sid(object_id.as_bytes, ImtqSetIds.NEGATIVE_X_TEST)
|
sid = make_sid(object_id.as_bytes, ImtqSetId.NEGATIVE_X_TEST)
|
||||||
q.add_pus_tc(generate_one_hk_command(sid))
|
q.add_pus_tc(generate_one_hk_command(sid))
|
||||||
|
|
||||||
if op_code == "5":
|
if op_code == "5":
|
||||||
q.add_log_cmd("IMTQ: Perform positive y self test")
|
q.add_log_cmd("IMTQ: Perform positive y self test")
|
||||||
command = object_id.as_bytes + ImtqActionIds.perform_positive_y_test
|
command = object_id.as_bytes + ImtqActionId.perform_positive_y_test
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
q.add_log_cmd("IMTQ: Initiate reading of positive y self test results")
|
q.add_log_cmd("IMTQ: Initiate reading of positive y self test results")
|
||||||
command = object_id.as_bytes + ImtqActionIds.read_self_test_results
|
command = object_id.as_bytes + ImtqActionId.read_self_test_results
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
|
|
||||||
q.add_log_cmd("IMTQ: Request dataset with positive y self test results")
|
q.add_log_cmd("IMTQ: Request dataset with positive y self test results")
|
||||||
sid = make_sid(object_id.as_bytes, ImtqSetIds.POSITIVE_Y_TEST)
|
sid = make_sid(object_id.as_bytes, ImtqSetId.POSITIVE_Y_TEST)
|
||||||
q.add_pus_tc(generate_one_hk_command(sid))
|
q.add_pus_tc(generate_one_hk_command(sid))
|
||||||
|
|
||||||
if op_code == "6":
|
if op_code == "6":
|
||||||
q.add_log_cmd("IMTQ: Perform negative y self test")
|
q.add_log_cmd("IMTQ: Perform negative y self test")
|
||||||
command = object_id.as_bytes + ImtqActionIds.perform_negative_y_test
|
command = object_id.as_bytes + ImtqActionId.perform_negative_y_test
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
|
|
||||||
q.add_log_cmd("IMTQ: Initiate reading of negative y self test results")
|
q.add_log_cmd("IMTQ: Initiate reading of negative y self test results")
|
||||||
command = object_id.as_bytes + ImtqActionIds.read_self_test_results
|
command = object_id.as_bytes + ImtqActionId.read_self_test_results
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
|
|
||||||
q.add_log_cmd("IMTQ: Request dataset with negative y self test results")
|
q.add_log_cmd("IMTQ: Request dataset with negative y self test results")
|
||||||
sid = make_sid(object_id.as_bytes, ImtqSetIds.NEGATIVE_Y_TEST)
|
sid = make_sid(object_id.as_bytes, ImtqSetId.NEGATIVE_Y_TEST)
|
||||||
q.add_pus_tc(generate_one_hk_command(sid))
|
q.add_pus_tc(generate_one_hk_command(sid))
|
||||||
|
|
||||||
if op_code == "7":
|
if op_code == "7":
|
||||||
q.add_log_cmd("IMTQ: Perform positive z self test")
|
q.add_log_cmd("IMTQ: Perform positive z self test")
|
||||||
command = object_id.as_bytes + ImtqActionIds.perform_positive_z_test
|
command = object_id.as_bytes + ImtqActionId.perform_positive_z_test
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
|
|
||||||
q.add_log_cmd("IMTQ: Initiate reading of positive z self test results")
|
q.add_log_cmd("IMTQ: Initiate reading of positive z self test results")
|
||||||
command = object_id.as_bytes + ImtqActionIds.read_self_test_results
|
command = object_id.as_bytes + ImtqActionId.read_self_test_results
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
|
|
||||||
q.add_log_cmd("IMTQ: Request dataset with positive z self test results")
|
q.add_log_cmd("IMTQ: Request dataset with positive z self test results")
|
||||||
sid = make_sid(object_id.as_bytes, ImtqSetIds.POSITIVE_Y_TEST)
|
sid = make_sid(object_id.as_bytes, ImtqSetId.POSITIVE_Y_TEST)
|
||||||
q.add_pus_tc(generate_one_hk_command(sid))
|
q.add_pus_tc(generate_one_hk_command(sid))
|
||||||
|
|
||||||
if op_code == "8":
|
if op_code == "8":
|
||||||
q.add_log_cmd("IMTQ: Perform negative z self test")
|
q.add_log_cmd("IMTQ: Perform negative z self test")
|
||||||
command = object_id.as_bytes + ImtqActionIds.perform_negative_z_test
|
command = object_id.as_bytes + ImtqActionId.perform_negative_z_test
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
q.add_log_cmd("IMTQ: Initiate reading of negative z self test results")
|
q.add_log_cmd("IMTQ: Initiate reading of negative z self test results")
|
||||||
command = object_id.as_bytes + ImtqActionIds.read_self_test_results
|
command = object_id.as_bytes + ImtqActionId.read_self_test_results
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
q.add_log_cmd("IMTQ: Request dataset with negative z self test results")
|
q.add_log_cmd("IMTQ: Request dataset with negative z self test results")
|
||||||
sid = make_sid(object_id.as_bytes, ImtqSetIds.NEGATIVE_Z_TEST)
|
sid = make_sid(object_id.as_bytes, ImtqSetId.NEGATIVE_Z_TEST)
|
||||||
q.add_pus_tc(generate_one_hk_command(sid))
|
q.add_pus_tc(generate_one_hk_command(sid))
|
||||||
|
|
||||||
if op_code in OpCodes.SET_DIPOLE:
|
if op_code in OpCode.SET_DIPOLE:
|
||||||
x_dipole = int(input("Specify X dipole [range [0, 2000] * 10^-4 * Am^2]: "))
|
x_dipole = int(input("Specify X dipole [range [0, 2000] * 10^-4 * Am^2]: "))
|
||||||
y_dipole = int(input("Specify Y dipole [range [0, 2000] * 10^-4 * Am^2]: "))
|
y_dipole = int(input("Specify Y dipole [range [0, 2000] * 10^-4 * Am^2]: "))
|
||||||
z_dipole = int(input("Specify Z dipole [range [0, 2000] * 10^-4 * Am^2]: "))
|
z_dipole = int(input("Specify Z dipole [range [0, 2000] * 10^-4 * Am^2]: "))
|
||||||
@ -192,14 +192,14 @@ def pack_imtq_test_into(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_cod
|
|||||||
|
|
||||||
if op_code == "10":
|
if op_code == "10":
|
||||||
q.add_log_cmd("IMTQ: Get commanded dipole")
|
q.add_log_cmd("IMTQ: Get commanded dipole")
|
||||||
command = object_id.as_bytes + ImtqActionIds.get_commanded_dipole
|
command = object_id.as_bytes + ImtqActionId.get_commanded_dipole
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
|
|
||||||
if op_code == "11":
|
if op_code == "11":
|
||||||
q.add_log_cmd("IMTQ: Get engineering hk set")
|
q.add_log_cmd("IMTQ: Get engineering hk set")
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
generate_one_diag_command(
|
generate_one_diag_command(
|
||||||
sid=make_sid(object_id=object_id.as_bytes, set_id=ImtqSetIds.ENG_HK_SET)
|
sid=make_sid(object_id=object_id.as_bytes, set_id=ImtqSetId.ENG_HK_SET)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -207,9 +207,7 @@ def pack_imtq_test_into(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_cod
|
|||||||
q.add_log_cmd("IMTQ: Get calibrated MTM hk set")
|
q.add_log_cmd("IMTQ: Get calibrated MTM hk set")
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
generate_one_diag_command(
|
generate_one_diag_command(
|
||||||
sid=make_sid(
|
sid=make_sid(object_id=object_id.as_bytes, set_id=ImtqSetId.CAL_MTM_SET)
|
||||||
object_id=object_id.as_bytes, set_id=ImtqSetIds.CAL_MTM_SET
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -217,9 +215,7 @@ def pack_imtq_test_into(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_cod
|
|||||||
q.add_log_cmd("IMTQ: Get raw MTM hk set")
|
q.add_log_cmd("IMTQ: Get raw MTM hk set")
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
generate_one_diag_command(
|
generate_one_diag_command(
|
||||||
sid=make_sid(
|
sid=make_sid(object_id=object_id.as_bytes, set_id=ImtqSetId.RAW_MTM_SET)
|
||||||
object_id=object_id.as_bytes, set_id=ImtqSetIds.RAW_MTM_SET
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -236,7 +232,7 @@ def pack_dipole_command(
|
|||||||
When set to 0, the dipole will be generated until a new dipole actuation
|
When set to 0, the dipole will be generated until a new dipole actuation
|
||||||
command is sent.
|
command is sent.
|
||||||
"""
|
"""
|
||||||
action_id = ImtqActionIds.start_actuation_dipole
|
action_id = ImtqActionId.start_actuation_dipole
|
||||||
command = object_id + action_id
|
command = object_id + action_id
|
||||||
x_dipole = int(round(x_dipole))
|
x_dipole = int(round(x_dipole))
|
||||||
y_dipole = int(round(y_dipole))
|
y_dipole = int(round(y_dipole))
|
||||||
|
@ -26,7 +26,7 @@ from tmtccmd.util import ObjectIdU32
|
|||||||
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
||||||
|
|
||||||
|
|
||||||
class OpCodesDevs:
|
class OpCodesDev:
|
||||||
SPEED = ["0", "speed"]
|
SPEED = ["0", "speed"]
|
||||||
ON = ["1", "on"]
|
ON = ["1", "on"]
|
||||||
NML = ["2", "nml"]
|
NML = ["2", "nml"]
|
||||||
@ -37,7 +37,7 @@ class OpCodesDevs:
|
|||||||
DISABLE_STATUS_HK = ["7", "disable_status_hk"]
|
DISABLE_STATUS_HK = ["7", "disable_status_hk"]
|
||||||
|
|
||||||
|
|
||||||
class InfoDevs:
|
class InfoDev:
|
||||||
SPEED = "Set speed"
|
SPEED = "Set speed"
|
||||||
ON = "Set On"
|
ON = "Set On"
|
||||||
NML = "Set Normal"
|
NML = "Set Normal"
|
||||||
@ -64,14 +64,14 @@ class InfoAss:
|
|||||||
ALL_SPEED_OFF = "Speed down to 0"
|
ALL_SPEED_OFF = "Speed down to 0"
|
||||||
|
|
||||||
|
|
||||||
class RwSetIds:
|
class RwSetId:
|
||||||
STATUS_SET_ID = 4
|
STATUS_SET_ID = 4
|
||||||
TEMPERATURE_SET_ID = 8
|
TEMPERATURE_SET_ID = 8
|
||||||
LAST_RESET = 2
|
LAST_RESET = 2
|
||||||
TM_SET = 9
|
TM_SET = 9
|
||||||
|
|
||||||
|
|
||||||
class RwCommandIds:
|
class RwCommandId:
|
||||||
RESET_MCU = bytearray([0x0, 0x0, 0x0, 0x01])
|
RESET_MCU = bytearray([0x0, 0x0, 0x0, 0x01])
|
||||||
# Reads status information from reaction wheel into dataset with id 4
|
# Reads status information from reaction wheel into dataset with id 4
|
||||||
GET_RW_STATUS = bytearray([0x0, 0x0, 0x0, 0x04])
|
GET_RW_STATUS = bytearray([0x0, 0x0, 0x0, 0x04])
|
||||||
@ -94,14 +94,14 @@ class RampTime:
|
|||||||
@tmtc_definitions_provider
|
@tmtc_definitions_provider
|
||||||
def add_rw_cmds(defs: TmtcDefinitionWrapper):
|
def add_rw_cmds(defs: TmtcDefinitionWrapper):
|
||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
oce.add(info=InfoDevs.SPEED, keys=OpCodesDevs.SPEED)
|
oce.add(info=InfoDev.SPEED, keys=OpCodesDev.SPEED)
|
||||||
oce.add(info=InfoDevs.ON, keys=OpCodesDevs.ON)
|
oce.add(info=InfoDev.ON, keys=OpCodesDev.ON)
|
||||||
oce.add(info=InfoDevs.OFF, keys=OpCodesDevs.OFF)
|
oce.add(info=InfoDev.OFF, keys=OpCodesDev.OFF)
|
||||||
oce.add(info=InfoDevs.NML, keys=OpCodesDevs.NML)
|
oce.add(info=InfoDev.NML, keys=OpCodesDev.NML)
|
||||||
oce.add(info=InfoDevs.GET_STATUS, keys=OpCodesDevs.GET_STATUS)
|
oce.add(info=InfoDev.GET_STATUS, keys=OpCodesDev.GET_STATUS)
|
||||||
oce.add(info=InfoDevs.GET_TM, keys=OpCodesDevs.GET_TM)
|
oce.add(info=InfoDev.GET_TM, keys=OpCodesDev.GET_TM)
|
||||||
oce.add(info=InfoDevs.ENABLE_STATUS_HK, keys=OpCodesDevs.ENABLE_STATUS_HK)
|
oce.add(info=InfoDev.ENABLE_STATUS_HK, keys=OpCodesDev.ENABLE_STATUS_HK)
|
||||||
oce.add(info=InfoDevs.DISABLE_STATUS_HK, keys=OpCodesDevs.DISABLE_STATUS_HK)
|
oce.add(info=InfoDev.DISABLE_STATUS_HK, keys=OpCodesDev.DISABLE_STATUS_HK)
|
||||||
defs.add_service(
|
defs.add_service(
|
||||||
name=CustomServiceList.REACTION_WHEEL_1.value,
|
name=CustomServiceList.REACTION_WHEEL_1.value,
|
||||||
info="Reaction Wheel 1",
|
info="Reaction Wheel 1",
|
||||||
@ -138,56 +138,56 @@ def add_rw_cmds(defs: TmtcDefinitionWrapper):
|
|||||||
def pack_single_rw_test_into(
|
def pack_single_rw_test_into(
|
||||||
object_id: bytes, rw_idx: int, q: DefaultPusQueueHelper, op_code: str
|
object_id: bytes, rw_idx: int, q: DefaultPusQueueHelper, op_code: str
|
||||||
):
|
):
|
||||||
if op_code in OpCodesDevs.SPEED:
|
if op_code in OpCodesDev.SPEED:
|
||||||
speed, ramp_time = prompt_speed_ramp_time()
|
speed, ramp_time = prompt_speed_ramp_time()
|
||||||
q.add_log_cmd(
|
q.add_log_cmd(
|
||||||
f"RW {rw_idx}: {InfoDevs.SPEED} with target "
|
f"RW {rw_idx}: {InfoDev.SPEED} with target "
|
||||||
f"speed {speed / 10.0} RPM and {ramp_time} ms ramp time"
|
f"speed {speed / 10.0} RPM and {ramp_time} ms ramp time"
|
||||||
)
|
)
|
||||||
q.add_pus_tc(pack_set_speed_command(object_id, speed, ramp_time))
|
q.add_pus_tc(pack_set_speed_command(object_id, speed, ramp_time))
|
||||||
|
|
||||||
if op_code in OpCodesDevs.ON:
|
if op_code in OpCodesDev.ON:
|
||||||
q.add_log_cmd(f"RW {rw_idx}: {InfoDevs.ON}")
|
q.add_log_cmd(f"RW {rw_idx}: {InfoDev.ON}")
|
||||||
mode_data = pack_mode_data(object_id, Modes.ON, 0)
|
mode_data = pack_mode_data(object_id, Modes.ON, 0)
|
||||||
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data))
|
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data))
|
||||||
|
|
||||||
if op_code in OpCodesDevs.NML:
|
if op_code in OpCodesDev.NML:
|
||||||
q.add_log_cmd(f"RW {rw_idx}: {InfoDevs.NML}")
|
q.add_log_cmd(f"RW {rw_idx}: {InfoDev.NML}")
|
||||||
mode_data = pack_mode_data(object_id, Modes.NORMAL, 0)
|
mode_data = pack_mode_data(object_id, Modes.NORMAL, 0)
|
||||||
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data))
|
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data))
|
||||||
|
|
||||||
if op_code in OpCodesDevs.OFF:
|
if op_code in OpCodesDev.OFF:
|
||||||
q.add_log_cmd(f"RW {rw_idx}: {InfoDevs.OFF}")
|
q.add_log_cmd(f"RW {rw_idx}: {InfoDev.OFF}")
|
||||||
mode_data = pack_mode_data(object_id, Modes.OFF, 0)
|
mode_data = pack_mode_data(object_id, Modes.OFF, 0)
|
||||||
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data))
|
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data))
|
||||||
|
|
||||||
if op_code in OpCodesDevs.GET_TM:
|
if op_code in OpCodesDev.GET_TM:
|
||||||
q.add_log_cmd(f"RW {rw_idx}: {InfoDevs.GET_TM}")
|
q.add_log_cmd(f"RW {rw_idx}: {InfoDev.GET_TM}")
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
generate_one_hk_command(
|
generate_one_hk_command(
|
||||||
sid=make_sid(object_id=object_id, set_id=RwSetIds.TM_SET)
|
sid=make_sid(object_id=object_id, set_id=RwSetId.TM_SET)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if op_code in OpCodesDevs.GET_STATUS:
|
if op_code in OpCodesDev.GET_STATUS:
|
||||||
q.add_log_cmd(f"RW {rw_idx}: {InfoDevs.GET_STATUS}")
|
q.add_log_cmd(f"RW {rw_idx}: {InfoDev.GET_STATUS}")
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
generate_one_diag_command(
|
generate_one_diag_command(
|
||||||
sid=make_sid(object_id=object_id, set_id=RwSetIds.STATUS_SET_ID)
|
sid=make_sid(object_id=object_id, set_id=RwSetId.STATUS_SET_ID)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if op_code in OpCodesDevs.ENABLE_STATUS_HK:
|
if op_code in OpCodesDev.ENABLE_STATUS_HK:
|
||||||
q.add_log_cmd(f"RW {rw_idx}: {InfoDevs.ENABLE_STATUS_HK}")
|
q.add_log_cmd(f"RW {rw_idx}: {InfoDev.ENABLE_STATUS_HK}")
|
||||||
interval = float(input("Please enter HK interval in floating point seconds: "))
|
interval = float(input("Please enter HK interval in floating point seconds: "))
|
||||||
cmds = enable_periodic_hk_command_with_interval(
|
cmds = enable_periodic_hk_command_with_interval(
|
||||||
True, make_sid(object_id, RwSetIds.STATUS_SET_ID), interval
|
True, make_sid(object_id, RwSetId.STATUS_SET_ID), interval
|
||||||
)
|
)
|
||||||
for cmd in cmds:
|
for cmd in cmds:
|
||||||
q.add_pus_tc(cmd)
|
q.add_pus_tc(cmd)
|
||||||
if op_code in OpCodesDevs.DISABLE_STATUS_HK:
|
if op_code in OpCodesDev.DISABLE_STATUS_HK:
|
||||||
q.add_log_cmd(f"RW {rw_idx}: {InfoDevs.DISABLE_STATUS_HK}")
|
q.add_log_cmd(f"RW {rw_idx}: {InfoDev.DISABLE_STATUS_HK}")
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
disable_periodic_hk_command(
|
disable_periodic_hk_command(
|
||||||
True, make_sid(object_id, RwSetIds.STATUS_SET_ID)
|
True, make_sid(object_id, RwSetId.STATUS_SET_ID)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -264,7 +264,7 @@ def pack_set_speed_command(
|
|||||||
ramp_time_ms > 0 and (ramp_time_ms > 20000 or ramp_time_ms < 10)
|
ramp_time_ms > 0 and (ramp_time_ms > 20000 or ramp_time_ms < 10)
|
||||||
):
|
):
|
||||||
raise ValueError("Invalid Ramp Speed time. Allowed range is [10-20000] ms")
|
raise ValueError("Invalid Ramp Speed time. Allowed range is [10-20000] ms")
|
||||||
command_id = RwCommandIds.SET_SPEED
|
command_id = RwCommandId.SET_SPEED
|
||||||
command = bytearray()
|
command = bytearray()
|
||||||
command += object_id + command_id
|
command += object_id + command_id
|
||||||
command = command + struct.pack("!i", speed)
|
command = command + struct.pack("!i", speed)
|
||||||
@ -279,7 +279,7 @@ def handle_rw_hk_data(
|
|||||||
|
|
||||||
pw = PrintWrapper(printer)
|
pw = PrintWrapper(printer)
|
||||||
current_idx = 0
|
current_idx = 0
|
||||||
if set_id == RwSetIds.STATUS_SET_ID:
|
if set_id == RwSetId.STATUS_SET_ID:
|
||||||
pw.dlog(
|
pw.dlog(
|
||||||
f"Received Status HK (ID {set_id}) from Reaction Wheel {object_id.name}"
|
f"Received Status HK (ID {set_id}) from Reaction Wheel {object_id.name}"
|
||||||
)
|
)
|
||||||
@ -303,7 +303,7 @@ def handle_rw_hk_data(
|
|||||||
f"1: High Current Mode (0.6 A)"
|
f"1: High Current Mode (0.6 A)"
|
||||||
)
|
)
|
||||||
printer.print_validity_buffer(hk_data[current_idx:], 5)
|
printer.print_validity_buffer(hk_data[current_idx:], 5)
|
||||||
if set_id == RwSetIds.LAST_RESET:
|
if set_id == RwSetId.LAST_RESET:
|
||||||
pw.dlog(
|
pw.dlog(
|
||||||
f"Received Last Reset HK (ID {set_id}) from Reaction Wheel {object_id.name}"
|
f"Received Last Reset HK (ID {set_id}) from Reaction Wheel {object_id.name}"
|
||||||
)
|
)
|
||||||
@ -317,7 +317,7 @@ def handle_rw_hk_data(
|
|||||||
f"Last Non-Cleared (Cached) Reset Status {last_not_cleared_reset_status} | "
|
f"Last Non-Cleared (Cached) Reset Status {last_not_cleared_reset_status} | "
|
||||||
f"Current Reset Status {current_reset_status}"
|
f"Current Reset Status {current_reset_status}"
|
||||||
)
|
)
|
||||||
if set_id == RwSetIds.TM_SET:
|
if set_id == RwSetId.TM_SET:
|
||||||
pw.dlog(f"Received TM HK (ID {set_id}) from Reaction Wheel {object_id.name}")
|
pw.dlog(f"Received TM HK (ID {set_id}) from Reaction Wheel {object_id.name}")
|
||||||
fmt_str = "!BiffBBiiIIIIIIIIIIIIIIII"
|
fmt_str = "!BiffBBiiIIIIIIIIIIIIIIII"
|
||||||
inc_len = struct.calcsize(fmt_str)
|
inc_len = struct.calcsize(fmt_str)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
from eive_tmtc.config.definitions import CustomServiceList
|
from eive_tmtc.config.definitions import CustomServiceList
|
||||||
from eive_tmtc.config.object_ids import SUS_BOARD_ASS_ID
|
from eive_tmtc.config.object_ids import SUS_BOARD_ASS_ID
|
||||||
from eive_tmtc.tmtc.acs.acs_board import DualSideSubmodes
|
from eive_tmtc.tmtc.acs.acs_board import DualSideSubmode
|
||||||
from eive_tmtc.tmtc.common import pack_mode_cmd_with_info
|
from eive_tmtc.tmtc.common import pack_mode_cmd_with_info
|
||||||
from tmtccmd.config.tmtc import (
|
from tmtccmd.config.tmtc import (
|
||||||
tmtc_definitions_provider,
|
tmtc_definitions_provider,
|
||||||
@ -12,7 +12,7 @@ from tmtccmd.tc.decorator import ServiceProviderParams
|
|||||||
from tmtccmd.tc.pus_200_fsfw_modes import Modes
|
from tmtccmd.tc.pus_200_fsfw_modes import Modes
|
||||||
|
|
||||||
|
|
||||||
class SusOpCodes:
|
class SusOpCode:
|
||||||
SUS_ASS_NOM_SIDE = ["0", "nom"]
|
SUS_ASS_NOM_SIDE = ["0", "nom"]
|
||||||
SUS_ASS_RED_SIDE = ["1", "red"]
|
SUS_ASS_RED_SIDE = ["1", "red"]
|
||||||
SUS_ASS_DUAL_MODE = ["2", "dual"]
|
SUS_ASS_DUAL_MODE = ["2", "dual"]
|
||||||
@ -20,23 +20,23 @@ class SusOpCodes:
|
|||||||
|
|
||||||
|
|
||||||
def pack_sus_cmds(q: DefaultPusQueueHelper, op_code: str):
|
def pack_sus_cmds(q: DefaultPusQueueHelper, op_code: str):
|
||||||
if op_code in SusOpCodes.SUS_ASS_NOM_SIDE:
|
if op_code in SusOpCode.SUS_ASS_NOM_SIDE:
|
||||||
pack_mode_cmd_with_info(
|
pack_mode_cmd_with_info(
|
||||||
object_id=SUS_BOARD_ASS_ID,
|
object_id=SUS_BOARD_ASS_ID,
|
||||||
mode=Modes.NORMAL,
|
mode=Modes.NORMAL,
|
||||||
submode=DualSideSubmodes.A_SIDE,
|
submode=DualSideSubmode.A_SIDE,
|
||||||
q=q,
|
q=q,
|
||||||
info="Switching to SUS board to nominal side",
|
info="Switching to SUS board to nominal side",
|
||||||
)
|
)
|
||||||
if op_code in SusOpCodes.SUS_ASS_RED_SIDE:
|
if op_code in SusOpCode.SUS_ASS_RED_SIDE:
|
||||||
pack_mode_cmd_with_info(
|
pack_mode_cmd_with_info(
|
||||||
object_id=SUS_BOARD_ASS_ID,
|
object_id=SUS_BOARD_ASS_ID,
|
||||||
mode=Modes.NORMAL,
|
mode=Modes.NORMAL,
|
||||||
submode=DualSideSubmodes.B_SIDE,
|
submode=DualSideSubmode.B_SIDE,
|
||||||
q=q,
|
q=q,
|
||||||
info="Switching to SUS board to redundant side",
|
info="Switching to SUS board to redundant side",
|
||||||
)
|
)
|
||||||
if op_code in SusOpCodes.SUS_ASS_OFF:
|
if op_code in SusOpCode.SUS_ASS_OFF:
|
||||||
pack_mode_cmd_with_info(
|
pack_mode_cmd_with_info(
|
||||||
object_id=SUS_BOARD_ASS_ID,
|
object_id=SUS_BOARD_ASS_ID,
|
||||||
mode=Modes.OFF,
|
mode=Modes.OFF,
|
||||||
@ -44,11 +44,11 @@ def pack_sus_cmds(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
q=q,
|
q=q,
|
||||||
info="Switching SUS board off",
|
info="Switching SUS board off",
|
||||||
)
|
)
|
||||||
if op_code in SusOpCodes.SUS_ASS_DUAL_MODE:
|
if op_code in SusOpCode.SUS_ASS_DUAL_MODE:
|
||||||
pack_mode_cmd_with_info(
|
pack_mode_cmd_with_info(
|
||||||
object_id=SUS_BOARD_ASS_ID,
|
object_id=SUS_BOARD_ASS_ID,
|
||||||
mode=Modes.NORMAL,
|
mode=Modes.NORMAL,
|
||||||
submode=DualSideSubmodes.DUAL_SIDE,
|
submode=DualSideSubmode.DUAL_SIDE,
|
||||||
q=q,
|
q=q,
|
||||||
info="Switching to SUS board to dual side",
|
info="Switching to SUS board to dual side",
|
||||||
)
|
)
|
||||||
@ -65,19 +65,19 @@ def pack_sus_cmds_prvoider(p: ServiceProviderParams):
|
|||||||
def add_sus_board_cmds(defs: TmtcDefinitionWrapper):
|
def add_sus_board_cmds(defs: TmtcDefinitionWrapper):
|
||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
oce.add(
|
oce.add(
|
||||||
keys=SusOpCodes.SUS_ASS_NOM_SIDE,
|
keys=SusOpCode.SUS_ASS_NOM_SIDE,
|
||||||
info="Switch SUS board to nominal side",
|
info="Switch SUS board to nominal side",
|
||||||
)
|
)
|
||||||
oce.add(
|
oce.add(
|
||||||
keys=SusOpCodes.SUS_ASS_RED_SIDE,
|
keys=SusOpCode.SUS_ASS_RED_SIDE,
|
||||||
info="Switch SUS board to redundant side",
|
info="Switch SUS board to redundant side",
|
||||||
)
|
)
|
||||||
oce.add(
|
oce.add(
|
||||||
keys=SusOpCodes.SUS_ASS_OFF,
|
keys=SusOpCode.SUS_ASS_OFF,
|
||||||
info="Switch off SUS board",
|
info="Switch off SUS board",
|
||||||
)
|
)
|
||||||
oce.add(
|
oce.add(
|
||||||
keys=SusOpCodes.SUS_ASS_DUAL_MODE,
|
keys=SusOpCode.SUS_ASS_DUAL_MODE,
|
||||||
info="Switch SUS board to dual mode",
|
info="Switch SUS board to dual mode",
|
||||||
)
|
)
|
||||||
defs.add_service(
|
defs.add_service(
|
||||||
|
@ -12,12 +12,12 @@ from tmtccmd.tc.decorator import ServiceProviderParams
|
|||||||
from tmtccmd.tc.pus_200_fsfw_modes import Subservices as ModeSubservices
|
from tmtccmd.tc.pus_200_fsfw_modes import Subservices as ModeSubservices
|
||||||
|
|
||||||
|
|
||||||
class OpCodes(str, enum.Enum):
|
class OpCode(str, enum.Enum):
|
||||||
OFF = "off"
|
OFF = "off"
|
||||||
REPORT_ALL_MODES = "report_modes"
|
REPORT_ALL_MODES = "report_modes"
|
||||||
|
|
||||||
|
|
||||||
class PayloadModes(enum.IntEnum):
|
class PayloadMode(enum.IntEnum):
|
||||||
OFF = 0
|
OFF = 0
|
||||||
|
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ class Info(str, enum.Enum):
|
|||||||
|
|
||||||
|
|
||||||
HANDLER_LIST: Dict[str, Tuple[int, str]] = {
|
HANDLER_LIST: Dict[str, Tuple[int, str]] = {
|
||||||
OpCodes.OFF: (PayloadModes.OFF, Info.OFF),
|
OpCode.OFF: (PayloadMode.OFF, Info.OFF),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ 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:
|
if op_code in OpCode.REPORT_ALL_MODES:
|
||||||
q.add_log_cmd(f"{info_prefix}: {Info.REPORT_ALL_MODES}")
|
q.add_log_cmd(f"{info_prefix}: {Info.REPORT_ALL_MODES}")
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
PusTelecommand(
|
PusTelecommand(
|
||||||
@ -60,6 +60,6 @@ def build_acs_subsystem_cmd(p: ServiceProviderParams):
|
|||||||
@tmtc_definitions_provider
|
@tmtc_definitions_provider
|
||||||
def add_payload_subsystem_cmds(defs: TmtcDefinitionWrapper):
|
def add_payload_subsystem_cmds(defs: TmtcDefinitionWrapper):
|
||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
oce.add(OpCodes.OFF, Info.OFF)
|
oce.add(OpCode.OFF, Info.OFF)
|
||||||
oce.add(OpCodes.REPORT_ALL_MODES, Info.REPORT_ALL_MODES)
|
oce.add(OpCode.REPORT_ALL_MODES, Info.REPORT_ALL_MODES)
|
||||||
defs.add_service(CustomServiceList.PL_SS, "Payload Subsystem", oce)
|
defs.add_service(CustomServiceList.PL_SS, "Payload Subsystem", oce)
|
||||||
|
@ -16,7 +16,7 @@ from tmtccmd.tc import DefaultPusQueueHelper
|
|||||||
from tmtccmd.util import ObjectIdU32
|
from tmtccmd.util import ObjectIdU32
|
||||||
|
|
||||||
|
|
||||||
class ActionIds:
|
class ActionId:
|
||||||
DUMP_MRAM = 1
|
DUMP_MRAM = 1
|
||||||
|
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ def pack_ploc_memory_dumper_cmd(
|
|||||||
def pack_mram_dump_cmd(object_id: bytes) -> bytearray:
|
def pack_mram_dump_cmd(object_id: bytes) -> bytearray:
|
||||||
start = int(input("Start address: 0x"), 16)
|
start = int(input("Start address: 0x"), 16)
|
||||||
end = int(input("End address: 0x"), 16)
|
end = int(input("End address: 0x"), 16)
|
||||||
command = object_id + struct.pack("!I", ActionIds.DUMP_MRAM)
|
command = object_id + struct.pack("!I", ActionId.DUMP_MRAM)
|
||||||
command = command + struct.pack("!I", start)
|
command = command + struct.pack("!I", start)
|
||||||
command = command + struct.pack("!I", end)
|
command = command + struct.pack("!I", end)
|
||||||
return bytearray(command)
|
return bytearray(command)
|
||||||
|
@ -50,7 +50,7 @@ SEQ_FILE_DICT = {
|
|||||||
CARRIAGE_RETURN = 0xD
|
CARRIAGE_RETURN = 0xD
|
||||||
|
|
||||||
|
|
||||||
class CommandIds(enum.IntEnum):
|
class CommandId(enum.IntEnum):
|
||||||
TC_MEM_WRITE = 1
|
TC_MEM_WRITE = 1
|
||||||
TC_MEM_READ = 2
|
TC_MEM_READ = 2
|
||||||
FLASH_WRITE = 9
|
FLASH_WRITE = 9
|
||||||
@ -68,7 +68,7 @@ class CommandIds(enum.IntEnum):
|
|||||||
RELEASE_UART_TX = 21
|
RELEASE_UART_TX = 21
|
||||||
|
|
||||||
|
|
||||||
class OpCodes:
|
class OpCode:
|
||||||
ON = ["on"]
|
ON = ["on"]
|
||||||
OFF = ["off"]
|
OFF = ["off"]
|
||||||
NORMAL = ["normal"]
|
NORMAL = ["normal"]
|
||||||
@ -104,22 +104,22 @@ class PlocReplyIds(enum.IntEnum):
|
|||||||
@tmtc_definitions_provider
|
@tmtc_definitions_provider
|
||||||
def add_ploc_mpsoc_cmds(defs: TmtcDefinitionWrapper):
|
def add_ploc_mpsoc_cmds(defs: TmtcDefinitionWrapper):
|
||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
oce.add(OpCodes.OFF, Info.OFF)
|
oce.add(OpCode.OFF, Info.OFF)
|
||||||
oce.add(OpCodes.ON, Info.ON)
|
oce.add(OpCode.ON, Info.ON)
|
||||||
oce.add(OpCodes.NORMAL, Info.NORMAL)
|
oce.add(OpCode.NORMAL, Info.NORMAL)
|
||||||
oce.add("3", "Ploc MPSoC: Memory write")
|
oce.add("3", "Ploc MPSoC: Memory write")
|
||||||
oce.add("4", "Ploc MPSoC: Memory read")
|
oce.add("4", "Ploc MPSoC: Memory read")
|
||||||
oce.add("5", "Ploc MPSoC: Flash write")
|
oce.add("5", "Ploc MPSoC: Flash write")
|
||||||
oce.add("6", "Ploc MPSoC: Flash delete")
|
oce.add("6", "Ploc MPSoC: Flash delete")
|
||||||
oce.add(OpCodes.REPLAY_START, Info.REPLAY_START)
|
oce.add(OpCode.REPLAY_START, Info.REPLAY_START)
|
||||||
oce.add("8", "Ploc MPSoC: Replay stop")
|
oce.add("8", "Ploc MPSoC: Replay stop")
|
||||||
oce.add(OpCodes.DOWNLINK_PWR_ON, Info.DOWNLINK_PWR_ON)
|
oce.add(OpCode.DOWNLINK_PWR_ON, Info.DOWNLINK_PWR_ON)
|
||||||
oce.add("10", "Ploc MPSoC: Downlink pwr off")
|
oce.add("10", "Ploc MPSoC: Downlink pwr off")
|
||||||
oce.add(OpCodes.REPLAY_WRITE_SEQ, Info.REPLAY_WRITE_SEQ)
|
oce.add(OpCode.REPLAY_WRITE_SEQ, Info.REPLAY_WRITE_SEQ)
|
||||||
oce.add("12", "Ploc MPSoC: OBSW reset sequence count")
|
oce.add("12", "Ploc MPSoC: OBSW reset sequence count")
|
||||||
oce.add(OpCodes.VERIFY_BOOT, "Ploc MPSoC: Read DEADBEEF address")
|
oce.add(OpCode.VERIFY_BOOT, "Ploc MPSoC: Read DEADBEEF address")
|
||||||
oce.add(OpCodes.MODE_REPLAY, Info.MODE_REPLAY)
|
oce.add(OpCode.MODE_REPLAY, Info.MODE_REPLAY)
|
||||||
oce.add(OpCodes.MODE_IDLE, Info.MODE_IDLE)
|
oce.add(OpCode.MODE_IDLE, Info.MODE_IDLE)
|
||||||
oce.add("16", "Ploc MPSoC: Tc cam command send")
|
oce.add("16", "Ploc MPSoC: Tc cam command send")
|
||||||
oce.add("17", "Ploc MPSoC: Set UART TX tristate")
|
oce.add("17", "Ploc MPSoC: Set UART TX tristate")
|
||||||
oce.add("18", "Ploc MPSoC: Relesase UART TX")
|
oce.add("18", "Ploc MPSoC: Relesase UART TX")
|
||||||
@ -136,15 +136,15 @@ def pack_ploc_mpsoc_commands(p: ServiceProviderParams):
|
|||||||
f"Generate command for PLOC MPSoC with object id: {object_id.as_hex_string}"
|
f"Generate command for PLOC MPSoC with object id: {object_id.as_hex_string}"
|
||||||
)
|
)
|
||||||
obyt = object_id.as_bytes
|
obyt = object_id.as_bytes
|
||||||
if op_code in OpCodes.OFF:
|
if op_code in OpCode.OFF:
|
||||||
q.add_log_cmd(f"{prefix}: {Info.OFF}")
|
q.add_log_cmd(f"{prefix}: {Info.OFF}")
|
||||||
command = pack_mode_data(obyt, Modes.OFF, 0)
|
command = pack_mode_data(obyt, Modes.OFF, 0)
|
||||||
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command))
|
||||||
if op_code in OpCodes.ON:
|
if op_code in OpCode.ON:
|
||||||
q.add_log_cmd(f"{prefix}: {Info.ON}")
|
q.add_log_cmd(f"{prefix}: {Info.ON}")
|
||||||
data = pack_mode_data(obyt, Modes.ON, 0)
|
data = pack_mode_data(obyt, Modes.ON, 0)
|
||||||
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data))
|
||||||
if op_code in OpCodes.NORMAL:
|
if op_code in OpCode.NORMAL:
|
||||||
q.add_log_cmd(f"{prefix}: {Info.NORMAL}")
|
q.add_log_cmd(f"{prefix}: {Info.NORMAL}")
|
||||||
data = pack_mode_data(object_id.as_bytes, Modes.NORMAL, 0)
|
data = pack_mode_data(object_id.as_bytes, Modes.NORMAL, 0)
|
||||||
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data))
|
||||||
@ -172,64 +172,64 @@ def pack_ploc_mpsoc_commands(p: ServiceProviderParams):
|
|||||||
q.add_log_cmd("PLOC MPSoC: Flash delete")
|
q.add_log_cmd("PLOC MPSoC: Flash delete")
|
||||||
data = prepare_flash_delete_cmd(object_id.as_bytes)
|
data = prepare_flash_delete_cmd(object_id.as_bytes)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code in OpCodes.REPLAY_START:
|
if op_code in OpCode.REPLAY_START:
|
||||||
q.add_log_cmd(f"{prefix}: {Info.REPLAY_START}")
|
q.add_log_cmd(f"{prefix}: {Info.REPLAY_START}")
|
||||||
data = prepare_replay_start_cmd(object_id.as_bytes)
|
data = prepare_replay_start_cmd(object_id.as_bytes)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "8":
|
if op_code == "8":
|
||||||
q.add_log_cmd("PLOC MPSoC: Replay stop")
|
q.add_log_cmd("PLOC MPSoC: Replay stop")
|
||||||
data = object_id.as_bytes + struct.pack("!I", CommandIds.TC_REPLAY_STOP)
|
data = object_id.as_bytes + struct.pack("!I", CommandId.TC_REPLAY_STOP)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code in OpCodes.DOWNLINK_PWR_ON:
|
if op_code in OpCode.DOWNLINK_PWR_ON:
|
||||||
q.add_log_cmd(f"{prefix}: {OpCodes.DOWNLINK_PWR_ON}")
|
q.add_log_cmd(f"{prefix}: {OpCode.DOWNLINK_PWR_ON}")
|
||||||
data = prepare_downlink_pwr_on_cmd(object_id.as_bytes)
|
data = prepare_downlink_pwr_on_cmd(object_id.as_bytes)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "10":
|
if op_code == "10":
|
||||||
q.add_log_cmd("PLOC MPSoC: Downlink pwr off")
|
q.add_log_cmd("PLOC MPSoC: Downlink pwr off")
|
||||||
data = object_id.as_bytes + struct.pack("!I", CommandIds.TC_DOWNLINK_PWR_OFF)
|
data = object_id.as_bytes + struct.pack("!I", CommandId.TC_DOWNLINK_PWR_OFF)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code in OpCodes.REPLAY_WRITE_SEQ:
|
if op_code in OpCode.REPLAY_WRITE_SEQ:
|
||||||
q.add_log_cmd(f"{prefix}: {Info.REPLAY_WRITE_SEQ}")
|
q.add_log_cmd(f"{prefix}: {Info.REPLAY_WRITE_SEQ}")
|
||||||
data = prepare_replay_write_sequence_cmd(object_id.as_bytes)
|
data = prepare_replay_write_sequence_cmd(object_id.as_bytes)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "12":
|
if op_code == "12":
|
||||||
q.add_log_cmd("PLOC MPSoC: Reset OBSW sequence count")
|
q.add_log_cmd("PLOC MPSoC: Reset OBSW sequence count")
|
||||||
data = object_id.as_bytes + struct.pack("!I", CommandIds.OBSW_RESET_SEQ_COUNT)
|
data = object_id.as_bytes + struct.pack("!I", CommandId.OBSW_RESET_SEQ_COUNT)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code in OpCodes.VERIFY_BOOT:
|
if op_code in OpCode.VERIFY_BOOT:
|
||||||
num_words = 1
|
num_words = 1
|
||||||
q.add_log_cmd(f"{prefix} {Info.VERIFY_BOOT}")
|
q.add_log_cmd(f"{prefix} {Info.VERIFY_BOOT}")
|
||||||
data = (
|
data = (
|
||||||
object_id.as_bytes
|
object_id.as_bytes
|
||||||
+ struct.pack("!I", CommandIds.TC_MEM_READ)
|
+ struct.pack("!I", CommandId.TC_MEM_READ)
|
||||||
+ struct.pack("!I", MemAddresses.DEADBEEF)
|
+ struct.pack("!I", MemAddresses.DEADBEEF)
|
||||||
+ struct.pack("!H", num_words)
|
+ struct.pack("!H", num_words)
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code in OpCodes.MODE_REPLAY:
|
if op_code in OpCode.MODE_REPLAY:
|
||||||
q.add_log_cmd("PLOC MPSoC: Tc mode replay")
|
q.add_log_cmd("PLOC MPSoC: Tc mode replay")
|
||||||
data = object_id.as_bytes + struct.pack("!I", CommandIds.TC_MODE_REPLAY)
|
data = object_id.as_bytes + struct.pack("!I", CommandId.TC_MODE_REPLAY)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code in OpCodes.MODE_IDLE:
|
if op_code in OpCode.MODE_IDLE:
|
||||||
q.add_log_cmd("PLOC MPSoC: Tc mode idle")
|
q.add_log_cmd("PLOC MPSoC: Tc mode idle")
|
||||||
data = object_id.as_bytes + struct.pack("!I", CommandIds.TC_MODE_IDLE)
|
data = object_id.as_bytes + struct.pack("!I", CommandId.TC_MODE_IDLE)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "16":
|
if op_code == "16":
|
||||||
q.add_log_cmd("PLOC MPSoC: Tc cam command send")
|
q.add_log_cmd("PLOC MPSoC: Tc cam command send")
|
||||||
cam_cmd = input("Specify cam command string: ")
|
cam_cmd = input("Specify cam command string: ")
|
||||||
data = (
|
data = (
|
||||||
object_id.as_bytes
|
object_id.as_bytes
|
||||||
+ struct.pack("!I", CommandIds.TC_CAM_CMD_SEND)
|
+ struct.pack("!I", CommandId.TC_CAM_CMD_SEND)
|
||||||
+ bytearray(cam_cmd, "utf-8")
|
+ bytearray(cam_cmd, "utf-8")
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "17":
|
if op_code == "17":
|
||||||
q.add_log_cmd("PLOC MPSoC: Set UART TX tristate")
|
q.add_log_cmd("PLOC MPSoC: Set UART TX tristate")
|
||||||
data = object_id.as_bytes + struct.pack("!I", CommandIds.SET_UART_TX_TRISTATE)
|
data = object_id.as_bytes + struct.pack("!I", CommandId.SET_UART_TX_TRISTATE)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
if op_code == "18":
|
if op_code == "18":
|
||||||
q.add_log_cmd("PLOC MPSoC: Release UART TX")
|
q.add_log_cmd("PLOC MPSoC: Release UART TX")
|
||||||
data = object_id.as_bytes + struct.pack("!I", CommandIds.RELEASE_UART_TX)
|
data = object_id.as_bytes + struct.pack("!I", CommandId.RELEASE_UART_TX)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
|
||||||
|
|
||||||
|
|
||||||
@ -246,7 +246,7 @@ def generate_write_mem_command(
|
|||||||
"""
|
"""
|
||||||
command = (
|
command = (
|
||||||
object_id
|
object_id
|
||||||
+ struct.pack("!I", CommandIds.TC_MEM_WRITE)
|
+ struct.pack("!I", CommandId.TC_MEM_WRITE)
|
||||||
+ struct.pack("!I", memory_address)
|
+ struct.pack("!I", memory_address)
|
||||||
+ struct.pack("!H", mem_len)
|
+ struct.pack("!H", mem_len)
|
||||||
+ struct.pack("!I", memory_data)
|
+ struct.pack("!I", memory_data)
|
||||||
@ -259,7 +259,7 @@ def prepare_mem_read_command(object_id: bytes) -> bytearray:
|
|||||||
num_words = int(input("PLOC MPSoC specify number of words (32-bit) to read: "))
|
num_words = int(input("PLOC MPSoC specify number of words (32-bit) to read: "))
|
||||||
command = (
|
command = (
|
||||||
object_id
|
object_id
|
||||||
+ struct.pack("!I", CommandIds.TC_MEM_READ)
|
+ struct.pack("!I", CommandId.TC_MEM_READ)
|
||||||
+ struct.pack("!I", memory_address)
|
+ struct.pack("!I", memory_address)
|
||||||
+ struct.pack("!H", num_words)
|
+ struct.pack("!H", num_words)
|
||||||
)
|
)
|
||||||
@ -271,7 +271,7 @@ def prepare_flash_write_cmd(object_id: bytes) -> bytearray:
|
|||||||
mpsocFile = get_mpsoc_file()
|
mpsocFile = get_mpsoc_file()
|
||||||
command = (
|
command = (
|
||||||
object_id
|
object_id
|
||||||
+ struct.pack("!I", CommandIds.FLASH_WRITE)
|
+ struct.pack("!I", CommandId.FLASH_WRITE)
|
||||||
+ bytearray(obcFile, "utf-8")
|
+ bytearray(obcFile, "utf-8")
|
||||||
+ bytearray(mpsocFile, "utf-8")
|
+ bytearray(mpsocFile, "utf-8")
|
||||||
)
|
)
|
||||||
@ -282,7 +282,7 @@ def prepare_flash_delete_cmd(object_id: bytes) -> bytearray:
|
|||||||
file = get_mpsoc_file()
|
file = get_mpsoc_file()
|
||||||
command = (
|
command = (
|
||||||
object_id
|
object_id
|
||||||
+ struct.pack("!I", CommandIds.TC_FLASH_DELETE)
|
+ struct.pack("!I", CommandId.TC_FLASH_DELETE)
|
||||||
+ bytearray(file, "utf-8")
|
+ bytearray(file, "utf-8")
|
||||||
)
|
)
|
||||||
return bytearray(command)
|
return bytearray(command)
|
||||||
@ -292,7 +292,7 @@ def prepare_replay_start_cmd(object_id: bytes) -> bytearray:
|
|||||||
replay = int(input("Specify replay mode (0 - once, 1 - repeated): "))
|
replay = int(input("Specify replay mode (0 - once, 1 - repeated): "))
|
||||||
command = (
|
command = (
|
||||||
object_id
|
object_id
|
||||||
+ struct.pack("!I", CommandIds.TC_REPLAY_START)
|
+ struct.pack("!I", CommandId.TC_REPLAY_START)
|
||||||
+ struct.pack("!B", replay)
|
+ struct.pack("!B", replay)
|
||||||
)
|
)
|
||||||
return bytearray(command)
|
return bytearray(command)
|
||||||
@ -303,7 +303,7 @@ def prepare_downlink_pwr_on_cmd(object_id: bytes) -> bytearray:
|
|||||||
lane_rate = int(input("Specify lane rate (0 - 9): "))
|
lane_rate = int(input("Specify lane rate (0 - 9): "))
|
||||||
command = (
|
command = (
|
||||||
object_id
|
object_id
|
||||||
+ struct.pack("!I", CommandIds.TC_DOWNLINK_PWR_ON)
|
+ struct.pack("!I", CommandId.TC_DOWNLINK_PWR_ON)
|
||||||
+ struct.pack("!B", mode)
|
+ struct.pack("!B", mode)
|
||||||
+ struct.pack("!B", lane_rate)
|
+ struct.pack("!B", lane_rate)
|
||||||
)
|
)
|
||||||
@ -315,7 +315,7 @@ def prepare_replay_write_sequence_cmd(object_id: bytes) -> bytearray:
|
|||||||
file = get_sequence_file()
|
file = get_sequence_file()
|
||||||
command = (
|
command = (
|
||||||
object_id
|
object_id
|
||||||
+ struct.pack("!I", CommandIds.TC_REPLAY_WRITE_SEQUENCE)
|
+ struct.pack("!I", CommandId.TC_REPLAY_WRITE_SEQUENCE)
|
||||||
+ struct.pack("!B", use_decoding)
|
+ struct.pack("!B", use_decoding)
|
||||||
+ bytearray(file, "utf-8")
|
+ bytearray(file, "utf-8")
|
||||||
# + bytes([0])
|
# + bytes([0])
|
||||||
|
@ -83,7 +83,7 @@ FACTORY_RESET_OPS = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class SupvActionIds:
|
class SupvActionId:
|
||||||
HK_REPORT = 1
|
HK_REPORT = 1
|
||||||
START_MPSOC = 3
|
START_MPSOC = 3
|
||||||
SHUTWOWN_MPSOC = 4
|
SHUTWOWN_MPSOC = 4
|
||||||
@ -244,7 +244,7 @@ def pack_ploc_supv_commands(p: ServiceProviderParams):
|
|||||||
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command))
|
||||||
if op_code in OpCodes.HK_TO_OBC:
|
if op_code in OpCodes.HK_TO_OBC:
|
||||||
q.add_log_cmd(f"{prefix}: {Info.HK_TO_OBC}")
|
q.add_log_cmd(f"{prefix}: {Info.HK_TO_OBC}")
|
||||||
command = obyt + struct.pack("!I", SupvActionIds.HK_REPORT)
|
command = obyt + struct.pack("!I", SupvActionId.HK_REPORT)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code in OpCodes.REQUEST_HK:
|
if op_code in OpCodes.REQUEST_HK:
|
||||||
q.add_log_cmd(f"{prefix}: {Info.REQUEST_HK}")
|
q.add_log_cmd(f"{prefix}: {Info.REQUEST_HK}")
|
||||||
@ -253,11 +253,11 @@ def pack_ploc_supv_commands(p: ServiceProviderParams):
|
|||||||
q.add_pus_tc(cmd)
|
q.add_pus_tc(cmd)
|
||||||
elif op_code in OpCodes.START_MPSOC:
|
elif op_code in OpCodes.START_MPSOC:
|
||||||
q.add_log_cmd("PLOC Supervisor: Start MPSoC")
|
q.add_log_cmd("PLOC Supervisor: Start MPSoC")
|
||||||
command = obyt + struct.pack("!I", SupvActionIds.START_MPSOC)
|
command = obyt + struct.pack("!I", SupvActionId.START_MPSOC)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code in OpCodes.SHUTDOWN_MPSOC:
|
if op_code in OpCodes.SHUTDOWN_MPSOC:
|
||||||
q.add_log_cmd("PLOC Supervisor: Shutdown MPSoC")
|
q.add_log_cmd("PLOC Supervisor: Shutdown MPSoC")
|
||||||
command = object_id.as_bytes + struct.pack("!I", SupvActionIds.SHUTWOWN_MPSOC)
|
command = object_id.as_bytes + struct.pack("!I", SupvActionId.SHUTWOWN_MPSOC)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code in OpCodes.SEL_NVM:
|
if op_code in OpCodes.SEL_NVM:
|
||||||
q.add_log_cmd("PLOC Supervisor: Select MPSoC boot image")
|
q.add_log_cmd("PLOC Supervisor: Select MPSoC boot image")
|
||||||
@ -281,7 +281,7 @@ def pack_ploc_supv_commands(p: ServiceProviderParams):
|
|||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
make_fsfw_action_cmd(
|
make_fsfw_action_cmd(
|
||||||
object_id=PLOC_SUPV_ID,
|
object_id=PLOC_SUPV_ID,
|
||||||
action_id=SupvActionIds.FACTORY_RESET,
|
action_id=SupvActionId.FACTORY_RESET,
|
||||||
user_data=bytes([key]),
|
user_data=bytes([key]),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -290,35 +290,35 @@ def pack_ploc_supv_commands(p: ServiceProviderParams):
|
|||||||
restart_tries = int(input("Specify maximum restart tries: "))
|
restart_tries = int(input("Specify maximum restart tries: "))
|
||||||
command = (
|
command = (
|
||||||
object_id.as_bytes
|
object_id.as_bytes
|
||||||
+ struct.pack("!I", SupvActionIds.SET_MAX_RESTART_TRIES)
|
+ struct.pack("!I", SupvActionId.SET_MAX_RESTART_TRIES)
|
||||||
+ struct.pack("!B", restart_tries)
|
+ struct.pack("!B", restart_tries)
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "9":
|
if op_code == "9":
|
||||||
q.add_log_cmd("PLOC Supervisor: Reset MPSoC")
|
q.add_log_cmd("PLOC Supervisor: Reset MPSoC")
|
||||||
command = object_id.as_bytes + struct.pack("!I", SupvActionIds.RESET_MPSOC)
|
command = object_id.as_bytes + struct.pack("!I", SupvActionId.RESET_MPSOC)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code in OpCodes.SET_TIME_REF:
|
if op_code in OpCodes.SET_TIME_REF:
|
||||||
q.add_log_cmd("PLOC Supervisor: Set time reference")
|
q.add_log_cmd("PLOC Supervisor: Set time reference")
|
||||||
command = object_id.as_bytes + struct.pack("!I", SupvActionIds.SET_TIME_REF)
|
command = object_id.as_bytes + struct.pack("!I", SupvActionId.SET_TIME_REF)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "11":
|
if op_code == "11":
|
||||||
q.add_log_cmd("PLOC Supervisor: Set boot timeout")
|
q.add_log_cmd("PLOC Supervisor: Set boot timeout")
|
||||||
boot_timeout = int(input("Specify boot timeout [ms]: "))
|
boot_timeout = int(input("Specify boot timeout [ms]: "))
|
||||||
command = (
|
command = (
|
||||||
object_id.as_bytes
|
object_id.as_bytes
|
||||||
+ struct.pack("!I", SupvActionIds.SET_BOOT_TIMEOUT)
|
+ struct.pack("!I", SupvActionId.SET_BOOT_TIMEOUT)
|
||||||
+ struct.pack("!I", boot_timeout)
|
+ struct.pack("!I", boot_timeout)
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "12":
|
if op_code == "12":
|
||||||
q.add_log_cmd("PLOC Supervisor: Disable HK")
|
q.add_log_cmd("PLOC Supervisor: Disable HK")
|
||||||
command = object_id.as_bytes + struct.pack("!I", SupvActionIds.DISABLE_HK)
|
command = object_id.as_bytes + struct.pack("!I", SupvActionId.DISABLE_HK)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code in OpCodes.REQ_BOOT_STATUS_REPORT:
|
if op_code in OpCodes.REQ_BOOT_STATUS_REPORT:
|
||||||
q.add_log_cmd(f"{prefix}: {Info.REQ_BOOT_STATUS_REPORT}")
|
q.add_log_cmd(f"{prefix}: {Info.REQ_BOOT_STATUS_REPORT}")
|
||||||
command = object_id.as_bytes + struct.pack(
|
command = object_id.as_bytes + struct.pack(
|
||||||
"!I", SupvActionIds.GET_BOOT_STATUS_REPORT
|
"!I", SupvActionId.GET_BOOT_STATUS_REPORT
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
q.add_wait_seconds(2.0)
|
q.add_wait_seconds(2.0)
|
||||||
@ -352,13 +352,13 @@ def pack_ploc_supv_commands(p: ServiceProviderParams):
|
|||||||
if op_code == "26":
|
if op_code == "26":
|
||||||
q.add_log_cmd("PLOC Supervisor: Request latchup status report")
|
q.add_log_cmd("PLOC Supervisor: Request latchup status report")
|
||||||
command = object_id.as_bytes + struct.pack(
|
command = object_id.as_bytes + struct.pack(
|
||||||
"!I", SupvActionIds.GET_LATCHUP_STATUS_REPORT
|
"!I", SupvActionId.GET_LATCHUP_STATUS_REPORT
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "27":
|
if op_code == "27":
|
||||||
q.add_log_cmd("PLOC Supervisor: Copy ADC data to MRAM")
|
q.add_log_cmd("PLOC Supervisor: Copy ADC data to MRAM")
|
||||||
command = object_id.as_bytes + struct.pack(
|
command = object_id.as_bytes + struct.pack(
|
||||||
"!I", SupvActionIds.COPY_ADC_DATA_TO_MRAM
|
"!I", SupvActionId.COPY_ADC_DATA_TO_MRAM
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "30":
|
if op_code == "30":
|
||||||
@ -380,7 +380,7 @@ def pack_ploc_supv_commands(p: ServiceProviderParams):
|
|||||||
if op_code == "37":
|
if op_code == "37":
|
||||||
q.add_log_cmd("PLOC Supervisor: Restart supervisor")
|
q.add_log_cmd("PLOC Supervisor: Restart supervisor")
|
||||||
command = object_id.as_bytes + struct.pack(
|
command = object_id.as_bytes + struct.pack(
|
||||||
"!I", SupvActionIds.RESTART_SUPERVISOR
|
"!I", SupvActionId.RESTART_SUPERVISOR
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code in OpCodes.START_UPDATE:
|
if op_code in OpCodes.START_UPDATE:
|
||||||
@ -394,14 +394,12 @@ def pack_ploc_supv_commands(p: ServiceProviderParams):
|
|||||||
if op_code == "43":
|
if op_code == "43":
|
||||||
q.add_log_cmd("PLOC Supervisor: Terminate supervisor process")
|
q.add_log_cmd("PLOC Supervisor: Terminate supervisor process")
|
||||||
command = object_id.as_bytes + struct.pack(
|
command = object_id.as_bytes + struct.pack(
|
||||||
"!I", SupvActionIds.TERMINATE_SUPV_HELPER
|
"!I", SupvActionId.TERMINATE_SUPV_HELPER
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "44":
|
if op_code == "44":
|
||||||
q.add_log_cmd("PLOC Supervisor: Start MPSoC quiet")
|
q.add_log_cmd("PLOC Supervisor: Start MPSoC quiet")
|
||||||
command = object_id.as_bytes + struct.pack(
|
command = object_id.as_bytes + struct.pack("!I", SupvActionId.START_MPSOC_QUIET)
|
||||||
"!I", SupvActionIds.START_MPSOC_QUIET
|
|
||||||
)
|
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "45":
|
if op_code == "45":
|
||||||
q.add_log_cmd("PLOC Supervisor: Set shutdown timeout")
|
q.add_log_cmd("PLOC Supervisor: Set shutdown timeout")
|
||||||
@ -409,15 +407,15 @@ def pack_ploc_supv_commands(p: ServiceProviderParams):
|
|||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code in OpCodes.FACTORY_FLASH:
|
if op_code in OpCodes.FACTORY_FLASH:
|
||||||
q.add_log_cmd(f"{prefix}: {Info.FACTORY_FLASH}")
|
q.add_log_cmd(f"{prefix}: {Info.FACTORY_FLASH}")
|
||||||
command = object_id.as_bytes + struct.pack("!I", SupvActionIds.FACTORY_FLASH)
|
command = object_id.as_bytes + struct.pack("!I", SupvActionId.FACTORY_FLASH)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "47":
|
if op_code == "47":
|
||||||
q.add_log_cmd("PLOC Supervisor: Enable auto TM")
|
q.add_log_cmd("PLOC Supervisor: Enable auto TM")
|
||||||
command = object_id.as_bytes + struct.pack("!I", SupvActionIds.ENABLE_AUTO_TM)
|
command = object_id.as_bytes + struct.pack("!I", SupvActionId.ENABLE_AUTO_TM)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "48":
|
if op_code == "48":
|
||||||
q.add_log_cmd("PLOC Supervisor: Disable auto TM")
|
q.add_log_cmd("PLOC Supervisor: Disable auto TM")
|
||||||
command = object_id.as_bytes + struct.pack("!I", SupvActionIds.DISABLE_AUTO_TM)
|
command = object_id.as_bytes + struct.pack("!I", SupvActionId.DISABLE_AUTO_TM)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "51":
|
if op_code == "51":
|
||||||
q.add_log_cmd("PLOC Supervisor: Logging request event buffers")
|
q.add_log_cmd("PLOC Supervisor: Logging request event buffers")
|
||||||
@ -426,7 +424,7 @@ def pack_ploc_supv_commands(p: ServiceProviderParams):
|
|||||||
if op_code == "52":
|
if op_code == "52":
|
||||||
q.add_log_cmd("PLOC Supervisor: Logging clear counters")
|
q.add_log_cmd("PLOC Supervisor: Logging clear counters")
|
||||||
command = object_id.as_bytes + struct.pack(
|
command = object_id.as_bytes + struct.pack(
|
||||||
"!I", SupvActionIds.LOGGING_CLEAR_COUNTERS
|
"!I", SupvActionId.LOGGING_CLEAR_COUNTERS
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "53":
|
if op_code == "53":
|
||||||
@ -436,18 +434,18 @@ def pack_ploc_supv_commands(p: ServiceProviderParams):
|
|||||||
if op_code == "54":
|
if op_code == "54":
|
||||||
q.add_log_cmd("PLOC Supervisor: Logging request counters")
|
q.add_log_cmd("PLOC Supervisor: Logging request counters")
|
||||||
command = object_id.as_bytes + struct.pack(
|
command = object_id.as_bytes + struct.pack(
|
||||||
"!I", SupvActionIds.LOGGING_REQUEST_COUNTERS
|
"!I", SupvActionId.LOGGING_REQUEST_COUNTERS
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "55":
|
if op_code == "55":
|
||||||
q.add_log_cmd("PLOC Supervisor: Request ADC report")
|
q.add_log_cmd("PLOC Supervisor: Request ADC report")
|
||||||
command = object_id.as_bytes + struct.pack(
|
command = object_id.as_bytes + struct.pack(
|
||||||
"!I", SupvActionIds.REQUEST_ADC_REPORT
|
"!I", SupvActionId.REQUEST_ADC_REPORT
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "56":
|
if op_code == "56":
|
||||||
q.add_log_cmd("PLOC Supervisor: Reset PL")
|
q.add_log_cmd("PLOC Supervisor: Reset PL")
|
||||||
command = object_id.as_bytes + struct.pack("!I", SupvActionIds.RESET_PL)
|
command = object_id.as_bytes + struct.pack("!I", SupvActionId.RESET_PL)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "57":
|
if op_code == "57":
|
||||||
q.add_log_cmd("PLOC Supervisor: Enable NVMs")
|
q.add_log_cmd("PLOC Supervisor: Enable NVMs")
|
||||||
@ -455,14 +453,14 @@ def pack_ploc_supv_commands(p: ServiceProviderParams):
|
|||||||
nvm3 = int(input("Enable (1) or disable(0) NVM 3: "))
|
nvm3 = int(input("Enable (1) or disable(0) NVM 3: "))
|
||||||
command = (
|
command = (
|
||||||
object_id.as_bytes
|
object_id.as_bytes
|
||||||
+ struct.pack("!I", SupvActionIds.ENABLE_NVMS)
|
+ struct.pack("!I", SupvActionId.ENABLE_NVMS)
|
||||||
+ struct.pack("B", nvm01)
|
+ struct.pack("B", nvm01)
|
||||||
+ struct.pack("B", nvm3)
|
+ struct.pack("B", nvm3)
|
||||||
)
|
)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code == "58":
|
if op_code == "58":
|
||||||
q.add_log_cmd("PLOC Supervisor: Continue update")
|
q.add_log_cmd("PLOC Supervisor: Continue update")
|
||||||
command = object_id.as_bytes + struct.pack("!I", SupvActionIds.CONTINUE_UPDATE)
|
command = object_id.as_bytes + struct.pack("!I", SupvActionId.CONTINUE_UPDATE)
|
||||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||||
if op_code in OpCodes.MEM_CHECK:
|
if op_code in OpCodes.MEM_CHECK:
|
||||||
custom_data = bytearray()
|
custom_data = bytearray()
|
||||||
@ -478,7 +476,7 @@ def pack_ploc_supv_commands(p: ServiceProviderParams):
|
|||||||
f"address {start_address}"
|
f"address {start_address}"
|
||||||
)
|
)
|
||||||
command = make_fsfw_action_cmd(
|
command = make_fsfw_action_cmd(
|
||||||
object_id.as_bytes, SupvActionIds.MEM_CHECK, custom_data
|
object_id.as_bytes, SupvActionId.MEM_CHECK, custom_data
|
||||||
)
|
)
|
||||||
q.add_pus_tc(command)
|
q.add_pus_tc(command)
|
||||||
|
|
||||||
@ -493,7 +491,7 @@ def pack_sel_boot_image_cmd(
|
|||||||
@param bp1 Partition pin 1
|
@param bp1 Partition pin 1
|
||||||
@param bp2 Partition pin 2
|
@param bp2 Partition pin 2
|
||||||
"""
|
"""
|
||||||
command = object_id + struct.pack("!I", SupvActionIds.SEL_MPSOC_BOOT_IMAGE)
|
command = object_id + struct.pack("!I", SupvActionId.SEL_MPSOC_BOOT_IMAGE)
|
||||||
command = command + struct.pack("!B", mem)
|
command = command + struct.pack("!B", mem)
|
||||||
command = command + struct.pack("!B", bp0)
|
command = command + struct.pack("!B", bp0)
|
||||||
command = command + struct.pack("!B", bp1)
|
command = command + struct.pack("!B", bp1)
|
||||||
@ -511,7 +509,7 @@ def pack_update_available_cmd(object_id: bytes) -> bytearray:
|
|||||||
image_size = 222
|
image_size = 222
|
||||||
image_crc = 0x0
|
image_crc = 0x0
|
||||||
number_of_packets = 150
|
number_of_packets = 150
|
||||||
command = object_id + struct.pack("!I", SupvActionIds.UPDATE_AVAILABLE)
|
command = object_id + struct.pack("!I", SupvActionId.UPDATE_AVAILABLE)
|
||||||
command = command + struct.pack("!B", image_select)
|
command = command + struct.pack("!B", image_select)
|
||||||
command = command + struct.pack("!B", image_partition)
|
command = command + struct.pack("!B", image_partition)
|
||||||
command = command + struct.pack("!I", image_size)
|
command = command + struct.pack("!I", image_size)
|
||||||
@ -529,9 +527,9 @@ def pack_lachtup_alert_cmd(object_id: bytes, state: bool) -> bytearray:
|
|||||||
latchup_id = get_latchup_id()
|
latchup_id = get_latchup_id()
|
||||||
command = bytearray()
|
command = bytearray()
|
||||||
if state:
|
if state:
|
||||||
command = object_id + struct.pack("!I", SupvActionIds.ENABLE_LATCHUP_ALERT)
|
command = object_id + struct.pack("!I", SupvActionId.ENABLE_LATCHUP_ALERT)
|
||||||
else:
|
else:
|
||||||
command = object_id + struct.pack("!I", SupvActionIds.DISABLE_LATCHUP_ALERT)
|
command = object_id + struct.pack("!I", SupvActionId.DISABLE_LATCHUP_ALERT)
|
||||||
command = command + struct.pack("!B", latchup_id)
|
command = command + struct.pack("!B", latchup_id)
|
||||||
return bytearray(command)
|
return bytearray(command)
|
||||||
|
|
||||||
@ -560,7 +558,7 @@ def pack_set_alert_limit_cmd(object_id: bytes) -> bytearray:
|
|||||||
latchup_id = get_latchup_id()
|
latchup_id = get_latchup_id()
|
||||||
dutycycle = int(input("Specify dutycycle: "))
|
dutycycle = int(input("Specify dutycycle: "))
|
||||||
command = bytearray()
|
command = bytearray()
|
||||||
command = object_id + struct.pack("!I", SupvActionIds.SET_ALERT_LIMIT)
|
command = object_id + struct.pack("!I", SupvActionId.SET_ALERT_LIMIT)
|
||||||
command = command + struct.pack("!B", latchup_id)
|
command = command + struct.pack("!B", latchup_id)
|
||||||
command = command + struct.pack("!I", dutycycle)
|
command = command + struct.pack("!I", dutycycle)
|
||||||
return bytearray(command)
|
return bytearray(command)
|
||||||
@ -572,7 +570,7 @@ def pack_set_adc_enabled_channels_cmd(object_id: bytes) -> bytearray:
|
|||||||
@param object_id The object id of the PLOC supervisor handler.
|
@param object_id The object id of the PLOC supervisor handler.
|
||||||
"""
|
"""
|
||||||
ch = int(input("Specify ch: 0x"), 16)
|
ch = int(input("Specify ch: 0x"), 16)
|
||||||
cmd = object_id + struct.pack("!I", SupvActionIds.SET_ADC_ENABLED_CHANNELS)
|
cmd = object_id + struct.pack("!I", SupvActionId.SET_ADC_ENABLED_CHANNELS)
|
||||||
cmd = cmd + struct.pack("!H", ch)
|
cmd = cmd + struct.pack("!H", ch)
|
||||||
return bytearray(cmd)
|
return bytearray(cmd)
|
||||||
|
|
||||||
@ -580,7 +578,7 @@ def pack_set_adc_enabled_channels_cmd(object_id: bytes) -> bytearray:
|
|||||||
def pack_set_adc_window_and_stride_cmd(object_id: bytes) -> bytearray:
|
def pack_set_adc_window_and_stride_cmd(object_id: bytes) -> bytearray:
|
||||||
window_size = int(input("Specify window size: "))
|
window_size = int(input("Specify window size: "))
|
||||||
striding_step_size = int(input("Specify striding step size: "))
|
striding_step_size = int(input("Specify striding step size: "))
|
||||||
command = object_id + struct.pack("!I", SupvActionIds.SET_ADC_WINDOW_AND_STRIDE)
|
command = object_id + struct.pack("!I", SupvActionId.SET_ADC_WINDOW_AND_STRIDE)
|
||||||
command = command + struct.pack("!H", window_size)
|
command = command + struct.pack("!H", window_size)
|
||||||
command = command + struct.pack("!H", striding_step_size)
|
command = command + struct.pack("!H", striding_step_size)
|
||||||
return bytearray(command)
|
return bytearray(command)
|
||||||
@ -588,21 +586,21 @@ def pack_set_adc_window_and_stride_cmd(object_id: bytes) -> bytearray:
|
|||||||
|
|
||||||
def pack_set_adc_threshold_cmd(object_id: bytes) -> bytearray:
|
def pack_set_adc_threshold_cmd(object_id: bytes) -> bytearray:
|
||||||
threshold = int(input("Specify threshold: "))
|
threshold = int(input("Specify threshold: "))
|
||||||
command = object_id + struct.pack("!I", SupvActionIds.SET_ADC_THRESHOLD)
|
command = object_id + struct.pack("!I", SupvActionId.SET_ADC_THRESHOLD)
|
||||||
command = command + struct.pack("!I", threshold)
|
command = command + struct.pack("!I", threshold)
|
||||||
return bytearray(command)
|
return bytearray(command)
|
||||||
|
|
||||||
|
|
||||||
def pack_select_nvm_cmd(object_id: bytes) -> bytearray:
|
def pack_select_nvm_cmd(object_id: bytes) -> bytearray:
|
||||||
mem = int(input("Specify NVM (0 - NVM0, 1 - MVM1): "))
|
mem = int(input("Specify NVM (0 - NVM0, 1 - MVM1): "))
|
||||||
command = object_id + struct.pack("!I", SupvActionIds.SELECT_NVM)
|
command = object_id + struct.pack("!I", SupvActionId.SELECT_NVM)
|
||||||
command = command + struct.pack("!B", mem)
|
command = command + struct.pack("!B", mem)
|
||||||
return bytearray(command)
|
return bytearray(command)
|
||||||
|
|
||||||
|
|
||||||
def pack_auto_em_tests_cmd(object_id: bytes) -> bytearray:
|
def pack_auto_em_tests_cmd(object_id: bytes) -> bytearray:
|
||||||
test = int(input("Specify test (1 - complete, 2 - short): "))
|
test = int(input("Specify test (1 - complete, 2 - short): "))
|
||||||
command = object_id + struct.pack("!I", SupvActionIds.RUN_AUTO_EM_TESTS)
|
command = object_id + struct.pack("!I", SupvActionId.RUN_AUTO_EM_TESTS)
|
||||||
command = command + struct.pack("!B", test)
|
command = command + struct.pack("!B", test)
|
||||||
return bytearray(command)
|
return bytearray(command)
|
||||||
|
|
||||||
@ -610,7 +608,7 @@ def pack_auto_em_tests_cmd(object_id: bytes) -> bytearray:
|
|||||||
def pack_mram_wipe_cmd(object_id: bytes) -> bytearray:
|
def pack_mram_wipe_cmd(object_id: bytes) -> bytearray:
|
||||||
start = int(input("Start address: 0x"), 16)
|
start = int(input("Start address: 0x"), 16)
|
||||||
stop = int(input("Stop address: 0x"), 16)
|
stop = int(input("Stop address: 0x"), 16)
|
||||||
command = object_id + struct.pack("!I", SupvActionIds.WIPE_MRAM)
|
command = object_id + struct.pack("!I", SupvActionId.WIPE_MRAM)
|
||||||
command = command + struct.pack("!I", start)
|
command = command + struct.pack("!I", start)
|
||||||
command = command + struct.pack("!I", stop)
|
command = command + struct.pack("!I", stop)
|
||||||
return bytearray(command)
|
return bytearray(command)
|
||||||
@ -642,7 +640,7 @@ def pack_update_command(object_id: bytes, new_update: bool) -> bytearray:
|
|||||||
else:
|
else:
|
||||||
raise ValueError("Invalid input, use y or n")
|
raise ValueError("Invalid input, use y or n")
|
||||||
command += object_id
|
command += object_id
|
||||||
command += struct.pack("!I", SupvActionIds.PERFORM_UPDATE)
|
command += struct.pack("!I", SupvActionId.PERFORM_UPDATE)
|
||||||
command += bytearray(update_file, "utf-8")
|
command += bytearray(update_file, "utf-8")
|
||||||
# Adding null terminator
|
# Adding null terminator
|
||||||
command += struct.pack("!B", 0)
|
command += struct.pack("!B", 0)
|
||||||
@ -657,7 +655,7 @@ def pack_update_command(object_id: bytes, new_update: bool) -> bytearray:
|
|||||||
def pack_set_shutdown_timeout_command(object_id: bytes) -> bytearray:
|
def pack_set_shutdown_timeout_command(object_id: bytes) -> bytearray:
|
||||||
command = bytearray()
|
command = bytearray()
|
||||||
command += object_id
|
command += object_id
|
||||||
command += struct.pack("!I", SupvActionIds.SET_SHUTDOWN_TIMEOUT)
|
command += struct.pack("!I", SupvActionId.SET_SHUTDOWN_TIMEOUT)
|
||||||
timeout = int(input("Specify shutdown timeout (ms): "))
|
timeout = int(input("Specify shutdown timeout (ms): "))
|
||||||
command += struct.pack("!I", timeout)
|
command += struct.pack("!I", timeout)
|
||||||
return command
|
return command
|
||||||
@ -666,7 +664,7 @@ def pack_set_shutdown_timeout_command(object_id: bytes) -> bytearray:
|
|||||||
def pack_logging_buffer_request(object_id: bytes) -> bytearray:
|
def pack_logging_buffer_request(object_id: bytes) -> bytearray:
|
||||||
command = bytearray()
|
command = bytearray()
|
||||||
command += object_id
|
command += object_id
|
||||||
command += struct.pack("!I", SupvActionIds.LOGGING_REQUEST_EVENT_BUFFERS)
|
command += struct.pack("!I", SupvActionId.LOGGING_REQUEST_EVENT_BUFFERS)
|
||||||
path = get_event_buffer_path()
|
path = get_event_buffer_path()
|
||||||
command += bytearray(path, "utf-8")
|
command += bytearray(path, "utf-8")
|
||||||
return command
|
return command
|
||||||
@ -676,7 +674,7 @@ def pack_set_gpio_cmd(object_id: bytes) -> bytearray:
|
|||||||
port = int(input("Specify port: 0x"), 16)
|
port = int(input("Specify port: 0x"), 16)
|
||||||
pin = int(input("Specify pin: 0x"), 16)
|
pin = int(input("Specify pin: 0x"), 16)
|
||||||
val = int(input("Specify val: 0x"), 16)
|
val = int(input("Specify val: 0x"), 16)
|
||||||
command = object_id + struct.pack("!I", SupvActionIds.SET_GPIO)
|
command = object_id + struct.pack("!I", SupvActionId.SET_GPIO)
|
||||||
command = command + struct.pack("!B", port)
|
command = command + struct.pack("!B", port)
|
||||||
command = command + struct.pack("!B", pin)
|
command = command + struct.pack("!B", pin)
|
||||||
command = command + struct.pack("!B", val)
|
command = command + struct.pack("!B", val)
|
||||||
@ -686,14 +684,14 @@ def pack_set_gpio_cmd(object_id: bytes) -> bytearray:
|
|||||||
def pack_read_gpio_cmd(object_id: bytes) -> bytearray:
|
def pack_read_gpio_cmd(object_id: bytes) -> bytearray:
|
||||||
port = int(input("Specify port: 0x"), 16)
|
port = int(input("Specify port: 0x"), 16)
|
||||||
pin = int(input("Specify pin: 0x"), 16)
|
pin = int(input("Specify pin: 0x"), 16)
|
||||||
command = object_id + struct.pack("!I", SupvActionIds.READ_GPIO)
|
command = object_id + struct.pack("!I", SupvActionId.READ_GPIO)
|
||||||
command = command + struct.pack("!B", port)
|
command = command + struct.pack("!B", port)
|
||||||
command = command + struct.pack("!B", pin)
|
command = command + struct.pack("!B", pin)
|
||||||
return bytearray(command)
|
return bytearray(command)
|
||||||
|
|
||||||
|
|
||||||
def pack_logging_set_topic(object_id: bytes) -> bytearray:
|
def pack_logging_set_topic(object_id: bytes) -> bytearray:
|
||||||
command = object_id + struct.pack("!I", SupvActionIds.LOGGING_SET_TOPIC)
|
command = object_id + struct.pack("!I", SupvActionId.LOGGING_SET_TOPIC)
|
||||||
tpc = int(input("Specify logging topic: "))
|
tpc = int(input("Specify logging topic: "))
|
||||||
command += struct.pack("!B", tpc)
|
command += struct.pack("!B", tpc)
|
||||||
return bytearray(command)
|
return bytearray(command)
|
||||||
|
@ -42,7 +42,7 @@ class ACUHkTable:
|
|||||||
wdt_gnd_left = gs.TableEntry(bytearray([0x00, 0x74]), gs.TableEntry.uint32_size)
|
wdt_gnd_left = gs.TableEntry(bytearray([0x00, 0x74]), gs.TableEntry.uint32_size)
|
||||||
|
|
||||||
|
|
||||||
class OpCodes:
|
class OpCode:
|
||||||
TEST = ["0", "test"]
|
TEST = ["0", "test"]
|
||||||
|
|
||||||
|
|
||||||
@ -55,7 +55,7 @@ def add_acu_cmds(defs: TmtcDefinitionWrapper):
|
|||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
add_gomspace_cmd_defs(oce)
|
add_gomspace_cmd_defs(oce)
|
||||||
|
|
||||||
oce.add(keys=OpCodes.TEST, info=Info.TEST)
|
oce.add(keys=OpCode.TEST, info=Info.TEST)
|
||||||
defs.add_service(
|
defs.add_service(
|
||||||
name=CustomServiceList.ACU.value,
|
name=CustomServiceList.ACU.value,
|
||||||
info="ACU Device",
|
info="ACU Device",
|
||||||
|
@ -27,7 +27,7 @@ from tmtccmd.tc.pus_8_funccmd import make_fsfw_action_cmd
|
|||||||
from tmtccmd.util import ObjectIdU32, ObjectIdBase
|
from tmtccmd.util import ObjectIdU32, ObjectIdBase
|
||||||
|
|
||||||
|
|
||||||
class GomspaceOpCodes:
|
class GomspaceOpCode:
|
||||||
GET_PARAM = ["get_param"]
|
GET_PARAM = ["get_param"]
|
||||||
SET_INTEGER_PARAM = ["set_int_param"]
|
SET_INTEGER_PARAM = ["set_int_param"]
|
||||||
SAVE_TABLE = ["save_table"]
|
SAVE_TABLE = ["save_table"]
|
||||||
@ -157,20 +157,20 @@ def pack_common_gomspace_cmds(
|
|||||||
object_id=objb, action_id=GomspaceDeviceActionIds.PRINT_LATCHUPS
|
object_id=objb, action_id=GomspaceDeviceActionIds.PRINT_LATCHUPS
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if op_code in GomspaceOpCodes.SET_INTEGER_PARAM:
|
if op_code in GomspaceOpCode.SET_INTEGER_PARAM:
|
||||||
q.add_log_cmd(f"{prefix}: {GsInfo.SET_PARAMETER}")
|
q.add_log_cmd(f"{prefix}: {GsInfo.SET_PARAMETER}")
|
||||||
print("Please specify the parameter type from index")
|
print("Please specify the parameter type from index")
|
||||||
for idx, v in enumerate(ParamTypes):
|
for idx, v in enumerate(ParamTypes):
|
||||||
print(f"{idx}: {v.name}")
|
print(f"{idx}: {v.name}")
|
||||||
ptype = int(input("Index: "))
|
ptype = int(input("Index: "))
|
||||||
prompt_and_pack_set_integer_param_command(q, object_id, ParamTypes(ptype))
|
prompt_and_pack_set_integer_param_command(q, object_id, ParamTypes(ptype))
|
||||||
if op_code in GomspaceOpCodes.GET_PARAM:
|
if op_code in GomspaceOpCode.GET_PARAM:
|
||||||
q.add_log_cmd(f"{prefix}: {GsInfo.GET_PARAMETER}")
|
q.add_log_cmd(f"{prefix}: {GsInfo.GET_PARAMETER}")
|
||||||
prompt_and_pack_get_param_command(q, object_id)
|
prompt_and_pack_get_param_command(q, object_id)
|
||||||
if op_code in GomspaceOpCodes.REQUEST_CONFIG_TABLE:
|
if op_code in GomspaceOpCode.REQUEST_CONFIG_TABLE:
|
||||||
q.add_log_cmd(f"{prefix}: {GsInfo.REQUEST_CONFIG_TABLE}")
|
q.add_log_cmd(f"{prefix}: {GsInfo.REQUEST_CONFIG_TABLE}")
|
||||||
q.add_pus_tc(pack_request_config_command(object_id.as_bytes))
|
q.add_pus_tc(pack_request_config_command(object_id.as_bytes))
|
||||||
if op_code in GomspaceOpCodes.SAVE_TABLE:
|
if op_code in GomspaceOpCode.SAVE_TABLE:
|
||||||
q.add_log_cmd(f"{prefix}: {GsInfo.SAVE_TABLE}")
|
q.add_log_cmd(f"{prefix}: {GsInfo.SAVE_TABLE}")
|
||||||
source_table = int(
|
source_table = int(
|
||||||
input(
|
input(
|
||||||
@ -193,7 +193,7 @@ def pack_common_gomspace_cmds(
|
|||||||
user_data=bytes([source_table]),
|
user_data=bytes([source_table]),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if op_code in GomspaceOpCodes.SAVE_TABLE_DEFAULT:
|
if op_code in GomspaceOpCode.SAVE_TABLE_DEFAULT:
|
||||||
source_table = int(
|
source_table = int(
|
||||||
input(
|
input(
|
||||||
"Source table [0: Board Config, 1: Module Config, 2: Calibration Parameter]: "
|
"Source table [0: Board Config, 1: Module Config, 2: Calibration Parameter]: "
|
||||||
@ -208,7 +208,7 @@ def pack_common_gomspace_cmds(
|
|||||||
user_data=bytes([source_table]),
|
user_data=bytes([source_table]),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if op_code in GomspaceOpCodes.LOAD_TABLE:
|
if op_code in GomspaceOpCode.LOAD_TABLE:
|
||||||
target_table = int(
|
target_table = int(
|
||||||
input(
|
input(
|
||||||
"Target table ID [0: Board Config, 1: Module Config, 2: Calibration Parameter, "
|
"Target table ID [0: Board Config, 1: Module Config, 2: Calibration Parameter, "
|
||||||
@ -236,7 +236,7 @@ def pack_common_gomspace_cmds(
|
|||||||
user_data=bytes([source_table, target_table]),
|
user_data=bytes([source_table, target_table]),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if op_code in GomspaceOpCodes.RESET_GND_WATCHDOG:
|
if op_code in GomspaceOpCode.RESET_GND_WATCHDOG:
|
||||||
q.add_log_cmd(f"{prefix}: {GsInfo.RESET_GND_WATCHDOG}")
|
q.add_log_cmd(f"{prefix}: {GsInfo.RESET_GND_WATCHDOG}")
|
||||||
q.add_pus_tc(pack_gnd_wdt_reset_command(object_id))
|
q.add_pus_tc(pack_gnd_wdt_reset_command(object_id))
|
||||||
|
|
||||||
@ -316,14 +316,14 @@ def add_gomspace_cmd_defs(oce: OpCodeEntry):
|
|||||||
info=PowerInfo.REQUEST_AUX_HK_ONCE,
|
info=PowerInfo.REQUEST_AUX_HK_ONCE,
|
||||||
)
|
)
|
||||||
oce.add(keys=PowerOpCodes.PRINT_LATCHUPS, info=PowerInfo.PRINT_LATCHUPS)
|
oce.add(keys=PowerOpCodes.PRINT_LATCHUPS, info=PowerInfo.PRINT_LATCHUPS)
|
||||||
oce.add(keys=GomspaceOpCodes.GET_PARAM, info=GsInfo.GET_PARAMETER)
|
oce.add(keys=GomspaceOpCode.GET_PARAM, info=GsInfo.GET_PARAMETER)
|
||||||
oce.add(keys=GomspaceOpCodes.REBOOT, info=GsInfo.REBOOT)
|
oce.add(keys=GomspaceOpCode.REBOOT, info=GsInfo.REBOOT)
|
||||||
oce.add(keys=GomspaceOpCodes.SET_INTEGER_PARAM, info=GsInfo.SET_PARAMETER)
|
oce.add(keys=GomspaceOpCode.SET_INTEGER_PARAM, info=GsInfo.SET_PARAMETER)
|
||||||
oce.add(keys=GomspaceOpCodes.REQUEST_CONFIG_TABLE, info=GsInfo.REQUEST_CONFIG_TABLE)
|
oce.add(keys=GomspaceOpCode.REQUEST_CONFIG_TABLE, info=GsInfo.REQUEST_CONFIG_TABLE)
|
||||||
oce.add(keys=GomspaceOpCodes.SAVE_TABLE, info=GsInfo.SAVE_TABLE)
|
oce.add(keys=GomspaceOpCode.SAVE_TABLE, info=GsInfo.SAVE_TABLE)
|
||||||
oce.add(keys=GomspaceOpCodes.SAVE_TABLE_DEFAULT, info=GsInfo.SAVE_TABLE_DEFAULT)
|
oce.add(keys=GomspaceOpCode.SAVE_TABLE_DEFAULT, info=GsInfo.SAVE_TABLE_DEFAULT)
|
||||||
oce.add(keys=GomspaceOpCodes.LOAD_TABLE, info=GsInfo.LOAD_TABLE)
|
oce.add(keys=GomspaceOpCode.LOAD_TABLE, info=GsInfo.LOAD_TABLE)
|
||||||
oce.add(keys=GomspaceOpCodes.RESET_GND_WATCHDOG, info=GsInfo.RESET_GND_WATCHDOG)
|
oce.add(keys=GomspaceOpCode.RESET_GND_WATCHDOG, info=GsInfo.RESET_GND_WATCHDOG)
|
||||||
|
|
||||||
|
|
||||||
OBC_ENDIANNESS = "<"
|
OBC_ENDIANNESS = "<"
|
||||||
|
@ -27,7 +27,7 @@ from eive_tmtc.config.object_ids import P60_DOCK_HANDLER
|
|||||||
from tmtccmd.util import ObjectIdU32
|
from tmtccmd.util import ObjectIdU32
|
||||||
|
|
||||||
|
|
||||||
class P60OpCodes:
|
class P60OpCode:
|
||||||
STACK_3V3_ON = ["stack_3v3_on", "1"]
|
STACK_3V3_ON = ["stack_3v3_on", "1"]
|
||||||
STACK_3V3_OFF = ["stack_3v3_off", "2"]
|
STACK_3V3_OFF = ["stack_3v3_off", "2"]
|
||||||
STACK_5V_ON = ["stack_5v_on", "3"]
|
STACK_5V_ON = ["stack_5v_on", "3"]
|
||||||
@ -103,7 +103,7 @@ def pack_p60dock_cmds(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code:
|
|||||||
pack_common_power_cmds("P60 Dock", object_id, q, op_code)
|
pack_common_power_cmds("P60 Dock", object_id, q, op_code)
|
||||||
pack_common_gomspace_cmds("P60 Dock", object_id, q, op_code)
|
pack_common_gomspace_cmds("P60 Dock", object_id, q, op_code)
|
||||||
p60_dock_req_hk_cmds(q, op_code)
|
p60_dock_req_hk_cmds(q, op_code)
|
||||||
if op_code in P60OpCodes.STACK_3V3_ON:
|
if op_code in P60OpCode.STACK_3V3_ON:
|
||||||
q.add_log_cmd(P60Info.STACK_3V3_ON)
|
q.add_log_cmd(P60Info.STACK_3V3_ON)
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
pack_set_u8_param_command(
|
pack_set_u8_param_command(
|
||||||
@ -112,7 +112,7 @@ def pack_p60dock_cmds(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code:
|
|||||||
Channel.on,
|
Channel.on,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if op_code in P60OpCodes.STACK_3V3_OFF:
|
if op_code in P60OpCode.STACK_3V3_OFF:
|
||||||
q.add_log_cmd(P60Info.STACK_3V3_OFF)
|
q.add_log_cmd(P60Info.STACK_3V3_OFF)
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
pack_set_u8_param_command(
|
pack_set_u8_param_command(
|
||||||
@ -121,7 +121,7 @@ def pack_p60dock_cmds(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code:
|
|||||||
Channel.off,
|
Channel.off,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if op_code in P60OpCodes.STACK_5V_ON:
|
if op_code in P60OpCode.STACK_5V_ON:
|
||||||
q.add_log_cmd(P60Info.STACK_5V_ON)
|
q.add_log_cmd(P60Info.STACK_5V_ON)
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
pack_set_u8_param_command(
|
pack_set_u8_param_command(
|
||||||
@ -130,7 +130,7 @@ def pack_p60dock_cmds(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code:
|
|||||||
Channel.on,
|
Channel.on,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if op_code in P60OpCodes.STACK_5V_OFF:
|
if op_code in P60OpCode.STACK_5V_OFF:
|
||||||
q.add_log_cmd(P60Info.STACK_5V_OFF)
|
q.add_log_cmd(P60Info.STACK_5V_OFF)
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
pack_set_u8_param_command(
|
pack_set_u8_param_command(
|
||||||
|
@ -15,7 +15,7 @@ from eive_tmtc.tmtc.power.common_power import (
|
|||||||
create_generic_on_cmd,
|
create_generic_on_cmd,
|
||||||
create_generic_off_cmd,
|
create_generic_off_cmd,
|
||||||
pack_common_power_cmds,
|
pack_common_power_cmds,
|
||||||
GomspaceOpCodes,
|
GomspaceOpCode,
|
||||||
GsInfo,
|
GsInfo,
|
||||||
PowerInfo,
|
PowerInfo,
|
||||||
add_common_power_defs,
|
add_common_power_defs,
|
||||||
@ -166,7 +166,7 @@ def add_pdu1_cmds(defs: TmtcDefinitionWrapper):
|
|||||||
keys=PowerOpCodes.PRINT_SWITCH_V_I,
|
keys=PowerOpCodes.PRINT_SWITCH_V_I,
|
||||||
info="PDU1: Print Switches, Voltages, Currents",
|
info="PDU1: Print Switches, Voltages, Currents",
|
||||||
)
|
)
|
||||||
oce.add(keys=GomspaceOpCodes.GET_PARAM, info=GsInfo.GET_PARAMETER)
|
oce.add(keys=GomspaceOpCode.GET_PARAM, info=GsInfo.GET_PARAMETER)
|
||||||
|
|
||||||
defs.add_service(
|
defs.add_service(
|
||||||
name=CustomServiceList.PDU1.value,
|
name=CustomServiceList.PDU1.value,
|
||||||
|
@ -27,7 +27,7 @@ from eive_tmtc.tmtc.power.pdu2 import (
|
|||||||
from tmtccmd import get_console_logger
|
from tmtccmd import get_console_logger
|
||||||
from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry
|
from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry
|
||||||
|
|
||||||
from eive_tmtc.tmtc.power.p60dock import P60OpCodes, P60Info, p60_dock_req_hk_cmds
|
from eive_tmtc.tmtc.power.p60dock import P60OpCode, P60Info, p60_dock_req_hk_cmds
|
||||||
from eive_tmtc.tmtc.power.acu import add_acu_cmds, acu_req_hk_cmds
|
from eive_tmtc.tmtc.power.acu import add_acu_cmds, acu_req_hk_cmds
|
||||||
from tmtccmd.config.tmtc import tmtc_definitions_provider
|
from tmtccmd.config.tmtc import tmtc_definitions_provider
|
||||||
from tmtccmd.tc import DefaultPusQueueHelper
|
from tmtccmd.tc import DefaultPusQueueHelper
|
||||||
@ -75,12 +75,12 @@ def pack_power_commands(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
@tmtc_definitions_provider
|
@tmtc_definitions_provider
|
||||||
def add_p60_cmds(defs: TmtcDefinitionWrapper):
|
def add_p60_cmds(defs: TmtcDefinitionWrapper):
|
||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
oce.add(keys=P60OpCodes.STACK_3V3_ON, info=P60Info.STACK_3V3_ON)
|
oce.add(keys=P60OpCode.STACK_3V3_ON, info=P60Info.STACK_3V3_ON)
|
||||||
oce.add(keys=P60OpCodes.STACK_3V3_OFF, info=P60Info.STACK_3V3_OFF)
|
oce.add(keys=P60OpCode.STACK_3V3_OFF, info=P60Info.STACK_3V3_OFF)
|
||||||
oce.add(keys=P60OpCodes.STACK_5V_ON, info=P60Info.STACK_5V_ON)
|
oce.add(keys=P60OpCode.STACK_5V_ON, info=P60Info.STACK_5V_ON)
|
||||||
oce.add(keys=P60OpCodes.STACK_5V_OFF, info=P60Info.STACK_5V_OFF)
|
oce.add(keys=P60OpCode.STACK_5V_OFF, info=P60Info.STACK_5V_OFF)
|
||||||
add_gomspace_cmd_defs(oce)
|
add_gomspace_cmd_defs(oce)
|
||||||
oce.add(keys=P60OpCodes.TEST, info="P60 Tests")
|
oce.add(keys=P60OpCode.TEST, info="P60 Tests")
|
||||||
defs.add_service(
|
defs.add_service(
|
||||||
name=CustomServiceList.P60DOCK.value, info="P60 Device", op_code_entry=oce
|
name=CustomServiceList.P60DOCK.value, info="P60 Device", op_code_entry=oce
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user