Compare commits
19 Commits
f18a7f49cf
...
v2.17.2
Author | SHA1 | Date | |
---|---|---|---|
a3e03350fa | |||
d758a1f11a | |||
af17e30676 | |||
5652305ee1 | |||
a3f5c92654 | |||
e74e751142 | |||
d43badaddf | |||
26b292f05a | |||
6f397289ca | |||
3d4ef7003c | |||
bf31810f25 | |||
9462a6e245 | |||
208d328683 | |||
90ea903c0a | |||
2aa1ecd3a7 | |||
a5bfee076a | |||
0c17203825 | |||
beb8e61e2c | |||
e9d10dae1b |
22
CHANGELOG.md
22
CHANGELOG.md
@ -10,6 +10,28 @@ list yields a list of all related PRs for each release.
|
|||||||
|
|
||||||
# [unreleased]
|
# [unreleased]
|
||||||
|
|
||||||
|
# [v2.17.2] 2023-03-07
|
||||||
|
|
||||||
|
- Updated CSVs
|
||||||
|
- New events for core controller
|
||||||
|
|
||||||
|
# [v2.17.1] 2023-03-07
|
||||||
|
|
||||||
|
## Added
|
||||||
|
|
||||||
|
- `MGT_ASSEMBLY` object ID
|
||||||
|
|
||||||
|
# [v2.17.0] 2023-03-07
|
||||||
|
|
||||||
|
## Added
|
||||||
|
|
||||||
|
- Health set and health announce commands
|
||||||
|
- Camera Switcher, Syrlinks Assembly, IMTQ assembly and Star Tracker assembly object IDs added
|
||||||
|
|
||||||
|
## Changed
|
||||||
|
|
||||||
|
- Breaking typo fix in TMP1075 `SetId`
|
||||||
|
|
||||||
# [v2.16.4] 2023-03-04
|
# [v2.16.4] 2023-03-04
|
||||||
|
|
||||||
## Added
|
## Added
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
__version__ = "2.16.4"
|
__version__ = "2.17.2"
|
||||||
|
|
||||||
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 = 16
|
VERSION_MINOR = 17
|
||||||
VERSION_REVISION = 4
|
VERSION_REVISION = 2
|
||||||
|
|
||||||
EIVE_TMTC_ROOT = Path(__file__).parent
|
EIVE_TMTC_ROOT = Path(__file__).parent
|
||||||
PACKAGE_ROOT = EIVE_TMTC_ROOT.parent
|
PACKAGE_ROOT = EIVE_TMTC_ROOT.parent
|
||||||
|
@ -250,12 +250,14 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
|
|||||||
13904;0x3650;WRITE_CONFIGFILE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
13904;0x3650;WRITE_CONFIGFILE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
||||||
13905;0x3651;READ_CONFIGFILE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
13905;0x3651;READ_CONFIGFILE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
||||||
14000;0x36b0;ALLOC_FAILURE;MEDIUM;No description;bsp_q7s/core/CoreController.h
|
14000;0x36b0;ALLOC_FAILURE;MEDIUM;No description;bsp_q7s/core/CoreController.h
|
||||||
14001;0x36b1;REBOOT_SW;MEDIUM; Software reboot occurred. Can also be a systemd reboot. P1: Current Chip, P2: Current Copy;bsp_q7s/core/CoreController.h
|
14001;0x36b1;REBOOT_SW;LOW; Software reboot occurred. Can also be a systemd reboot. P1: Current Chip, P2: Current Copy;bsp_q7s/core/CoreController.h
|
||||||
14002;0x36b2;REBOOT_MECHANISM_TRIGGERED;MEDIUM;The reboot mechanism was triggered. P1: First 16 bits: Last Chip, Last 16 bits: Last Copy, P2: Each byte is the respective reboot count for the slots;bsp_q7s/core/CoreController.h
|
14002;0x36b2;REBOOT_MECHANISM_TRIGGERED;MEDIUM;The reboot mechanism was triggered. P1: First 16 bits: Last Chip, Last 16 bits: Last Copy, P2: Each byte is the respective reboot count for the slots;bsp_q7s/core/CoreController.h
|
||||||
14003;0x36b3;REBOOT_HW;MEDIUM;No description;bsp_q7s/core/CoreController.h
|
14003;0x36b3;REBOOT_HW;MEDIUM;No description;bsp_q7s/core/CoreController.h
|
||||||
14004;0x36b4;NO_SD_CARD_ACTIVE;HIGH;No SD card was active. Core controller will attempt to re-initialize a SD card.;bsp_q7s/core/CoreController.h
|
14004;0x36b4;NO_SD_CARD_ACTIVE;HIGH;No SD card was active. Core controller will attempt to re-initialize a SD card.;bsp_q7s/core/CoreController.h
|
||||||
14005;0x36b5;VERSION_INFO;INFO;P1: Byte 0: Major, Byte 1: Minor, Byte 2: Patch, Byte 3: Has Git Hash P2: First four letters of Git SHA is the last byte of P1 is set.;bsp_q7s/core/CoreController.h
|
14005;0x36b5;VERSION_INFO;INFO;P1: Byte 0: Major, Byte 1: Minor, Byte 2: Patch, Byte 3: Has Git Hash P2: First four letters of Git SHA is the last byte of P1 is set.;bsp_q7s/core/CoreController.h
|
||||||
14006;0x36b6;CURRENT_IMAGE_INFO;INFO;P1: Current Chip, P2: Current Copy;bsp_q7s/core/CoreController.h
|
14006;0x36b6;CURRENT_IMAGE_INFO;INFO;P1: Current Chip, P2: Current Copy;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
|
||||||
14100;0x3714;NO_VALID_SENSOR_TEMPERATURE;MEDIUM;No description;mission/controller/ThermalController.h
|
14100;0x3714;NO_VALID_SENSOR_TEMPERATURE;MEDIUM;No description;mission/controller/ThermalController.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/ThermalController.h
|
||||||
14102;0x3716;SYRLINKS_OVERHEATING;HIGH;No description;mission/controller/ThermalController.h
|
14102;0x3716;SYRLINKS_OVERHEATING;HIGH;No description;mission/controller/ThermalController.h
|
||||||
|
|
@ -132,10 +132,21 @@ PL_SUBSYSTEM_ID = bytes([0x73, 0x01, 0x00, 0x02])
|
|||||||
TCS_SUBSYSTEM_ID = bytes([0x73, 0x01, 0x00, 0x03])
|
TCS_SUBSYSTEM_ID = bytes([0x73, 0x01, 0x00, 0x03])
|
||||||
COM_SUBSYSTEM_ID = bytes([0x73, 0x01, 0x00, 0x04])
|
COM_SUBSYSTEM_ID = bytes([0x73, 0x01, 0x00, 0x04])
|
||||||
|
|
||||||
|
# Legacy names, kept for backwards compatibility
|
||||||
ACS_BOARD_ASS_ID = bytes([0x73, 0x00, 0x00, 0x01])
|
ACS_BOARD_ASS_ID = bytes([0x73, 0x00, 0x00, 0x01])
|
||||||
SUS_BOARD_ASS_ID = bytes([0x73, 0x00, 0x00, 0x02])
|
|
||||||
TCS_BOARD_ASS_ID = bytes([0x73, 0x00, 0x00, 0x03])
|
TCS_BOARD_ASS_ID = bytes([0x73, 0x00, 0x00, 0x03])
|
||||||
|
SUS_BOARD_ASS_ID = bytes([0x73, 0x00, 0x00, 0x02])
|
||||||
|
IMTQ_ASSEMBLY = bytes([0x73, 0x00, 0x00, 0x08])
|
||||||
|
|
||||||
|
ACS_BOARD_ASSEMBLY = bytes([0x73, 0x00, 0x00, 0x01])
|
||||||
|
SUS_BOARD_ASSEMBLY = bytes([0x73, 0x00, 0x00, 0x02])
|
||||||
|
TCS_BOARD_ASSEMBLY = bytes([0x73, 0x00, 0x00, 0x03])
|
||||||
RW_ASSEMBLY = bytes([0x73, 0x00, 0x00, 0x04])
|
RW_ASSEMBLY = bytes([0x73, 0x00, 0x00, 0x04])
|
||||||
|
CAM_SWITCHER = bytes([0x73, 0x00, 0x00, 0x06])
|
||||||
|
SYRLINKS_ASSEMBLY = bytes([0x73, 0x00, 0x00, 0x07])
|
||||||
|
# To be removed soon..
|
||||||
|
MGT_ASSEMBLY = bytes([0x73, 0x00, 0x00, 0x08])
|
||||||
|
STR_ASSEMBLY = bytes([0x73, 0x00, 0x00, 0x09])
|
||||||
|
|
||||||
# Controllers
|
# Controllers
|
||||||
TCS_CONTROLLER = bytes([0x43, 0x40, 0x00, 0x01])
|
TCS_CONTROLLER = bytes([0x43, 0x40, 0x00, 0x01])
|
||||||
|
@ -143,6 +143,7 @@
|
|||||||
0x73000006;CAM_SWITCHER
|
0x73000006;CAM_SWITCHER
|
||||||
0x73000007;SYRLINKS_ASSY
|
0x73000007;SYRLINKS_ASSY
|
||||||
0x73000008;IMTQ_ASSY
|
0x73000008;IMTQ_ASSY
|
||||||
|
0x73000009;STR_ASSY
|
||||||
0x73000100;TM_FUNNEL
|
0x73000100;TM_FUNNEL
|
||||||
0x73000101;PUS_TM_FUNNEL
|
0x73000101;PUS_TM_FUNNEL
|
||||||
0x73000102;CFDP_TM_FUNNEL
|
0x73000102;CFDP_TM_FUNNEL
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
Full ID (hex); Name; Description; Unique ID; Subsytem Name; File Path
|
Full ID (hex); Name; Description; Unique ID; Subsytem Name; File Path
|
||||||
0x0000;OK;System-wide code for ok.;0;HasReturnvaluesIF;fsfw/returnvalues/returnvalue.h
|
0x0000;OK;System-wide code for ok.;0;HasReturnvaluesIF;fsfw/returnvalues/returnvalue.h
|
||||||
0x0001;Failed;Unspecified system-wide code for failed.;1;HasReturnvaluesIF;fsfw/returnvalues/returnvalue.h
|
0x0001;Failed;Unspecified system-wide code for failed.;1;HasReturnvaluesIF;fsfw/returnvalues/returnvalue.h
|
||||||
0x63a0;NVMB_KeyNotExists;Specified key does not exist in json file;160;NVM_PARAM_BASE;mission/memory/NVMParameterBase.h
|
0x63a0;NVMB_KeyNotExists;Specified key does not exist in json file;160;NVM_PARAM_BASE;mission/memory/NvmParameterBase.h
|
||||||
0x5100;IMTQ_InvalidCommandCode;No description;0;IMTQ_HANDLER;mission/devices/devicedefinitions/imtqHelpers.h
|
0x5100;IMTQ_InvalidCommandCode;No description;0;IMTQ_HANDLER;mission/devices/devicedefinitions/imtqHelpers.h
|
||||||
0x5101;IMTQ_MgmMeasurementLowLevelError;No description;1;IMTQ_HANDLER;mission/devices/devicedefinitions/imtqHelpers.h
|
0x5101;IMTQ_MgmMeasurementLowLevelError;No description;1;IMTQ_HANDLER;mission/devices/devicedefinitions/imtqHelpers.h
|
||||||
0x5102;IMTQ_ActuateCmdLowLevelError;No description;2;IMTQ_HANDLER;mission/devices/devicedefinitions/imtqHelpers.h
|
0x5102;IMTQ_ActuateCmdLowLevelError;No description;2;IMTQ_HANDLER;mission/devices/devicedefinitions/imtqHelpers.h
|
||||||
|
|
@ -28,7 +28,7 @@ class Info:
|
|||||||
def prompt_health() -> FsfwHealth:
|
def prompt_health() -> FsfwHealth:
|
||||||
for item in FsfwHealth:
|
for item in FsfwHealth:
|
||||||
print(f"{item}: {item.name}")
|
print(f"{item}: {item.name}")
|
||||||
health_idx = input("Please enter health by index: ")
|
health_idx = int(input("Please enter health by index: "))
|
||||||
return FsfwHealth(health_idx)
|
return FsfwHealth(health_idx)
|
||||||
|
|
||||||
|
|
||||||
@ -39,14 +39,14 @@ def pack_test_command(p: ServiceProviderParams):
|
|||||||
if o == OpCode.SET_HEALTH:
|
if o == OpCode.SET_HEALTH:
|
||||||
app_data = bytearray(prompt_object())
|
app_data = bytearray(prompt_object())
|
||||||
health = prompt_health()
|
health = prompt_health()
|
||||||
app_data.extend(struct.pack("!I", health))
|
app_data.append(health)
|
||||||
q.add_log_cmd(Info.SET_HEALTH)
|
q.add_log_cmd(Info.SET_HEALTH)
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
PusTelecommand(
|
PusTelecommand(
|
||||||
service=201, subservice=Subservice.TC_SET_HEALTH, app_data=app_data
|
service=201, subservice=Subservice.TC_SET_HEALTH, app_data=app_data
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if o == OpCode.ANNOUNCE_HEALTH:
|
elif o == OpCode.ANNOUNCE_HEALTH:
|
||||||
app_data = bytearray(prompt_object())
|
app_data = bytearray(prompt_object())
|
||||||
q.add_log_cmd(Info.ANNOUNCE_HEALTH)
|
q.add_log_cmd(Info.ANNOUNCE_HEALTH)
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
@ -59,8 +59,8 @@ def pack_test_command(p: ServiceProviderParams):
|
|||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
PusTelecommand(service=201, subservice=Subservice.TC_ANNOUNCE_HEALTH_ALL)
|
PusTelecommand(service=201, subservice=Subservice.TC_ANNOUNCE_HEALTH_ALL)
|
||||||
)
|
)
|
||||||
return
|
else:
|
||||||
raise ValueError(f"unknown op code {o} for service {CustomServiceList.HEALTH}")
|
raise ValueError(f"unknown op code {o} for service {CustomServiceList.HEALTH}")
|
||||||
|
|
||||||
|
|
||||||
@tmtc_definitions_provider
|
@tmtc_definitions_provider
|
||||||
|
@ -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,
|
||||||
|
GYRO_0_ADIS_HANDLER_ID,
|
||||||
|
GYRO_1_L3G_HANDLER_ID,
|
||||||
ACS_BOARD_ASS_ID,
|
ACS_BOARD_ASS_ID,
|
||||||
RW_ASSEMBLY,
|
RW_ASSEMBLY,
|
||||||
SUS_BOARD_ASS_ID,
|
SUS_BOARD_ASS_ID,
|
||||||
@ -19,18 +21,20 @@ ACS_OBJ_DICT = {
|
|||||||
2: ("ACS Board Assembly", ACS_BOARD_ASS_ID),
|
2: ("ACS Board Assembly", ACS_BOARD_ASS_ID),
|
||||||
3: ("RW Assembly", RW_ASSEMBLY),
|
3: ("RW Assembly", RW_ASSEMBLY),
|
||||||
4: ("iMTQ MGT", IMTQ_HANDLER_ID),
|
4: ("iMTQ MGT", IMTQ_HANDLER_ID),
|
||||||
|
5: ("GYR 0 ADIS", GYRO_0_ADIS_HANDLER_ID),
|
||||||
|
6: ("GYR 1 L3G", GYRO_1_L3G_HANDLER_ID),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def prompt_object() -> bytes:
|
def prompt_object() -> bytes:
|
||||||
for k, v in SUBSYSTEM_DICT:
|
for k, v in SUBSYSTEM_DICT.items():
|
||||||
print(f"{k}: {v}")
|
print(f"{k}: {v}")
|
||||||
subsystem_key = int(input("Please specify target subsystem by key: "))
|
subsystem_key = int(input("Please specify target subsystem by key: "))
|
||||||
subsystem = SUBSYSTEM_DICT[subsystem_key]
|
subsystem = SUBSYSTEM_DICT[subsystem_key]
|
||||||
if subsystem is None:
|
if subsystem is None:
|
||||||
raise ValueError("invalid key")
|
raise ValueError("invalid key")
|
||||||
if subsystem == "acs":
|
if subsystem == "acs":
|
||||||
for k, v in ACS_OBJ_DICT:
|
for k, v in ACS_OBJ_DICT.items():
|
||||||
print(f"{k}: {v[0]}")
|
print(f"{k}: {v[0]}")
|
||||||
obj_key = int(input("Please specify target object by key: "))
|
obj_key = int(input("Please specify target object by key: "))
|
||||||
acs_obj = ACS_OBJ_DICT[obj_key]
|
acs_obj = ACS_OBJ_DICT[obj_key]
|
||||||
|
@ -40,7 +40,7 @@ class Tmp1075ActionId(enum.IntEnum):
|
|||||||
|
|
||||||
|
|
||||||
class SetId:
|
class SetId:
|
||||||
TMEPERATURE = 1
|
TEMPERATURE = 1
|
||||||
|
|
||||||
|
|
||||||
def pack_tmp1075_test_into(
|
def pack_tmp1075_test_into(
|
||||||
@ -64,7 +64,7 @@ def pack_tmp1075_test_into(
|
|||||||
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 == OpCode.HK:
|
if op_code == OpCode.HK:
|
||||||
q.add_log_cmd("TMP1075: Request One-Shot HK")
|
q.add_log_cmd("TMP1075: Request One-Shot HK")
|
||||||
q.add_pus_tc(create_request_one_hk_command(make_sid(obyt, SetId.TMEPERATURE)))
|
q.add_pus_tc(create_request_one_hk_command(make_sid(obyt, SetId.TEMPERATURE)))
|
||||||
return q
|
return q
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user