Merge remote-tracking branch 'origin/main' into mueller/pus-15-tm-storage
This commit is contained in:
commit
da960b5344
17
.flake8
Normal file
17
.flake8
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
[flake8]
|
||||||
|
max-line-length = 100
|
||||||
|
ignore = D203, W503
|
||||||
|
per-file-ignores =
|
||||||
|
*/__init__.py: F401
|
||||||
|
exclude =
|
||||||
|
.git,
|
||||||
|
__pycache__,
|
||||||
|
docs/conf.py,
|
||||||
|
old,
|
||||||
|
build,
|
||||||
|
dist,
|
||||||
|
venv
|
||||||
|
max-complexity = 10
|
||||||
|
extend-ignore =
|
||||||
|
# See https://github.com/PyCQA/pycodestyle/issues/373
|
||||||
|
E203,
|
37
CHANGELOG.md
37
CHANGELOG.md
@ -10,6 +10,43 @@ list yields a list of all related PRs for each release.
|
|||||||
|
|
||||||
# [unreleased]
|
# [unreleased]
|
||||||
|
|
||||||
|
# [v2.16.0] 2023-02-23
|
||||||
|
|
||||||
|
## Added
|
||||||
|
|
||||||
|
- PDEC parameter commands to change size of positive and negative window of AD frames-
|
||||||
|
|
||||||
|
## Fixed
|
||||||
|
|
||||||
|
- Added missing skip directive for private resultcode.
|
||||||
|
|
||||||
|
# [v2.15.2] 2023-02-23
|
||||||
|
|
||||||
|
- Update of generated returnvalue and event files.
|
||||||
|
|
||||||
|
# [v2.15.1] 2023-02-23
|
||||||
|
|
||||||
|
- Actually use `tmtccmd` 4.1 in requirements.
|
||||||
|
- Remove `setup.cfg` completely
|
||||||
|
|
||||||
|
# [v2.15.0] 2023-02-23
|
||||||
|
|
||||||
|
tmtccmd version v4.1.1
|
||||||
|
|
||||||
|
## Changed
|
||||||
|
|
||||||
|
- Moved to `pyproject.toml` package file
|
||||||
|
|
||||||
|
## Fixed
|
||||||
|
|
||||||
|
- Correction in `tmtccmd` dependency, added missing function
|
||||||
|
|
||||||
|
# [v2.14.0] 2023-02-22
|
||||||
|
|
||||||
|
## Changed
|
||||||
|
|
||||||
|
- Generated CSV files for PDEC handler
|
||||||
|
|
||||||
# [v2.13.0] 2023-02-21
|
# [v2.13.0] 2023-02-21
|
||||||
|
|
||||||
tmtccmd version 4.0.0
|
tmtccmd version 4.0.0
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
__version__ = "2.14.0"
|
__version__ = "2.16.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 = 14
|
VERSION_MINOR = 16
|
||||||
VERSION_REVISION = 0
|
VERSION_REVISION = 0
|
||||||
|
|
||||||
EIVE_TMTC_ROOT = Path(__file__).parent
|
EIVE_TMTC_ROOT = Path(__file__).parent
|
||||||
|
@ -87,6 +87,8 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
|
|||||||
11200;0x2bc0;SAFE_RATE_VIOLATION;MEDIUM;No description;mission/acsDefs.h
|
11200;0x2bc0;SAFE_RATE_VIOLATION;MEDIUM;No description;mission/acsDefs.h
|
||||||
11201;0x2bc1;SAFE_RATE_RECOVERY;MEDIUM;No description;mission/acsDefs.h
|
11201;0x2bc1;SAFE_RATE_RECOVERY;MEDIUM;No description;mission/acsDefs.h
|
||||||
11202;0x2bc2;MULTIPLE_RW_INVALID;HIGH;No description;mission/acsDefs.h
|
11202;0x2bc2;MULTIPLE_RW_INVALID;HIGH;No description;mission/acsDefs.h
|
||||||
|
11203;0x2bc3;MEKF_INVALID_INFO;INFO;No description;mission/acsDefs.h
|
||||||
|
11204;0x2bc4;MEKF_INVALID_MODE_VIOLATION;HIGH;No description;mission/acsDefs.h
|
||||||
11300;0x2c24;SWITCH_CMD_SENT;INFO;Indicates that a FSFW object requested setting a switch P1: 1 if on was requested, 0 for off | P2: Switch Index;mission/devices/devicedefinitions/powerDefinitions.h
|
11300;0x2c24;SWITCH_CMD_SENT;INFO;Indicates that a FSFW object requested setting a switch P1: 1 if on was requested, 0 for off | P2: Switch Index;mission/devices/devicedefinitions/powerDefinitions.h
|
||||||
11301;0x2c25;SWITCH_HAS_CHANGED;INFO;Indicated that a switch state has changed P1: New switch state, 1 for on, 0 for off | P2: Switch Index;mission/devices/devicedefinitions/powerDefinitions.h
|
11301;0x2c25;SWITCH_HAS_CHANGED;INFO;Indicated that a switch state has changed P1: New switch state, 1 for on, 0 for off | P2: Switch Index;mission/devices/devicedefinitions/powerDefinitions.h
|
||||||
11302;0x2c26;SWITCHING_Q7S_DENIED;MEDIUM;No description;mission/devices/devicedefinitions/powerDefinitions.h
|
11302;0x2c26;SWITCHING_Q7S_DENIED;MEDIUM;No description;mission/devices/devicedefinitions/powerDefinitions.h
|
||||||
|
|
@ -2,7 +2,6 @@ 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
|
||||||
0x6300;NVMB_Busy;No description;0;NVM_PARAM_BASE;mission/system/objects/Stack5VHandler.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
|
||||||
@ -53,9 +52,13 @@ Full ID (hex); Name; Description; Unique ID; Subsytem Name; File Path
|
|||||||
0x6a01;ACSSAF_SafectrlMekfInputInvalid;No description;1;ACS_SAFE;mission/controller/acs/control/SafeCtrl.h
|
0x6a01;ACSSAF_SafectrlMekfInputInvalid;No description;1;ACS_SAFE;mission/controller/acs/control/SafeCtrl.h
|
||||||
0x6b01;ACSPTG_PtgctrlMekfInputInvalid;No description;1;ACS_PTG;mission/controller/acs/control/PtgCtrl.h
|
0x6b01;ACSPTG_PtgctrlMekfInputInvalid;No description;1;ACS_PTG;mission/controller/acs/control/PtgCtrl.h
|
||||||
0x6c01;ACSDTB_DetumbleNoSensordata;No description;1;ACS_DETUMBLE;mission/controller/acs/control/Detumble.h
|
0x6c01;ACSDTB_DetumbleNoSensordata;No description;1;ACS_DETUMBLE;mission/controller/acs/control/Detumble.h
|
||||||
0x6901;ACSKAL_KalmanNoGyrMeas;No description;1;ACS_KALMAN;mission/controller/acs/MultiplicativeKalmanFilter.h
|
0x6902;ACSKAL_KalmanUninitialized;No description;2;ACS_KALMAN;mission/controller/acs/MultiplicativeKalmanFilter.h
|
||||||
0x6902;ACSKAL_KalmanNoModel;No description;2;ACS_KALMAN;mission/controller/acs/MultiplicativeKalmanFilter.h
|
0x6903;ACSKAL_KalmanNoGyrData;No description;3;ACS_KALMAN;mission/controller/acs/MultiplicativeKalmanFilter.h
|
||||||
0x6903;ACSKAL_KalmanInversionFailed;No description;3;ACS_KALMAN;mission/controller/acs/MultiplicativeKalmanFilter.h
|
0x6904;ACSKAL_KalmanNoModelVectors;No description;4;ACS_KALMAN;mission/controller/acs/MultiplicativeKalmanFilter.h
|
||||||
|
0x6905;ACSKAL_KalmanNoSusMgmStrData;No description;5;ACS_KALMAN;mission/controller/acs/MultiplicativeKalmanFilter.h
|
||||||
|
0x6906;ACSKAL_KalmanCovarianceInversionFailed;No description;6;ACS_KALMAN;mission/controller/acs/MultiplicativeKalmanFilter.h
|
||||||
|
0x6907;ACSKAL_KalmanInitialized;No description;7;ACS_KALMAN;mission/controller/acs/MultiplicativeKalmanFilter.h
|
||||||
|
0x6908;ACSKAL_KalmanRunning;No description;8;ACS_KALMAN;mission/controller/acs/MultiplicativeKalmanFilter.h
|
||||||
0x4500;HSPI_OpeningFileFailed;No description;0;HAL_SPI;fsfw/src/fsfw_hal/linux/spi/SpiComIF.h
|
0x4500;HSPI_OpeningFileFailed;No description;0;HAL_SPI;fsfw/src/fsfw_hal/linux/spi/SpiComIF.h
|
||||||
0x4501;HSPI_FullDuplexTransferFailed;No description;1;HAL_SPI;fsfw/src/fsfw_hal/linux/spi/SpiComIF.h
|
0x4501;HSPI_FullDuplexTransferFailed;No description;1;HAL_SPI;fsfw/src/fsfw_hal/linux/spi/SpiComIF.h
|
||||||
0x4502;HSPI_HalfDuplexTransferFailed;No description;2;HAL_SPI;fsfw/src/fsfw_hal/linux/spi/SpiComIF.h
|
0x4502;HSPI_HalfDuplexTransferFailed;No description;2;HAL_SPI;fsfw/src/fsfw_hal/linux/spi/SpiComIF.h
|
||||||
|
|
@ -23,14 +23,6 @@ def get_eive_service_op_code_dict() -> TmtcDefinitionWrapper:
|
|||||||
return def_wrapper
|
return def_wrapper
|
||||||
|
|
||||||
|
|
||||||
@tmtc_definitions_provider
|
|
||||||
def add_pdec_cmds(defs: TmtcDefinitionWrapper):
|
|
||||||
oce = OpCodeEntry()
|
|
||||||
oce.add("0", "PDEC Handler: Print CLCW")
|
|
||||||
oce.add("1", "PDEC Handler: Print PDEC monitor")
|
|
||||||
defs.add_service(CustomServiceList.PDEC_HANDLER.value, "PDEC Handler", oce)
|
|
||||||
|
|
||||||
|
|
||||||
@tmtc_definitions_provider
|
@tmtc_definitions_provider
|
||||||
def add_str_cmds(defs: TmtcDefinitionWrapper):
|
def add_str_cmds(defs: TmtcDefinitionWrapper):
|
||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
|
@ -32,6 +32,7 @@ from eive_tmtc.tmtc.com.ccsds_handler import pack_ccsds_handler_test
|
|||||||
from eive_tmtc.tmtc.core import pack_core_commands
|
from eive_tmtc.tmtc.core import pack_core_commands
|
||||||
from eive_tmtc.tmtc.acs.star_tracker import pack_star_tracker_commands
|
from eive_tmtc.tmtc.acs.star_tracker import pack_star_tracker_commands
|
||||||
from eive_tmtc.tmtc.com.syrlinks_handler import pack_syrlinks_command
|
from eive_tmtc.tmtc.com.syrlinks_handler import pack_syrlinks_command
|
||||||
|
from eive_tmtc.tmtc.com.pdec_handler import pack_pdec_handler_test
|
||||||
from eive_tmtc.tmtc.acs.acs_board import pack_acs_command
|
from eive_tmtc.tmtc.acs.acs_board import pack_acs_command
|
||||||
from eive_tmtc.config.definitions import CustomServiceList
|
from eive_tmtc.config.definitions import CustomServiceList
|
||||||
from eive_tmtc.config.object_ids import (
|
from eive_tmtc.config.object_ids import (
|
||||||
@ -170,7 +171,7 @@ def handle_default_procedure(
|
|||||||
object_id=object_id, q=queue_helper, op_code=op_code
|
object_id=object_id, q=queue_helper, op_code=op_code
|
||||||
)
|
)
|
||||||
if service == CustomServiceList.PDEC_HANDLER.value:
|
if service == CustomServiceList.PDEC_HANDLER.value:
|
||||||
return pack_ccsds_handler_test(
|
return pack_pdec_handler_test(
|
||||||
object_id=PDEC_HANDLER_ID, q=queue_helper, op_code=op_code
|
object_id=PDEC_HANDLER_ID, q=queue_helper, op_code=op_code
|
||||||
)
|
)
|
||||||
if service == CustomServiceList.SYRLINKS.value:
|
if service == CustomServiceList.SYRLINKS.value:
|
||||||
|
@ -6,8 +6,17 @@ from tmtccmd.tc import DefaultPusQueueHelper
|
|||||||
|
|
||||||
import eive_tmtc.config.object_ids as obj_ids
|
import eive_tmtc.config.object_ids as obj_ids
|
||||||
from tmtccmd.tc.pus_3_fsfw_hk import create_request_one_hk_command, make_sid
|
from tmtccmd.tc.pus_3_fsfw_hk import create_request_one_hk_command, make_sid
|
||||||
from tmtccmd.config.tmtc import tmtc_definitions_provider, OpCodeEntry, TmtcDefinitionWrapper
|
from tmtccmd.config.tmtc import (
|
||||||
from eive_tmtc.config.object_ids import GYRO_0_ADIS_HANDLER_ID, GYRO_1_L3G_HANDLER_ID, GYRO_2_ADIS_HANDLER_ID, GYRO_3_L3G_HANDLER_ID
|
tmtc_definitions_provider,
|
||||||
|
OpCodeEntry,
|
||||||
|
TmtcDefinitionWrapper,
|
||||||
|
)
|
||||||
|
from eive_tmtc.config.object_ids import (
|
||||||
|
GYRO_0_ADIS_HANDLER_ID,
|
||||||
|
GYRO_1_L3G_HANDLER_ID,
|
||||||
|
GYRO_2_ADIS_HANDLER_ID,
|
||||||
|
GYRO_3_L3G_HANDLER_ID,
|
||||||
|
)
|
||||||
from eive_tmtc.config.definitions import CustomServiceList
|
from eive_tmtc.config.definitions import CustomServiceList
|
||||||
from eive_tmtc.pus_tm.defs import PrintWrapper
|
from eive_tmtc.pus_tm.defs import PrintWrapper
|
||||||
|
|
||||||
@ -64,9 +73,13 @@ def handle_gyr_cmd(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
if not is_adis:
|
if not is_adis:
|
||||||
raise ValueError("No config HK for L3 device")
|
raise ValueError("No config HK for L3 device")
|
||||||
q.add_log_cmd(f"Gyro {gyr_info[0]} CFG HK")
|
q.add_log_cmd(f"Gyro {gyr_info[0]} CFG HK")
|
||||||
q.add_pus_tc(create_request_one_hk_command(make_sid(gyr_obj_id, AdisGyroSetId.CFG_HK)))
|
q.add_pus_tc(
|
||||||
|
create_request_one_hk_command(make_sid(gyr_obj_id, AdisGyroSetId.CFG_HK))
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
logging.getLogger(__name__).warning(f"invalid op code {op_code} for gyro command")
|
logging.getLogger(__name__).warning(
|
||||||
|
f"invalid op code {op_code} for gyro command"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def handle_gyros_hk_data(
|
def handle_gyros_hk_data(
|
||||||
@ -95,9 +108,15 @@ def handle_adis_gyro_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)
|
||||||
(ang_veloc_x, ang_veloc_y, ang_veloc_z, accel_x, accel_y, accel_z, temp) = struct.unpack(
|
(
|
||||||
fmt_str, hk_data[0 : 0 + inc_len]
|
ang_veloc_x,
|
||||||
)
|
ang_veloc_y,
|
||||||
|
ang_veloc_z,
|
||||||
|
accel_x,
|
||||||
|
accel_y,
|
||||||
|
accel_z,
|
||||||
|
temp,
|
||||||
|
) = struct.unpack(fmt_str, hk_data[0 : 0 + inc_len])
|
||||||
pw.dlog(f"Received ADIS1650X Gyro HK data from object {object_id}")
|
pw.dlog(f"Received ADIS1650X Gyro HK data from object {object_id}")
|
||||||
pw.dlog(
|
pw.dlog(
|
||||||
f"Angular Velocities (degrees per second): X {ang_veloc_x} | "
|
f"Angular Velocities (degrees per second): X {ang_veloc_x} | "
|
||||||
@ -110,9 +129,13 @@ def handle_adis_gyro_hk(
|
|||||||
fmt_str = "!HBHHH"
|
fmt_str = "!HBHHH"
|
||||||
inc_len = struct.calcsize(fmt_str)
|
inc_len = struct.calcsize(fmt_str)
|
||||||
print(len(hk_data))
|
print(len(hk_data))
|
||||||
(diag_stat_reg, filter_setting, range_mdl, msc_ctrl_reg, dec_rate_reg) = struct.unpack(
|
(
|
||||||
fmt_str, hk_data[0 : 0 + inc_len]
|
diag_stat_reg,
|
||||||
)
|
filter_setting,
|
||||||
|
range_mdl,
|
||||||
|
msc_ctrl_reg,
|
||||||
|
dec_rate_reg,
|
||||||
|
) = struct.unpack(fmt_str, hk_data[0 : 0 + inc_len])
|
||||||
pw.dlog(f"Diagnostic Status Register {diag_stat_reg:#018b}")
|
pw.dlog(f"Diagnostic Status Register {diag_stat_reg:#018b}")
|
||||||
pw.dlog(f"Range MDL {range_mdl}")
|
pw.dlog(f"Range MDL {range_mdl}")
|
||||||
pw.dlog(f"Filter Settings {filter_setting:#010b}")
|
pw.dlog(f"Filter Settings {filter_setting:#010b}")
|
||||||
|
@ -8,6 +8,22 @@
|
|||||||
from spacepackets.ecss.tc import PusTelecommand
|
from spacepackets.ecss.tc import PusTelecommand
|
||||||
from tmtccmd.tc import DefaultPusQueueHelper
|
from tmtccmd.tc import DefaultPusQueueHelper
|
||||||
|
|
||||||
|
from tmtccmd.tc.pus_20_fsfw_param import (
|
||||||
|
create_load_param_cmd
|
||||||
|
)
|
||||||
|
|
||||||
|
from tmtccmd.pus.s20_fsfw_param_defs import (
|
||||||
|
create_scalar_u8_parameter
|
||||||
|
)
|
||||||
|
|
||||||
|
from tmtccmd.config.tmtc import (
|
||||||
|
tmtc_definitions_provider,
|
||||||
|
TmtcDefinitionWrapper,
|
||||||
|
OpCodeEntry,
|
||||||
|
)
|
||||||
|
|
||||||
|
from eive_tmtc.config.definitions import CustomServiceList
|
||||||
|
|
||||||
|
|
||||||
class CommandId:
|
class CommandId:
|
||||||
# prints the clcw to the console. Useful for debugging
|
# prints the clcw to the console. Useful for debugging
|
||||||
@ -16,15 +32,71 @@ class CommandId:
|
|||||||
PRINT_PDEC_MON = bytearray([0x0, 0x0, 0x0, 0x1])
|
PRINT_PDEC_MON = bytearray([0x0, 0x0, 0x0, 0x1])
|
||||||
|
|
||||||
|
|
||||||
|
class ParameterId:
|
||||||
|
POSITIVE_WINDOW = 0
|
||||||
|
NEGATIVE_WINDOW = 1
|
||||||
|
|
||||||
|
|
||||||
|
class OpCode:
|
||||||
|
PRINT_CLCW = "print_clcw"
|
||||||
|
PRINT_MON_REG = "print_mon_reg"
|
||||||
|
POSITIVE_WINDOW = "positive_window"
|
||||||
|
NEGATIVE_WINDOW = "negative_window"
|
||||||
|
|
||||||
|
|
||||||
|
class Info:
|
||||||
|
PRINT_CLCW = "Will cause the OBSW to print the current CLCW to the debug console"
|
||||||
|
PRINT_MON_REG = "Will cause the OBSW to print the PDEC monitor register to the console"
|
||||||
|
POSITIVE_WINDOW = "Change positive window parameter for AD frames"
|
||||||
|
NEGATIVE_WINDOW = "Change negative window parameter for AD frames"
|
||||||
|
|
||||||
|
|
||||||
def pack_pdec_handler_test(
|
def pack_pdec_handler_test(
|
||||||
object_id: bytearray, q: DefaultPusQueueHelper, op_code: str
|
object_id: bytearray, q: DefaultPusQueueHelper, op_code: str
|
||||||
):
|
):
|
||||||
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":
|
prefix = "PDEC Handler "
|
||||||
q.add_log_cmd("PDEC Handler: Print CLCW")
|
if op_code == OpCode.PRINT_CLCW:
|
||||||
|
q.add_log_cmd(f"{prefix}: {Info.PRINT_CLCW}")
|
||||||
command = object_id + CommandId.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 == OpCode.PRINT_MON_REG:
|
||||||
q.add_log_cmd("PDEC Handler: Print PDEC monitor register")
|
q.add_log_cmd(f"{prefix}: {Info.PRINT_MON_REG}")
|
||||||
command = object_id + CommandId.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))
|
||||||
|
if op_code == OpCode.POSITIVE_WINDOW:
|
||||||
|
q.add_log_cmd(f"{prefix}: {Info.POSITIVE_WINDOW}")
|
||||||
|
pw = int(input("Specify positive window to set: "))
|
||||||
|
q.add_pus_tc(
|
||||||
|
create_load_param_cmd(
|
||||||
|
create_scalar_u8_parameter(
|
||||||
|
object_id,
|
||||||
|
0,
|
||||||
|
ParameterId.POSITIVE_WINDOW,
|
||||||
|
pw,
|
||||||
|
).pack()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
if op_code == OpCode.NEGATIVE_WINDOW:
|
||||||
|
q.add_log_cmd(f"{prefix}: {Info.NEGATIVE_WINDOW}")
|
||||||
|
nw = int(input("Specify negative window to set: "))
|
||||||
|
q.add_pus_tc(
|
||||||
|
create_load_param_cmd(
|
||||||
|
create_scalar_u8_parameter(
|
||||||
|
object_id,
|
||||||
|
0,
|
||||||
|
ParameterId.NEGATIVE_WINDOW,
|
||||||
|
nw,
|
||||||
|
).pack()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@tmtc_definitions_provider
|
||||||
|
def add_pdec_cmds(defs: TmtcDefinitionWrapper):
|
||||||
|
oce = OpCodeEntry()
|
||||||
|
oce.add(OpCode.PRINT_CLCW, Info.PRINT_CLCW)
|
||||||
|
oce.add(OpCode.PRINT_MON_REG, Info.PRINT_MON_REG)
|
||||||
|
oce.add(OpCode.POSITIVE_WINDOW, Info.POSITIVE_WINDOW)
|
||||||
|
oce.add(OpCode.NEGATIVE_WINDOW, Info.NEGATIVE_WINDOW)
|
||||||
|
defs.add_service(CustomServiceList.PDEC_HANDLER.value, "PDEC Handler", oce)
|
||||||
|
@ -21,9 +21,7 @@ from tmtccmd.tc.pus_20_fsfw_param import (
|
|||||||
pack_scalar_u8_parameter_app_data,
|
pack_scalar_u8_parameter_app_data,
|
||||||
)
|
)
|
||||||
|
|
||||||
from tmtccmd.pus.s20_fsfw_param_defs import (
|
from tmtccmd.pus.s20_fsfw_param import create_scalar_u32_parameter
|
||||||
create_scalar_u32_parameter
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class ParameterId(enum.IntEnum):
|
class ParameterId(enum.IntEnum):
|
||||||
|
48
pyproject.toml
Normal file
48
pyproject.toml
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
[build-system]
|
||||||
|
requires = ["setuptools>=61.0"]
|
||||||
|
build-backend = "setuptools.build_meta"
|
||||||
|
|
||||||
|
[project]
|
||||||
|
name = "eive-tmtc"
|
||||||
|
description = "TMTC Commander EIVE"
|
||||||
|
readme = "README.md"
|
||||||
|
dynamic = ["version"]
|
||||||
|
requires-python = ">=3.10"
|
||||||
|
license = {text = "Apache-2.0"}
|
||||||
|
authors = [
|
||||||
|
{name = "Robin Mueller", email = "muellerr@irs.uni-stuttgart.de"},
|
||||||
|
{name = "Jakob Meier", email = "meierj@irs.uni-stuttgart.de"},
|
||||||
|
]
|
||||||
|
keywords = ["eive", "space", "communication", "commanding"]
|
||||||
|
classifiers = [
|
||||||
|
"Development Status :: 5 - Production/Stable",
|
||||||
|
"License :: OSI Approved :: Apache Software License",
|
||||||
|
"Natural Language :: English",
|
||||||
|
"Operating System :: POSIX",
|
||||||
|
"Operating System :: Microsoft :: Windows",
|
||||||
|
"Programming Language :: Python :: 3",
|
||||||
|
"Programming Language :: Python :: 3.8",
|
||||||
|
"Programming Language :: Python :: 3.9",
|
||||||
|
"Topic :: Communications",
|
||||||
|
"Topic :: Software Development :: Libraries",
|
||||||
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
||||||
|
"Topic :: Scientific/Engineering"
|
||||||
|
]
|
||||||
|
dependencies = [
|
||||||
|
"tmtccmd ~= 4.1",
|
||||||
|
"python-dateutil ~= 2.8",
|
||||||
|
# tmtccmd @ git+https://github.com/robamu-org/tmtccmd@<gitRev>#egg=tmtccmd
|
||||||
|
]
|
||||||
|
|
||||||
|
[project.urls]
|
||||||
|
"Homepage" = "https://egit.irs.uni-stuttgart.de/eive/eive-tmtc"
|
||||||
|
|
||||||
|
[tool.setuptools]
|
||||||
|
include-package-data = true
|
||||||
|
|
||||||
|
[tool.setuptools.dynamic]
|
||||||
|
version = {attr = "eive_tmtc.__version__"}
|
||||||
|
|
||||||
|
# Auto-Discovery is problematic for some reason, so use custom-discovery
|
||||||
|
[tool.setuptools.packages]
|
||||||
|
find = {}
|
54
setup.cfg
54
setup.cfg
@ -1,54 +0,0 @@
|
|||||||
[metadata]
|
|
||||||
name = eive-tmtc
|
|
||||||
description = TMTC Commander EIVE
|
|
||||||
version = attr: eive_tmtc.__version__
|
|
||||||
long_description = file: README.md
|
|
||||||
long_description_content_type = text/markdown
|
|
||||||
license = Apache-2.0
|
|
||||||
author = Robin Mueller, Jakob Meier
|
|
||||||
author_email = muellerr@irs.uni-stuttgart.de
|
|
||||||
platform = any
|
|
||||||
|
|
||||||
url = https://egit.irs.uni-stuttgart.de/eive/eive-tmtc
|
|
||||||
classifiers =
|
|
||||||
Development Status :: 5 - Production/Stable
|
|
||||||
Intended Audience :: Developers
|
|
||||||
License :: OSI Approved :: Apache Software License
|
|
||||||
Natural Language :: English
|
|
||||||
Operating System :: POSIX
|
|
||||||
Operating System :: Microsoft :: Windows
|
|
||||||
Programming Language :: Python :: 3
|
|
||||||
Programming Language :: Python :: 3.8
|
|
||||||
Programming Language :: Python :: 3.9
|
|
||||||
Topic :: Communications
|
|
||||||
Topic :: Software Development :: Libraries
|
|
||||||
Topic :: Software Development :: Libraries :: Python Modules
|
|
||||||
Topic :: Scientific/Engineering
|
|
||||||
|
|
||||||
[options]
|
|
||||||
install_requires =
|
|
||||||
tmtccmd ~= 4.0
|
|
||||||
python-dateutil ~= 2.8
|
|
||||||
# tmtccmd @ git+https://github.com/robamu-org/tmtccmd@<gitRev>#egg=tmtccmd
|
|
||||||
packages = find:
|
|
||||||
python_requires = >=3.10
|
|
||||||
include_package_data = True
|
|
||||||
|
|
||||||
[options.extras_require]
|
|
||||||
mib =
|
|
||||||
|
|
||||||
[flake8]
|
|
||||||
max-line-length = 100
|
|
||||||
ignore = D203, W503
|
|
||||||
exclude =
|
|
||||||
.git,
|
|
||||||
__pycache__,
|
|
||||||
docs/conf.py,
|
|
||||||
old,
|
|
||||||
build,
|
|
||||||
dist,
|
|
||||||
venv
|
|
||||||
max-complexity = 10
|
|
||||||
extend-ignore =
|
|
||||||
# See https://github.com/PyCQA/pycodestyle/issues/373
|
|
||||||
E203,
|
|
Loading…
Reference in New Issue
Block a user