Compare commits

...

11 Commits

Author SHA1 Message Date
c4bd355146 PLOC SUPV extensions
All checks were successful
EIVE/-/pipeline/head This commit looks good
2023-11-08 18:18:40 +01:00
99c6c8bbd0 v5.10.1
All checks were successful
EIVE/-/pipeline/head This commit looks good
2023-10-27 15:02:25 +02:00
26552ebeca Merge pull request 'more cleaning' (#252) from str-cleaning into main
All checks were successful
EIVE/-/pipeline/head This commit looks good
Reviewed-on: #252
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-10-27 14:37:00 +02:00
76e80c259c Merge branch 'main' into str-cleaning
Some checks are pending
EIVE/-/pipeline/pr-main Build queued...
2023-10-27 14:36:50 +02:00
f59c2b9a9e Merge pull request 'improve supv reset cmd' (#251) from improve-supv-reset-cmd into main
All checks were successful
EIVE/-/pipeline/head This commit looks good
Reviewed-on: #251
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-10-27 14:36:22 +02:00
bf3565f497 Merge branch 'main' into improve-supv-reset-cmd
Some checks are pending
EIVE/-/pipeline/pr-main Build queued...
2023-10-27 14:36:17 +02:00
7f119f36d2 Merge pull request 're-run generators' (#250) from update-events into main
All checks were successful
EIVE/-/pipeline/head This commit looks good
Reviewed-on: #250
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-10-27 14:35:48 +02:00
18728731ed Merge branch 'main' into str-cleaning
All checks were successful
EIVE/-/pipeline/pr-main This commit looks good
2023-10-27 14:26:16 +02:00
14334dae92 re-run generators
All checks were successful
EIVE/-/pipeline/head This commit looks good
EIVE/-/pipeline/pr-main This commit looks good
2023-10-27 14:24:31 +02:00
b08f9d9af6 more cleaning
All checks were successful
EIVE/-/pipeline/head This commit looks good
2023-10-27 12:28:55 +02:00
84f50bab83 improve supv reset cmd
All checks were successful
EIVE/-/pipeline/head This commit looks good
EIVE/-/pipeline/pr-main This commit looks good
2023-10-26 11:18:30 +02:00
8 changed files with 34 additions and 67 deletions

View File

@@ -10,6 +10,10 @@ list yields a list of all related PRs for each release.
# [unreleased]
# [v5.10.1] 2023-10-27
- Minor improvements, update event translation.
# [v5.10.0] 2023-10-27
- Added new STR commands to allow more debugging.

View File

@@ -312,5 +312,5 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
14313;0x37e9;DUMP_HK_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
14314;0x37ea;DUMP_CFDP_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
14500;0x38a4;TEMPERATURE_ALL_ONES_START;MEDIUM;Detected invalid values, starting invalid message counting;mission/acs/SusHandler.h
14501;0x38a5;TEMPERATURE_ALL_ONES_RECOVERY;INFO;Detected valid values again, resetting invalid message counter. P1: Invalid message counter.;mission/acs/SusHandler.h
14501;0x38a5;TEMPERATURE_ALL_ONES_RECOVERY;INFO;Detected valid values for a prolonged time again, resetting all counters. P1: Number of periods with invalid messages. P2: Maximum invalid message counter.;mission/acs/SusHandler.h
14600;0x3908;FAULT_HANDLER_TRIGGERED;LOW;P1: CFDP fault handler code. P2: CFDP condition code.;mission/cfdp/defs.h
1 Event ID (dec) Event ID (hex) Name Severity Description File Path
312 14313 0x37e9 DUMP_HK_CANCELLED LOW P1: Number of dumped packets. P2: Total dumped bytes. mission/persistentTmStoreDefs.h
313 14314 0x37ea DUMP_CFDP_CANCELLED LOW P1: Number of dumped packets. P2: Total dumped bytes. mission/persistentTmStoreDefs.h
314 14500 0x38a4 TEMPERATURE_ALL_ONES_START MEDIUM Detected invalid values, starting invalid message counting mission/acs/SusHandler.h
315 14501 0x38a5 TEMPERATURE_ALL_ONES_RECOVERY INFO Detected valid values again, resetting invalid message counter. P1: Invalid message counter. Detected valid values for a prolonged time again, resetting all counters. P1: Number of periods with invalid messages. P2: Maximum invalid message counter. mission/acs/SusHandler.h
316 14600 0x3908 FAULT_HANDLER_TRIGGERED LOW P1: CFDP fault handler code. P2: CFDP condition code. mission/cfdp/defs.h

View File

@@ -167,6 +167,9 @@ NOT_OK_TM_STORE = bytes([0x73, 0x02, 0x00, 0x03])
HK_TM_STORE = bytes([0x73, 0x02, 0x00, 0x04])
CFDP_TM_STORE = bytes([0x73, 0x03, 0x00, 0x00])
SUPV_FILTER_SET = [PLOC_SUPV_ID, PDU_2_HANDLER_ID, PDU_1_HANDLER_ID]
ObjectIdDict = Dict[bytes, ObjectIdU32]

View File

@@ -116,6 +116,7 @@ class OpCodes:
READ_SECONDARY_TM_SET = "read_secondary_tm"
TAKE_IMAGE = "take_image"
UPLOAD_IMAGE = "upload_image"
DOWNLOAD_IMAGE = "download_image"
SET_IMG_PROCESSOR_MODE = "set_img_proc_mode"
FW_UPDATE = "fw_update"
SET_TIME_FROM_SYS_TIME = "set_time"
@@ -128,7 +129,8 @@ class Info:
ADD_SECONDARY_TM_TO_NORMAL_MODE = "Add specific Dataset to secondary TM"
RESET_SECONDARY_TM_SET = "Reset secondary TM to Temperature Set only"
READ_SECONDARY_TM_SET = "Read list of secondary TM Sets"
UPLOAD_IMAGE = "Upload Image"
UPLOAD_IMAGE = "Upload Optical Image"
DOWNLOAD_IMAGE = "Download Optical Image"
TAKE_IMAGE = "Take Image"
SET_IMG_PROCESSOR_MODE = "Set Image Processor Mode"
FW_UPDATE = "Firmware Update"
@@ -323,8 +325,8 @@ def pack_star_tracker_commands( # noqa C901
+ bytearray(image, "utf-8")
)
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data))
if op_code == "16":
q.add_log_cmd("Star tracker: Download image")
if op_code == OpCodes.DOWNLOAD_IMAGE:
q.add_log_cmd(f"STR: {Info.DOWNLOAD_IMAGE}")
path = input("Specify storage location (default - /mnt/sd0/startracker): ")
if not path:
path = FileDefs.download_path
@@ -1154,63 +1156,17 @@ def add_str_cmds(defs: TmtcDefinitionWrapper):
oce.add(OpCodes.OFF, "Mode Off")
oce.add(OpCodes.PING, "Star Tracker: Ping")
oce.add(OpCodes.TAKE_IMAGE, "Take Image")
oce.add(OpCodes.UPLOAD_IMAGE, Info.UPLOAD_IMAGE)
oce.add(OpCodes.DOWNLOAD_IMAGE, Info.DOWNLOAD_IMAGE)
oce.add(OpCodes.ONE_SHOOT_HK, Info.ONE_SHOOT_HK)
oce.add(OpCodes.ENABLE_HK, Info.ENABLE_HK)
oce.add(OpCodes.DISABLE_HK, Info.DISABLE_HK)
oce.add(OpCodes.UPLOAD_IMAGE, Info.UPLOAD_IMAGE)
oce.add(OpCodes.SET_IMG_PROCESSOR_MODE, Info.SET_IMG_PROCESSOR_MODE)
oce.add(
OpCodes.ADD_SECONDARY_TM_TO_NORMAL_MODE, Info.ADD_SECONDARY_TM_TO_NORMAL_MODE
)
oce.add(OpCodes.READ_SECONDARY_TM_SET, Info.READ_SECONDARY_TM_SET)
oce.add(OpCodes.RESET_SECONDARY_TM_SET, Info.RESET_SECONDARY_TM_SET)
# oce.add("6", "Star Tracker: Switch to bootloader program")
# oce.add("7", "Star Tracker: Request temperature")
# oce.add("8", "Star Tracker: Request version")
# oce.add("9", "Star Tracker: Request interface")
# oce.add("10", "Star Tracker: Request power")
# oce.add("11", "Star Tracker: Set subscription parameters")
# oce.add("12", "Star Tracker: Boot image (requires bootloader mode)")
# oce.add("13", "Star Tracker: Request time")
# oce.add("14", "Star Tracker: Request solution")
# oce.add("16", "Star Tracker: Download image")
# oce.add("17", "Star Tracker: Set limit parameters")
# oce.add("17", "Star Tracker: Set limit parameters")
# oce.add("18", "Star Tracker: Set tracking parameters")
# oce.add("19", "Star Tracker: Set mounting parameters")
# oce.add("20", "Star Tracker: Set camera parameters")
# oce.add("22", "Star Tracker: Set centroiding parameters")
# oce.add("23", "Star Tracker: Set LISA parameters")
# oce.add("24", "Star Tracker: Set matching parameters")
# oce.add("25", "Star Tracker: Set validation parameters")
# oce.add("26", "Star Tracker: Set algo parameters")
# oce.add("28", "Star Tracker: Stop str helper")
# oce.add("30", "Star Tracker: Set name of download image")
# oce.add("31", "Star Tracker: Request histogram")
# oce.add("32", "Star Tracker: Request contrast")
# oce.add("33", "Star Tracker: Set json filename")
# oce.add("35", "Star Tracker: Flash read")
# oce.add("36", "Star Tracker: Set flash read filename")
# oce.add("37", "Star Tracker: Get checksum")
# oce.add("49", "Star Tracker: Request camera parameter")
# oce.add("50", "Star Tracker: Request limits")
# oce.add("52", "Star Tracker: (EGSE only) Load camera ground config")
# oce.add("53", "Star Tracker: (EGSE only) Load camera flight config")
# oce.add("54", "Star Tracker: Request log level parameters")
# oce.add("55", "Star Tracker: Request mounting parameters")
# oce.add("56", "Star Tracker: Request image processor parameters")
# oce.add("57", "Star Tracker: Request centroiding parameters")
# oce.add("58", "Star Tracker: Request lisa parameters")
# oce.add("59", "Star Tracker: Request matching parameters")
# oce.add("60", "Star Tracker: Request tracking parameters")
# oce.add("61", "Star Tracker: Request validation parameters")
# oce.add("62", "Star Tracker: Request algo parameters")
# oce.add("63", "Star Tracker: Request subscription parameters")
# oce.add("64", "Star Tracker: Request log subscription parameters")
# oce.add("65", "Star Tracker: Request debug camera parameters")
# oce.add("66", "Star Tracker: Set log level parameters")
# oce.add("67", "Star Tracker: Set log subscription parameters")
# oce.add("68", "Star Tracker: Set debug camera parameters")
oce.add(OpCodes.FW_UPDATE, Info.FW_UPDATE)
oce.add(OpCodes.SET_TIME_FROM_SYS_TIME, Info.SET_TIME_FROM_SYS_TIME)
defs.add_service(CustomServiceList.STAR_TRACKER.value, "Star Tracker", oce)

View File

@@ -151,6 +151,7 @@ class OpCodes:
PERFORM_UPDATE = ["update"]
FACTORY_RESET = ["factory_reset"]
MEM_CHECK = ["mem_check"]
RESET_MPSOC = "reset_mpsoc"
class Info(str, enum.Enum):
@@ -168,6 +169,7 @@ class Info(str, enum.Enum):
REQ_BOOT_STATUS_REPORT = "Request boot status report and HK"
MEM_CHECK = "Memory Check"
SEL_NVM = "Select NVM"
RESET_MPSOC = "Reset MPSoC"
@tmtc_definitions_provider
@@ -183,8 +185,8 @@ def add_ploc_supv_cmds(defs: TmtcDefinitionWrapper):
oce.add(OpCodes.SEL_NVM, Info.SEL_NVM)
oce.add(OpCodes.SET_TIME_REF, Info.SET_TIME_REF)
oce.add(OpCodes.FACTORY_RESET, Info.FACTORY_RESET)
oce.add(OpCodes.RESET_MPSOC, Info.RESET_MPSOC)
oce.add("8", "PLOC Supervisor: Set max restart tries")
oce.add("9", "PLOC Supervisor: Reset MPSoC")
oce.add("11", "PLOC Supervisor: Set boot timeout")
oce.add("12", "PLOC Supervisor: Disable Hk")
oce.add(OpCodes.REQ_BOOT_STATUS_REPORT, Info.REQ_BOOT_STATUS_REPORT)
@@ -268,7 +270,6 @@ def pack_ploc_supv_commands(p: ServiceProviderParams): # noqa C901
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
if op_code in OpCodes.FACTORY_RESET:
q.add_log_cmd(f"{prefix}: {Info.FACTORY_RESET}")
key = -1
while True:
print("Please select the key for a factory reset operation")
for key, val in FACTORY_RESET_OPS.items():
@@ -293,8 +294,8 @@ def pack_ploc_supv_commands(p: ServiceProviderParams): # noqa C901
+ struct.pack("!B", restart_tries)
)
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
if op_code == "9":
q.add_log_cmd("PLOC Supervisor: Reset MPSoC")
if op_code == OpCodes.RESET_MPSOC:
q.add_log_cmd(Info.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))
if op_code in OpCodes.SET_TIME_REF:
@@ -675,10 +676,10 @@ def pack_set_gpio_cmd(object_id: bytes) -> bytearray:
port = int(input("Specify port: 0x"), 16)
pin = int(input("Specify pin: 0x"), 16)
val = int(input("Specify val: 0x"), 16)
command = object_id + struct.pack("!I", SupvActionId.SET_GPIO)
command = command + struct.pack("!B", port)
command = command + struct.pack("!B", pin)
command = command + struct.pack("!B", val)
command = bytearray(object_id + struct.pack("!I", SupvActionId.SET_GPIO))
command.append(port)
command.append(pin)
command.append(val)
return bytearray(command)

View File

@@ -28,10 +28,12 @@ from tmtccmd.util import ObjectIdU32
class P60OpCode:
STACK_3V3_ON = ["stack_3v3_on", "1"]
STACK_3V3_OFF = ["stack_3v3_off", "2"]
STACK_5V_ON = ["stack_5v_on", "3"]
STACK_5V_OFF = ["stack_5v_off", "4"]
STACK_3V3_ON = "stack_3v3_on"
STACK_3V3_OFF = "stack_3v3_off"
STACK_5V_ON = "stack_5v_on"
STACK_5V_OFF = "stack_5v_off"
ACU_OFF = "acu_off"
ACU_ON = "acu_on"
TEST = ["test", "0"]

View File

@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
name = "eive-tmtc"
description = "TMTC Commander EIVE"
readme = "README.md"
version = "5.10.0"
version = "5.10.1"
requires-python = ">=3.10"
license = {text = "Apache-2.0"}
authors = [

View File

@@ -25,7 +25,7 @@ from tmtccmd.cfdp.mib import (
RemoteEntityCfg,
)
from tmtccmd import BackendBase
from tmtccmd.util import FileSeqCountProvider, PusFileSeqCountProvider
from tmtccmd.util import FileSeqCountProvider, PusFileSeqCountProvider
from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter
from tmtccmd.logging.pus import (
@@ -55,6 +55,7 @@ from eive_tmtc.config.definitions import (
CFDP_REMOTE_ENTITY_ID,
)
from eive_tmtc.config.hook import EiveHookObject
from eive_tmtc.config.object_ids import SUPV_FILTER_SET
from eive_tmtc.pus_tm.pus_demux import pus_factory_hook
_LOGGER = APP_LOGGER
@@ -78,7 +79,7 @@ class PusHandler(SpecificApidHandlerBase):
self.verif_wrapper = wrapper
self.raw_logger = raw_logger
self.hk_level = hk_level
self.these_objs_hk_only = []
self.these_objs_hk_only = SUPV_FILTER_SET
self.hk_filter = HkFilter(object_ids=self.these_objs_hk_only, set_ids=[])
def handle_tm(self, packet: bytes, _user_args: any):