diff --git a/eive_tmtc/__init__.py b/eive_tmtc/__init__.py index 66deb69..b6e6626 100644 --- a/eive_tmtc/__init__.py +++ b/eive_tmtc/__init__.py @@ -1,11 +1,11 @@ -__version__ = "2.13.0" +__version__ = "2.14.0" import logging from pathlib import Path SW_NAME = "eive-tmtc" VERSION_MAJOR = 2 -VERSION_MINOR = 13 +VERSION_MINOR = 14 VERSION_REVISION = 0 EIVE_TMTC_ROOT = Path(__file__).parent diff --git a/eive_tmtc/config/events.csv b/eive_tmtc/config/events.csv index b8bc467..5c2b7e9 100644 --- a/eive_tmtc/config/events.csv +++ b/eive_tmtc/config/events.csv @@ -145,8 +145,9 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path 12404;0x3074;BIT_LOCK_PDEC;INFO;Bit lock detected (data valid);linux/ipcore/PdecHandler.h 12405;0x3075;LOST_CARRIER_LOCK_PDEC;INFO;Lost carrier lock;linux/ipcore/PdecHandler.h 12406;0x3076;LOST_BIT_LOCK_PDEC;INFO;Lost bit lock;linux/ipcore/PdecHandler.h -12407;0x3077;POLL_SYSCALL_ERROR_PDEC;MEDIUM;No description;linux/ipcore/PdecHandler.h -12408;0x3078;WRITE_SYSCALL_ERROR_PDEC;MEDIUM;No description;linux/ipcore/PdecHandler.h +12407;0x3077;TOO_MANY_IRQS;MEDIUM;Too many IRQs over the time window of one second. P1: Allowed TCs;linux/ipcore/PdecHandler.h +12408;0x3078;POLL_SYSCALL_ERROR_PDEC;MEDIUM;No description;linux/ipcore/PdecHandler.h +12409;0x3079;WRITE_SYSCALL_ERROR_PDEC;MEDIUM;No description;linux/ipcore/PdecHandler.h 12500;0x30d4;IMAGE_UPLOAD_FAILED;LOW;Image upload failed;linux/devices/startracker/StrHelper.h 12501;0x30d5;IMAGE_DOWNLOAD_FAILED;LOW;Image download failed;linux/devices/startracker/StrHelper.h 12502;0x30d6;IMAGE_UPLOAD_SUCCESSFUL;LOW;Uploading image to star tracker was successfulop;linux/devices/startracker/StrHelper.h diff --git a/eive_tmtc/tmtc/com/subsystem.py b/eive_tmtc/tmtc/com/subsystem.py index 0cfaf06..d73a6e3 100644 --- a/eive_tmtc/tmtc/com/subsystem.py +++ b/eive_tmtc/tmtc/com/subsystem.py @@ -21,9 +21,14 @@ from tmtccmd.tc.pus_20_fsfw_param import ( pack_scalar_u8_parameter_app_data, ) +from tmtccmd.pus.s20_fsfw_param_defs import ( + create_scalar_u32_parameter +) + class ParameterId(enum.IntEnum): DATARATE = 0 + TRANSMITTER_TIMEOUT = 1 class Submode(enum.IntEnum): @@ -42,6 +47,7 @@ class OpCode: TX_AND_RX_CARRIER_WAVE = "rx_and_tx_carrier_wave" UPDATE_DEFAULT_DATARATE_LOW = "update_default_rate_low" UPDATE_DEFAULT_DATARATE_HIGH = "update_default_rate_high" + CHANGE_TRANSMITTER_TIMEOUT = "change_transmitter_timeout" READ_MODE = "read_mode" ANNOUNCE_MODE = "announce_mode" ANNOUNCE_MODE_RECURSIVE = "announce_mode_recursive" @@ -55,6 +61,7 @@ class Info: TX_AND_RX_CARRIER_WAVE = "Syrlinks with TX carrier wave" UPDATE_DEFAULT_DATARATE_LOW = "Configure default low datarate (BPSK modulation)" UPDATE_DEFAULT_DATARATE_HIGH = "Configure default high datarate (0QPSK modulation)" + CHANGE_TRANSMITTER_TIMEOUT = "Changes the transmitter timeout" READ_MODE = "Read Mode" ANNOUNCE_MODE = "Announce Mode" ANNOUNCE_MODE_RECURSIVE = "Announce mode recursively" @@ -112,6 +119,19 @@ def build_com_subsystem_cmd(p: ServiceProviderParams): q.add_pus_tc( create_mode_command(COM_SUBSYSTEM_ID, Submode.RX_AND_TX_CARRIER_WAVE, 0) ) + elif o == OpCode.CHANGE_TRANSMITTER_TIMEOUT: + timeout = int(input("Specify timeout to set [ms]: ")) + q.add_log_cmd(Info.CHANGE_TRANSMITTER_TIMEOUT) + q.add_pus_tc( + create_load_param_cmd( + create_scalar_u32_parameter( + COM_SUBSYSTEM_ID, + 0, + ParameterId.TRANSMITTER_TIMEOUT, + timeout, + ).pack() + ) + ) elif o == OpCode.READ_MODE: q.add_log_cmd(Info.READ_MODE) q.add_pus_tc(create_read_mode_command(COM_SUBSYSTEM_ID)) @@ -132,6 +152,7 @@ def add_com_subsystem_cmds(defs: TmtcDefinitionWrapper): oce.add(OpCode.TX_AND_RX_DEF_RATE, Info.TX_AND_RX_DEF_DATARATE) oce.add(OpCode.UPDATE_DEFAULT_DATARATE_LOW, Info.UPDATE_DEFAULT_DATARATE_LOW) oce.add(OpCode.UPDATE_DEFAULT_DATARATE_HIGH, Info.UPDATE_DEFAULT_DATARATE_HIGH) + oce.add(OpCode.CHANGE_TRANSMITTER_TIMEOUT, Info.CHANGE_TRANSMITTER_TIMEOUT) oce.add(OpCode.READ_MODE, Info.READ_MODE) oce.add(OpCode.ANNOUNCE_MODE, Info.ANNOUNCE_MODE) oce.add(OpCode.ANNOUNCE_MODE_RECURSIVE, Info.ANNOUNCE_MODE_RECURSIVE)