Compare commits
11 Commits
887e76baf8
...
v2.13.0
Author | SHA1 | Date | |
---|---|---|---|
4ced2d0b18 | |||
0f5401a2db | |||
5f082cd9fc | |||
d1f96cb83d | |||
1bc38ea4b5 | |||
37fcdb9a60 | |||
6e22e3528a | |||
a57511e725 | |||
4cf131e9c1 | |||
1989a37e1e | |||
9f8ab3e235 |
@@ -10,16 +10,22 @@ list yields a list of all related PRs for each release.
|
|||||||
|
|
||||||
# [unreleased]
|
# [unreleased]
|
||||||
|
|
||||||
|
# [v2.13.0] 2023-02-21
|
||||||
|
|
||||||
tmtccmd version 4.0.0
|
tmtccmd version 4.0.0
|
||||||
|
|
||||||
|
Added `python-dateutil` dependency for time prompts.
|
||||||
|
|
||||||
## Added
|
## Added
|
||||||
|
|
||||||
- Basic persistent TM store commanding
|
- Basic persistent TM store commanding
|
||||||
|
- System and TCS system announce mode commands
|
||||||
|
|
||||||
## Changed
|
## Changed
|
||||||
|
|
||||||
- IMTQ set IDs.
|
- IMTQ set IDs.
|
||||||
- Significantly improved IMTQ module and also updated it to refactored OBSW IMTQ handlers.
|
- Significantly improved IMTQ module and also updated it to refactored OBSW IMTQ handlers.
|
||||||
|
- Update of generated CSVs: Explicit no description strings
|
||||||
|
|
||||||
# [v2.12.7] 2023-02-17
|
# [v2.12.7] 2023-02-17
|
||||||
|
|
||||||
|
@@ -1,12 +1,12 @@
|
|||||||
__version__ = "2.12.7"
|
__version__ = "2.13.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 = 12
|
VERSION_MINOR = 13
|
||||||
VERSION_REVISION = 7
|
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
|
||||||
|
@@ -4,6 +4,7 @@
|
|||||||
@author J. Meier
|
@author J. Meier
|
||||||
@date 20.06.2021
|
@date 20.06.2021
|
||||||
"""
|
"""
|
||||||
|
import enum
|
||||||
import struct
|
import struct
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
@@ -64,7 +65,7 @@ class InfoAss:
|
|||||||
ALL_SPEED_OFF = "Speed down to 0"
|
ALL_SPEED_OFF = "Speed down to 0"
|
||||||
|
|
||||||
|
|
||||||
class RwSetId:
|
class RwSetId(enum.IntEnum):
|
||||||
STATUS_SET_ID = 4
|
STATUS_SET_ID = 4
|
||||||
TEMPERATURE_SET_ID = 8
|
TEMPERATURE_SET_ID = 8
|
||||||
LAST_RESET = 2
|
LAST_RESET = 2
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
|
import enum
|
||||||
import struct
|
import struct
|
||||||
|
|
||||||
from eive_tmtc.pus_tm.defs import PrintWrapper
|
from eive_tmtc.pus_tm.defs import PrintWrapper
|
||||||
@@ -5,7 +6,7 @@ from tmtccmd.util import ObjectIdU32
|
|||||||
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
||||||
|
|
||||||
|
|
||||||
class SetId:
|
class SetId(enum.IntEnum):
|
||||||
HK = 3
|
HK = 3
|
||||||
|
|
||||||
|
|
||||||
|
@@ -34,7 +34,7 @@ from tmtccmd.util import ObjectIdU32
|
|||||||
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
||||||
|
|
||||||
|
|
||||||
class SetId:
|
class SetId(enum.IntEnum):
|
||||||
RX_REGISTERS_DATASET = 1
|
RX_REGISTERS_DATASET = 1
|
||||||
TX_REGISTERS_DATASET = 2
|
TX_REGISTERS_DATASET = 2
|
||||||
TEMPERATURE_SET_ID = 3
|
TEMPERATURE_SET_ID = 3
|
||||||
|
@@ -130,7 +130,7 @@ class SupvActionId:
|
|||||||
MEM_CHECK = 61
|
MEM_CHECK = 61
|
||||||
|
|
||||||
|
|
||||||
class SetIds:
|
class SetIds(enum.IntEnum):
|
||||||
HK_REPORT = 102
|
HK_REPORT = 102
|
||||||
BOOT_STATUS_REPORT = 103
|
BOOT_STATUS_REPORT = 103
|
||||||
|
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
|
import enum
|
||||||
import struct
|
import struct
|
||||||
|
|
||||||
from eive_tmtc.pus_tm.defs import PrintWrapper
|
from eive_tmtc.pus_tm.defs import PrintWrapper
|
||||||
@@ -19,7 +20,7 @@ from tmtccmd.tc.pus_200_fsfw_mode import Subservice as ModeSubservices
|
|||||||
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
||||||
|
|
||||||
|
|
||||||
class BpxSetId:
|
class BpxSetId(enum.IntEnum):
|
||||||
GET_HK_SET = 0
|
GET_HK_SET = 0
|
||||||
GET_CFG_SET = 5
|
GET_CFG_SET = 5
|
||||||
|
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
|
import enum
|
||||||
import struct
|
import struct
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
@@ -116,7 +117,7 @@ class PowerOpCodes:
|
|||||||
PRINT_LATCHUPS = ["print_latchups"]
|
PRINT_LATCHUPS = ["print_latchups"]
|
||||||
|
|
||||||
|
|
||||||
class SetId:
|
class SetId(enum.IntEnum):
|
||||||
CORE = 1
|
CORE = 1
|
||||||
AUX = 2
|
AUX = 2
|
||||||
CONFIG = 3
|
CONFIG = 3
|
||||||
|
@@ -7,18 +7,24 @@ from tmtccmd.config.tmtc import (
|
|||||||
)
|
)
|
||||||
from tmtccmd.tc import service_provider
|
from tmtccmd.tc import service_provider
|
||||||
from eive_tmtc.config.object_ids import EIVE_SYSTEM_ID
|
from eive_tmtc.config.object_ids import EIVE_SYSTEM_ID
|
||||||
from tmtccmd.tc.pus_200_fsfw_mode import create_mode_command, Mode
|
from tmtccmd.tc.pus_200_fsfw_mode import (
|
||||||
|
create_mode_command,
|
||||||
|
Mode,
|
||||||
|
create_announce_mode_recursive_command,
|
||||||
|
)
|
||||||
from tmtccmd.tc.decorator import ServiceProviderParams
|
from tmtccmd.tc.decorator import ServiceProviderParams
|
||||||
|
|
||||||
|
|
||||||
class OpCode:
|
class OpCode:
|
||||||
SAFE_MODE = "safe"
|
SAFE_MODE = "safe"
|
||||||
IDLE_MODE = "idle"
|
IDLE_MODE = "idle"
|
||||||
|
ANNOUNCE_MODES = "announce_modes"
|
||||||
|
|
||||||
|
|
||||||
class Info:
|
class Info:
|
||||||
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"
|
||||||
|
|
||||||
|
|
||||||
@service_provider(CustomServiceList.SYSTEM.value)
|
@service_provider(CustomServiceList.SYSTEM.value)
|
||||||
@@ -32,6 +38,9 @@ def build_system_cmds(p: ServiceProviderParams):
|
|||||||
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, AcsMode.IDLE, 0))
|
||||||
|
elif o == OpCode.ANNOUNCE_MODES:
|
||||||
|
q.add_log_cmd(f"{prefix}: {Info.ANNOUNCE_MODES}")
|
||||||
|
q.add_pus_tc(create_announce_mode_recursive_command(EIVE_SYSTEM_ID))
|
||||||
|
|
||||||
|
|
||||||
@tmtc_definitions_provider
|
@tmtc_definitions_provider
|
||||||
@@ -39,6 +48,7 @@ def add_system_cmd_defs(defs: TmtcDefinitionWrapper):
|
|||||||
oce = OpCodeEntry()
|
oce = OpCodeEntry()
|
||||||
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)
|
||||||
defs.add_service(
|
defs.add_service(
|
||||||
name=CustomServiceList.SYSTEM.value,
|
name=CustomServiceList.SYSTEM.value,
|
||||||
info="EIVE system commands",
|
info="EIVE system commands",
|
||||||
|
@@ -5,3 +5,4 @@ class CtrlSetId(enum.IntEnum):
|
|||||||
PRIMARY_SENSORS = 0
|
PRIMARY_SENSORS = 0
|
||||||
DEVICE_SENSORS = 1
|
DEVICE_SENSORS = 1
|
||||||
SUS_TEMP_SENSORS = 2
|
SUS_TEMP_SENSORS = 2
|
||||||
|
HEATER_INFO = 4
|
||||||
|
@@ -32,6 +32,18 @@ class Heater(enum.IntEnum):
|
|||||||
NUMBER_OF_SWITCHES = 8
|
NUMBER_OF_SWITCHES = 8
|
||||||
|
|
||||||
|
|
||||||
|
HEATER_LOCATION = [
|
||||||
|
"OBC Board",
|
||||||
|
"PLOC Processing Board",
|
||||||
|
"ACS Board",
|
||||||
|
"PCDU PDU",
|
||||||
|
"Camera",
|
||||||
|
"Startracker",
|
||||||
|
"DRO",
|
||||||
|
"HPA",
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
class OpCode:
|
class OpCode:
|
||||||
HEATER_CMD = ["switch_cmd"]
|
HEATER_CMD = ["switch_cmd"]
|
||||||
HEATER_EXT_CTRL = ["set_ext_ctrl"]
|
HEATER_EXT_CTRL = ["set_ext_ctrl"]
|
||||||
|
@@ -9,8 +9,12 @@ from tmtccmd.config.tmtc import (
|
|||||||
OpCodeEntry,
|
OpCodeEntry,
|
||||||
)
|
)
|
||||||
from tmtccmd.tc import DefaultPusQueueHelper
|
from tmtccmd.tc import DefaultPusQueueHelper
|
||||||
from tmtccmd.tc.pus_200_fsfw_mode import Mode
|
from tmtccmd.tc.pus_200_fsfw_mode import Mode, create_announce_mode_recursive_command
|
||||||
from tmtccmd.tc.pus_3_fsfw_hk import make_sid, generate_one_hk_command
|
from tmtccmd.tc.pus_3_fsfw_hk import (
|
||||||
|
make_sid,
|
||||||
|
generate_one_hk_command,
|
||||||
|
create_request_one_diag_command,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class OpCodeSys:
|
class OpCodeSys:
|
||||||
@@ -19,6 +23,8 @@ class OpCodeSys:
|
|||||||
REQUEST_PRIMARY_TEMP_SET = ["temp"]
|
REQUEST_PRIMARY_TEMP_SET = ["temp"]
|
||||||
REQUEST_DEVICE_TEMP_SET = ["temp_devs"]
|
REQUEST_DEVICE_TEMP_SET = ["temp_devs"]
|
||||||
REQUEST_DEVICE_SUS_SET = ["temp_sus"]
|
REQUEST_DEVICE_SUS_SET = ["temp_sus"]
|
||||||
|
REQUEST_HEATER_INFO = "heater_info"
|
||||||
|
ANNOUNCE_MODES = "announce_modes"
|
||||||
|
|
||||||
|
|
||||||
class InfoSys:
|
class InfoSys:
|
||||||
@@ -27,6 +33,8 @@ class InfoSys:
|
|||||||
REQUEST_PRIMARY_TEMP_SET = "Request HK set of primary sensor temperatures"
|
REQUEST_PRIMARY_TEMP_SET = "Request HK set of primary sensor temperatures"
|
||||||
REQUEST_DEVICE_TEMP_SET = "Request HK set of device sensor temperatures"
|
REQUEST_DEVICE_TEMP_SET = "Request HK set of device sensor temperatures"
|
||||||
REQUEST_DEVICE_SUS_SET = "Request HK set of the SUS temperatures"
|
REQUEST_DEVICE_SUS_SET = "Request HK set of the SUS temperatures"
|
||||||
|
REQUEST_HEATER_INFO = "Request heater information"
|
||||||
|
ANNOUNCE_MODES = "Announce Modes recursively"
|
||||||
|
|
||||||
|
|
||||||
def pack_tcs_sys_commands(q: DefaultPusQueueHelper, op_code: str):
|
def pack_tcs_sys_commands(q: DefaultPusQueueHelper, op_code: str):
|
||||||
@@ -46,12 +54,22 @@ def pack_tcs_sys_commands(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
make_sid(TCS_CONTROLLER, CtrlSetId.SUS_TEMP_SENSORS)
|
make_sid(TCS_CONTROLLER, CtrlSetId.SUS_TEMP_SENSORS)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
if op_code == OpCodeSys.REQUEST_HEATER_INFO:
|
||||||
|
q.add_log_cmd(InfoSys.REQUEST_HEATER_INFO)
|
||||||
|
q.add_pus_tc(
|
||||||
|
create_request_one_diag_command(
|
||||||
|
make_sid(TCS_CONTROLLER, CtrlSetId.HEATER_INFO)
|
||||||
|
)
|
||||||
|
)
|
||||||
if op_code in OpCodeSys.OFF:
|
if op_code in OpCodeSys.OFF:
|
||||||
q.add_log_cmd(InfoSys.OFF)
|
q.add_log_cmd(InfoSys.OFF)
|
||||||
pack_mode_cmd_with_info(TCS_SUBSYSTEM_ID, Mode.OFF, 0, q, InfoSys.OFF)
|
pack_mode_cmd_with_info(TCS_SUBSYSTEM_ID, Mode.OFF, 0, q, InfoSys.OFF)
|
||||||
if op_code in OpCodeSys.NML:
|
if op_code in OpCodeSys.NML:
|
||||||
q.add_log_cmd(InfoSys.NML)
|
q.add_log_cmd(InfoSys.NML)
|
||||||
pack_mode_cmd_with_info(TCS_SUBSYSTEM_ID, Mode.NORMAL, 0, q, InfoSys.OFF)
|
pack_mode_cmd_with_info(TCS_SUBSYSTEM_ID, Mode.NORMAL, 0, q, InfoSys.OFF)
|
||||||
|
if op_code == OpCodeSys.ANNOUNCE_MODES:
|
||||||
|
q.add_log_cmd(InfoSys.ANNOUNCE_MODES)
|
||||||
|
q.add_pus_tc(create_announce_mode_recursive_command(TCS_SUBSYSTEM_ID))
|
||||||
pack_tcs_ass_cmds(q, op_code)
|
pack_tcs_ass_cmds(q, op_code)
|
||||||
|
|
||||||
|
|
||||||
@@ -67,6 +85,8 @@ def add_tcs_subsystem_cmds(defs: TmtcDefinitionWrapper):
|
|||||||
keys=OpCodeSys.REQUEST_DEVICE_TEMP_SET, info=InfoSys.REQUEST_DEVICE_TEMP_SET
|
keys=OpCodeSys.REQUEST_DEVICE_TEMP_SET, info=InfoSys.REQUEST_DEVICE_TEMP_SET
|
||||||
)
|
)
|
||||||
oce.add(keys=OpCodeSys.REQUEST_DEVICE_SUS_SET, info=InfoSys.REQUEST_DEVICE_SUS_SET)
|
oce.add(keys=OpCodeSys.REQUEST_DEVICE_SUS_SET, info=InfoSys.REQUEST_DEVICE_SUS_SET)
|
||||||
|
oce.add(keys=OpCodeSys.REQUEST_HEATER_INFO, info=InfoSys.REQUEST_HEATER_INFO)
|
||||||
|
oce.add(keys=OpCodeSys.ANNOUNCE_MODES, info=InfoSys.ANNOUNCE_MODES)
|
||||||
defs.add_service(
|
defs.add_service(
|
||||||
name=CustomServiceList.TCS,
|
name=CustomServiceList.TCS,
|
||||||
info="TCS Board",
|
info="TCS Board",
|
||||||
|
@@ -1,10 +1,16 @@
|
|||||||
|
import logging
|
||||||
import pprint
|
import pprint
|
||||||
import struct
|
import struct
|
||||||
|
|
||||||
from eive_tmtc.pus_tm.defs import PrintWrapper
|
from eive_tmtc.pus_tm.defs import PrintWrapper
|
||||||
|
from tmtccmd.fsfw import validity_buffer_list
|
||||||
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 .defs import CtrlSetId
|
from .defs import CtrlSetId
|
||||||
|
from .heater import HEATER_LOCATION
|
||||||
|
|
||||||
|
|
||||||
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def handle_thermal_controller_hk_data(
|
def handle_thermal_controller_hk_data(
|
||||||
@@ -22,7 +28,10 @@ def handle_thermal_controller_hk_data(
|
|||||||
pw.dlog("Received sensor temperature data")
|
pw.dlog("Received sensor temperature data")
|
||||||
|
|
||||||
# get all the floats
|
# get all the floats
|
||||||
tm_data = struct.unpack("!fffffffffffffffffffff", hk_data[: 21 * 4])
|
fmt_str = "!fffffffffffffffffffff"
|
||||||
|
fmt_len = struct.calcsize(fmt_str)
|
||||||
|
tm_data = struct.unpack(fmt_str, hk_data[:fmt_len])
|
||||||
|
valid_list = validity_buffer_list(hk_data[fmt_len:], 21)
|
||||||
parsed_data = {
|
parsed_data = {
|
||||||
"SENSOR_PLOC_HEATSPREADER": tm_data[0],
|
"SENSOR_PLOC_HEATSPREADER": tm_data[0],
|
||||||
"SENSOR_PLOC_MISSIONBOARD": tm_data[1],
|
"SENSOR_PLOC_MISSIONBOARD": tm_data[1],
|
||||||
@@ -46,9 +55,8 @@ def handle_thermal_controller_hk_data(
|
|||||||
"TMP1075 PL PCDU 1": tm_data[19],
|
"TMP1075 PL PCDU 1": tm_data[19],
|
||||||
"TMP1075 IF BOARD": tm_data[20],
|
"TMP1075 IF BOARD": tm_data[20],
|
||||||
}
|
}
|
||||||
printer.file_logger.info(str(parsed_data))
|
for idx, (k, v) in enumerate(parsed_data.items()):
|
||||||
pp = pprint.PrettyPrinter(depth=4)
|
print(f"{str(k).ljust(30)}: Valid: {valid_list[idx]}, Value: {v}")
|
||||||
pp.pprint(parsed_data)
|
|
||||||
elif set_id == CtrlSetId.DEVICE_SENSORS:
|
elif set_id == CtrlSetId.DEVICE_SENSORS:
|
||||||
pw = PrintWrapper(printer)
|
pw = PrintWrapper(printer)
|
||||||
pw.dlog("Received device temperature data")
|
pw.dlog("Received device temperature data")
|
||||||
@@ -108,3 +116,13 @@ def handle_thermal_controller_hk_data(
|
|||||||
printer.file_logger.info(str(parsed_data))
|
printer.file_logger.info(str(parsed_data))
|
||||||
pp = pprint.PrettyPrinter(depth=4)
|
pp = pprint.PrettyPrinter(depth=4)
|
||||||
pp.pprint(parsed_data)
|
pp.pprint(parsed_data)
|
||||||
|
elif set_id == CtrlSetId.HEATER_INFO:
|
||||||
|
print("Heater Switch States")
|
||||||
|
for i in range(8):
|
||||||
|
print(
|
||||||
|
f"{HEATER_LOCATION[i].ljust(25)}: {'On' if hk_data[i] == 1 else 'Off'}"
|
||||||
|
)
|
||||||
|
current_draw = struct.unpack("!H", hk_data[8:10])[0]
|
||||||
|
print(f"Heater Power Channel Current Draw: {current_draw} mA")
|
||||||
|
else:
|
||||||
|
_LOGGER.warning(f"Unimplemented set ID {set_id}")
|
||||||
|
16
tmtcc.py
16
tmtcc.py
@@ -98,6 +98,7 @@ from eive_tmtc.pus_tm.factory_hook import pus_factory_hook
|
|||||||
from eive_tmtc.pus_tc.procedure_packer import handle_default_procedure
|
from eive_tmtc.pus_tc.procedure_packer import handle_default_procedure
|
||||||
|
|
||||||
_LOGGER = APP_LOGGER
|
_LOGGER = APP_LOGGER
|
||||||
|
_LOG_LEVEL = logging.INFO
|
||||||
|
|
||||||
# Put rotating file logger parameters here for quick changes
|
# Put rotating file logger parameters here for quick changes
|
||||||
ROTATING_TIMED_LOGGER_INTERVAL_WHEN = TimedLogWhen.PER_MINUTE
|
ROTATING_TIMED_LOGGER_INTERVAL_WHEN = TimedLogWhen.PER_MINUTE
|
||||||
@@ -178,8 +179,15 @@ class PusHandler(SpecificApidHandlerBase):
|
|||||||
|
|
||||||
|
|
||||||
class UnknownApidHandler(GenericApidHandlerBase):
|
class UnknownApidHandler(GenericApidHandlerBase):
|
||||||
def handle_tm(self, apid: int, _packet: bytes, _user_args: any):
|
def handle_tm(self, apid: int, packet: bytes, _user_args: any):
|
||||||
_LOGGER.warning(f"Packet with unknwon APID {apid} detected")
|
_LOGGER.warning(
|
||||||
|
f"Packet with unknown APID {apid} detected: {packet.hex(sep=',')}"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class CustomCcsdsTmHandler(CcsdsTmHandler):
|
||||||
|
def user_hook(self, apid: int, packet: bytes):
|
||||||
|
_LOGGER.debug(f"Received packet {packet.hex(sep=',')} with APID {apid}")
|
||||||
|
|
||||||
|
|
||||||
class CfdpInCcsdsWrapper(SpecificApidHandlerBase):
|
class CfdpInCcsdsWrapper(SpecificApidHandlerBase):
|
||||||
@@ -398,7 +406,7 @@ def setup_tmtc_handlers(
|
|||||||
verificator, _LOGGER, printer.file_logger
|
verificator, _LOGGER, printer.file_logger
|
||||||
)
|
)
|
||||||
pus_handler = PusHandler(verification_wrapper, printer, raw_logger)
|
pus_handler = PusHandler(verification_wrapper, printer, raw_logger)
|
||||||
ccsds_handler = CcsdsTmHandler(generic_handler=UnknownApidHandler(None))
|
ccsds_handler = CustomCcsdsTmHandler(generic_handler=UnknownApidHandler(None))
|
||||||
ccsds_handler.add_apid_handler(pus_handler)
|
ccsds_handler.add_apid_handler(pus_handler)
|
||||||
ccsds_handler.add_apid_handler(cfdp_in_ccsds_wrapper)
|
ccsds_handler.add_apid_handler(cfdp_in_ccsds_wrapper)
|
||||||
seq_count_provider = PusFileSeqCountProvider()
|
seq_count_provider = PusFileSeqCountProvider()
|
||||||
@@ -433,6 +441,8 @@ def main():
|
|||||||
print(f"-- eive tmtc v{__version__} --")
|
print(f"-- eive tmtc v{__version__} --")
|
||||||
print(f"-- spacepackets v{spacepackets.__version__} --")
|
print(f"-- spacepackets v{spacepackets.__version__} --")
|
||||||
add_colorlog_console_logger(_LOGGER)
|
add_colorlog_console_logger(_LOGGER)
|
||||||
|
# TODO: -V CLI argument to enable this?
|
||||||
|
_LOGGER.setLevel(_LOG_LEVEL)
|
||||||
try:
|
try:
|
||||||
setup_wrapper = setup_params()
|
setup_wrapper = setup_params()
|
||||||
except KeyboardInterrupt as e:
|
except KeyboardInterrupt as e:
|
||||||
|
Reference in New Issue
Block a user