Compare commits
26 Commits
Author | SHA1 | Date | |
---|---|---|---|
ce155e7629 | |||
1fb50d84c6 | |||
71bc121deb | |||
0202c93252 | |||
de1188c1bb | |||
5f87092465 | |||
fb7b273485 | |||
8a69507d05 | |||
6c367aab32 | |||
f899d169b2 | |||
2b2d920540 | |||
d7e1a69e75 | |||
b72dad49a9 | |||
cef8d623c9 | |||
523dd9b759 | |||
ce5ae8a713 | |||
be7b3f54c7 | |||
7fe45d51dd | |||
536fd81bf8 | |||
e612e086ab | |||
7296344730 | |||
d3f9a83af8 | |||
a54e5a8e14 | |||
5e17ea9bf0 | |||
99d2c0e0ca | |||
98617b5ce5 |
CHANGELOG.md
eive_tmtc
10
CHANGELOG.md
10
CHANGELOG.md
@ -10,6 +10,16 @@ list yields a list of all related PRs for each release.
|
|||||||
|
|
||||||
# [unreleased]
|
# [unreleased]
|
||||||
|
|
||||||
|
# [v2.21.0] 2023-04-04
|
||||||
|
|
||||||
|
## Added
|
||||||
|
|
||||||
|
- Add boot mode command for EIVE system.
|
||||||
|
|
||||||
|
## Changed
|
||||||
|
|
||||||
|
- PCDU switcher set now includes the 3V3 stack switcher state.
|
||||||
|
|
||||||
# [v2.20.1] 2023-04-01
|
# [v2.20.1] 2023-04-01
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
__version__ = "2.20.1"
|
__version__ = "2.21.0"
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
SW_NAME = "eive-tmtc"
|
SW_NAME = "eive-tmtc"
|
||||||
VERSION_MAJOR = 2
|
VERSION_MAJOR = 2
|
||||||
VERSION_MINOR = 20
|
VERSION_MINOR = 21
|
||||||
VERSION_REVISION = 1
|
VERSION_REVISION = 0
|
||||||
|
|
||||||
EIVE_TMTC_ROOT = Path(__file__).parent
|
EIVE_TMTC_ROOT = Path(__file__).parent
|
||||||
PACKAGE_ROOT = EIVE_TMTC_ROOT.parent
|
PACKAGE_ROOT = EIVE_TMTC_ROOT.parent
|
||||||
|
@ -261,13 +261,13 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
|
|||||||
14007;0x36b7;REBOOT_COUNTER;INFO;Total reboot counter, which is the sum of the boot count of all individual images.;bsp_q7s/core/CoreController.h
|
14007;0x36b7;REBOOT_COUNTER;INFO;Total reboot counter, which is the sum of the boot count of all individual images.;bsp_q7s/core/CoreController.h
|
||||||
14008;0x36b8;INDIVIDUAL_BOOT_COUNTS;INFO;Get the boot count of the individual images. P1: First 16 bits boot count of image 0 0, last 16 bits boot count of image 0 1. P2: First 16 bits boot count of image 1 0, last 16 bits boot count of image 1 1.;bsp_q7s/core/CoreController.h
|
14008;0x36b8;INDIVIDUAL_BOOT_COUNTS;INFO;Get the boot count of the individual images. P1: First 16 bits boot count of image 0 0, last 16 bits boot count of image 0 1. P2: First 16 bits boot count of image 1 0, last 16 bits boot count of image 1 1.;bsp_q7s/core/CoreController.h
|
||||||
14010;0x36ba;I2C_UNAVAILABLE_REBOOT;MEDIUM;No description;bsp_q7s/core/CoreController.h
|
14010;0x36ba;I2C_UNAVAILABLE_REBOOT;MEDIUM;No description;bsp_q7s/core/CoreController.h
|
||||||
14100;0x3714;NO_VALID_SENSOR_TEMPERATURE;MEDIUM;No description;mission/controller/ThermalController.h
|
14100;0x3714;NO_VALID_SENSOR_TEMPERATURE;MEDIUM;No description;mission/controller/tcsDefs.h
|
||||||
14101;0x3715;NO_HEALTHY_HEATER_AVAILABLE;MEDIUM;No description;mission/controller/ThermalController.h
|
14101;0x3715;NO_HEALTHY_HEATER_AVAILABLE;MEDIUM;No description;mission/controller/tcsDefs.h
|
||||||
14102;0x3716;SYRLINKS_OVERHEATING;HIGH;No description;mission/controller/ThermalController.h
|
14102;0x3716;SYRLINKS_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
|
||||||
14103;0x3717;PLOC_OVERHEATING;HIGH;No description;mission/controller/ThermalController.h
|
14104;0x3718;OBC_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
|
||||||
14104;0x3718;OBC_OVERHEATING;HIGH;No description;mission/controller/ThermalController.h
|
14105;0x3719;CAMERA_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
|
||||||
14105;0x3719;HPA_OVERHEATING;HIGH;No description;mission/controller/ThermalController.h
|
14106;0x371a;PCDU_SYSTEM_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
|
||||||
14106;0x371a;PLPCDU_OVERHEATING;HIGH;No description;mission/controller/ThermalController.h
|
14107;0x371b;HEATER_NOT_OFF_FOR_OFF_MODE;MEDIUM;No description;mission/controller/tcsDefs.h
|
||||||
14201;0x3779;TX_TIMER_EXPIRED;INFO;The transmit timer to protect the Syrlinks expired P1: The current timer value;mission/system/com/ComSubsystem.h
|
14201;0x3779;TX_TIMER_EXPIRED;INFO;The transmit timer to protect the Syrlinks expired P1: The current timer value;mission/system/com/ComSubsystem.h
|
||||||
14202;0x377a;BIT_LOCK_TX_ON;INFO;Transmitter will be turned on due to detection of bitlock;mission/system/com/ComSubsystem.h
|
14202;0x377a;BIT_LOCK_TX_ON;INFO;Transmitter will be turned on due to detection of bitlock;mission/system/com/ComSubsystem.h
|
||||||
14300;0x37dc;POSSIBLE_FILE_CORRUPTION;LOW;P1: Result code of TM packet parser. P2: Timestamp of possibly corrupt file as a unix timestamp.;mission/persistentTmStoreDefs.h
|
14300;0x37dc;POSSIBLE_FILE_CORRUPTION;LOW;P1: Result code of TM packet parser. P2: Timestamp of possibly corrupt file as a unix timestamp.;mission/persistentTmStoreDefs.h
|
||||||
|
|
@ -21,6 +21,7 @@ from tmtccmd.tc import DefaultPusQueueHelper
|
|||||||
from tmtccmd.tc.pus_200_fsfw_mode import pack_mode_data, Mode
|
from tmtccmd.tc.pus_200_fsfw_mode import pack_mode_data, Mode
|
||||||
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.config.object_ids import STR_ASSEMBLY, STAR_TRACKER_ID
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -188,6 +189,14 @@ class Submode(enum.IntEnum):
|
|||||||
FIRMWARE = 2
|
FIRMWARE = 2
|
||||||
|
|
||||||
|
|
||||||
|
def prompt_object_id_mode_cmd() -> bytes:
|
||||||
|
cmd_assy = input("Command Assembly (0) or Device Handler (1) ?: ")
|
||||||
|
if cmd_assy == "0":
|
||||||
|
return STR_ASSEMBLY
|
||||||
|
else:
|
||||||
|
return STAR_TRACKER_ID
|
||||||
|
|
||||||
|
|
||||||
def pack_star_tracker_commands(
|
def pack_star_tracker_commands(
|
||||||
object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code: str
|
object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code: str
|
||||||
):
|
):
|
||||||
@ -197,19 +206,19 @@ def pack_star_tracker_commands(
|
|||||||
obyt = object_id.as_bytes
|
obyt = object_id.as_bytes
|
||||||
if op_code == OpCodes.ON_BOOTLOADER:
|
if op_code == OpCodes.ON_BOOTLOADER:
|
||||||
q.add_log_cmd("Star tracker: Mode On, Submode Bootloader")
|
q.add_log_cmd("Star tracker: Mode On, Submode Bootloader")
|
||||||
data = pack_mode_data(obyt, Mode.ON, Submode.BOOTLOADER)
|
data = pack_mode_data(prompt_object_id_mode_cmd(), Mode.ON, Submode.BOOTLOADER)
|
||||||
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_FIRMWARE:
|
if op_code == OpCodes.ON_FIRMWARE:
|
||||||
q.add_log_cmd("Star tracker: Mode On, Submode Firmware")
|
q.add_log_cmd("Star tracker: Mode On, Submode Firmware")
|
||||||
data = pack_mode_data(obyt, Mode.ON, Submode.FIRMWARE)
|
data = pack_mode_data(prompt_object_id_mode_cmd(), Mode.ON, Submode.FIRMWARE)
|
||||||
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 == OpCodes.NORMAL:
|
||||||
q.add_log_cmd("Star tracker: Mode Normal")
|
q.add_log_cmd("Star tracker: Mode Normal")
|
||||||
data = pack_mode_data(obyt, Mode.NORMAL, 0)
|
data = pack_mode_data(prompt_object_id_mode_cmd(), Mode.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.OFF:
|
if op_code == OpCodes.OFF:
|
||||||
q.add_log_cmd("Star tracker: Mode Off")
|
q.add_log_cmd("Star tracker: Mode Off")
|
||||||
data = pack_mode_data(obyt, Mode.OFF, 0)
|
data = pack_mode_data(prompt_object_id_mode_cmd(), Mode.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.REQUEST_SOLUTION_SET_HK:
|
if op_code == OpCodes.REQUEST_SOLUTION_SET_HK:
|
||||||
q.add_log_cmd(Info.REQUEST_SOLUTION_SET_HK)
|
q.add_log_cmd(Info.REQUEST_SOLUTION_SET_HK)
|
||||||
|
@ -2,6 +2,8 @@ from eive_tmtc.config.object_ids import (
|
|||||||
ACS_SUBSYSTEM_ID,
|
ACS_SUBSYSTEM_ID,
|
||||||
ACS_CONTROLLER,
|
ACS_CONTROLLER,
|
||||||
IMTQ_HANDLER_ID,
|
IMTQ_HANDLER_ID,
|
||||||
|
GPS_0_HEALTH_DEV,
|
||||||
|
GPS_1_HEALTH_DEV,
|
||||||
GYRO_0_ADIS_HANDLER_ID,
|
GYRO_0_ADIS_HANDLER_ID,
|
||||||
GYRO_1_L3G_HANDLER_ID,
|
GYRO_1_L3G_HANDLER_ID,
|
||||||
ACS_BOARD_ASS_ID,
|
ACS_BOARD_ASS_ID,
|
||||||
@ -27,6 +29,7 @@ ACS_OBJ_DICT = {
|
|||||||
6: ("GYR 1 L3G", GYRO_1_L3G_HANDLER_ID),
|
6: ("GYR 1 L3G", GYRO_1_L3G_HANDLER_ID),
|
||||||
7: ("MGM 0 LIS3", MGM_0_LIS3_HANDLER_ID),
|
7: ("MGM 0 LIS3", MGM_0_LIS3_HANDLER_ID),
|
||||||
8: ("MGM 1 RM3100", MGM_1_RM3100_HANDLER_ID),
|
8: ("MGM 1 RM3100", MGM_1_RM3100_HANDLER_ID),
|
||||||
|
9: ("GPS 0 Health Device", GPS_0_HEALTH_DEV),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -71,6 +71,7 @@ class PcduSwitches(enum.IntEnum):
|
|||||||
PDU2_CH8_PAYLOAD_CAMERA = 17
|
PDU2_CH8_PAYLOAD_CAMERA = 17
|
||||||
|
|
||||||
P60_DOCK_5V_STACK = 18
|
P60_DOCK_5V_STACK = 18
|
||||||
|
P60_DOCK_3V3_STACK = 19
|
||||||
|
|
||||||
|
|
||||||
def pack_power_commands(q: DefaultPusQueueHelper, op_code: str):
|
def pack_power_commands(q: DefaultPusQueueHelper, op_code: str):
|
||||||
|
@ -566,7 +566,9 @@ def handle_pcdu_hk(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes):
|
|||||||
current_idx += len(PDU1_CHANNELS_NAMES)
|
current_idx += len(PDU1_CHANNELS_NAMES)
|
||||||
pdu2_vals = [hk_data[i + current_idx] for i in range(len(PDU2_CHANNELS_NAMES))]
|
pdu2_vals = [hk_data[i + current_idx] for i in range(len(PDU2_CHANNELS_NAMES))]
|
||||||
current_idx += len(PDU2_CHANNELS_NAMES)
|
current_idx += len(PDU2_CHANNELS_NAMES)
|
||||||
p60_stack_val = hk_data[current_idx]
|
p60_stack_5v_val = hk_data[current_idx]
|
||||||
|
current_idx += 1
|
||||||
|
p60_stack_3v3_val = hk_data[current_idx]
|
||||||
current_idx += 1
|
current_idx += 1
|
||||||
pw.dlog("PDU1 Switcher States")
|
pw.dlog("PDU1 Switcher States")
|
||||||
for name, val in zip(PDU1_CHANNELS_NAMES, pdu1_vals):
|
for name, val in zip(PDU1_CHANNELS_NAMES, pdu1_vals):
|
||||||
@ -574,5 +576,6 @@ def handle_pcdu_hk(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes):
|
|||||||
pw.dlog("PDU2 Switcher States")
|
pw.dlog("PDU2 Switcher States")
|
||||||
for name, val in zip(PDU2_CHANNELS_NAMES, pdu2_vals):
|
for name, val in zip(PDU2_CHANNELS_NAMES, pdu2_vals):
|
||||||
pw.dlog(f"{name.ljust(25)}: {val}")
|
pw.dlog(f"{name.ljust(25)}: {val}")
|
||||||
pw.dlog(f"{'P60 Dock 5V Stack'.ljust(25)}: {p60_stack_val}")
|
pw.dlog(f"{'P60 Dock 5V Stack'.ljust(25)}: {p60_stack_5v_val}")
|
||||||
pw.printer.print_validity_buffer(hk_data[current_idx:], 3)
|
pw.dlog(f"{'P60 Dock 3V3 Stack'.ljust(25)}: {p60_stack_3v3_val}")
|
||||||
|
pw.printer.print_validity_buffer(hk_data[current_idx:], 4)
|
||||||
|
@ -15,13 +15,21 @@ from tmtccmd.tc.pus_200_fsfw_mode import (
|
|||||||
from tmtccmd.tc.decorator import ServiceProviderParams
|
from tmtccmd.tc.decorator import ServiceProviderParams
|
||||||
|
|
||||||
|
|
||||||
|
class SystemMode:
|
||||||
|
BOOT = 5
|
||||||
|
SAFE = AcsMode.SAFE
|
||||||
|
IDLE = AcsMode.IDLE
|
||||||
|
|
||||||
|
|
||||||
class OpCode:
|
class OpCode:
|
||||||
|
BOOT_MODE = "boot"
|
||||||
SAFE_MODE = "safe"
|
SAFE_MODE = "safe"
|
||||||
IDLE_MODE = "idle"
|
IDLE_MODE = "idle"
|
||||||
ANNOUNCE_MODES = "announce_modes"
|
ANNOUNCE_MODES = "announce_modes"
|
||||||
|
|
||||||
|
|
||||||
class Info:
|
class Info:
|
||||||
|
BOOT_MODE = "Command System into Boot Mode"
|
||||||
SAFE_MODE = "Command System into Safe Mode"
|
SAFE_MODE = "Command System into Safe Mode"
|
||||||
IDLE_MODE = "Command System into Idle Pointing Mode"
|
IDLE_MODE = "Command System into Idle Pointing Mode"
|
||||||
ANNOUNCE_MODES = "Announce mode recursively"
|
ANNOUNCE_MODES = "Announce mode recursively"
|
||||||
@ -34,18 +42,22 @@ def build_system_cmds(p: ServiceProviderParams):
|
|||||||
prefix = "EIVE System"
|
prefix = "EIVE System"
|
||||||
if o == OpCode.SAFE_MODE:
|
if o == OpCode.SAFE_MODE:
|
||||||
q.add_log_cmd(f"{prefix}: {Info.SAFE_MODE}")
|
q.add_log_cmd(f"{prefix}: {Info.SAFE_MODE}")
|
||||||
q.add_pus_tc(create_mode_command(EIVE_SYSTEM_ID, AcsMode.SAFE, 0))
|
q.add_pus_tc(create_mode_command(EIVE_SYSTEM_ID, SystemMode.SAFE, 0))
|
||||||
elif o == OpCode.IDLE_MODE:
|
elif o == OpCode.IDLE_MODE:
|
||||||
q.add_log_cmd(f"{prefix}: {Info.IDLE_MODE}")
|
q.add_log_cmd(f"{prefix}: {Info.IDLE_MODE}")
|
||||||
q.add_pus_tc(create_mode_command(EIVE_SYSTEM_ID, AcsMode.IDLE, 0))
|
q.add_pus_tc(create_mode_command(EIVE_SYSTEM_ID, SystemMode.IDLE, 0))
|
||||||
elif o == OpCode.ANNOUNCE_MODES:
|
elif o == OpCode.ANNOUNCE_MODES:
|
||||||
q.add_log_cmd(f"{prefix}: {Info.ANNOUNCE_MODES}")
|
q.add_log_cmd(f"{prefix}: {Info.ANNOUNCE_MODES}")
|
||||||
q.add_pus_tc(create_announce_mode_recursive_command(EIVE_SYSTEM_ID))
|
q.add_pus_tc(create_announce_mode_recursive_command(EIVE_SYSTEM_ID))
|
||||||
|
elif o == OpCode.BOOT_MODE:
|
||||||
|
q.add_log_cmd(f"{prefix}: {Info.BOOT_MODE}")
|
||||||
|
q.add_pus_tc(create_mode_command(EIVE_SYSTEM_ID, SystemMode.BOOT, 0))
|
||||||
|
|
||||||
|
|
||||||
@tmtc_definitions_provider
|
@tmtc_definitions_provider
|
||||||
def add_system_cmd_defs(defs: TmtcDefinitionWrapper):
|
def add_system_cmd_defs(defs: TmtcDefinitionWrapper):
|
||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
|
oce.add(keys=OpCode.BOOT_MODE, info=Info.BOOT_MODE)
|
||||||
oce.add(keys=OpCode.SAFE_MODE, info=Info.SAFE_MODE)
|
oce.add(keys=OpCode.SAFE_MODE, info=Info.SAFE_MODE)
|
||||||
oce.add(keys=OpCode.IDLE_MODE, info=Info.IDLE_MODE)
|
oce.add(keys=OpCode.IDLE_MODE, info=Info.IDLE_MODE)
|
||||||
oce.add(keys=OpCode.ANNOUNCE_MODES, info=Info.ANNOUNCE_MODES)
|
oce.add(keys=OpCode.ANNOUNCE_MODES, info=Info.ANNOUNCE_MODES)
|
||||||
|
Reference in New Issue
Block a user