cleaned up event handling code a bit
EIVE/-/pipeline/head This commit looks good
Details
EIVE/-/pipeline/head This commit looks good
Details
This commit is contained in:
parent
d33013ed58
commit
dc37a29d34
|
@ -1,26 +1,24 @@
|
||||||
import logging
|
|
||||||
import datetime
|
import datetime
|
||||||
|
import logging
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
from spacepackets.ccsds.time import CdsShortTimestamp
|
||||||
|
from tmtccmd.fsfw import EventInfo
|
||||||
|
from tmtccmd.pus.s5_fsfw_event import EventDefinition, Service5Tm
|
||||||
|
from tmtccmd.pus.s200_fsfw_mode import Mode
|
||||||
|
from tmtccmd.pus.s201_fsfw_health import FsfwHealth
|
||||||
|
|
||||||
from eive_tmtc.config.events import get_event_dict
|
from eive_tmtc.config.events import get_event_dict
|
||||||
from eive_tmtc.config.object_ids import get_object_ids
|
from eive_tmtc.config.object_ids import get_object_ids
|
||||||
from eive_tmtc.pus_tm.defs import PrintWrapper
|
from eive_tmtc.pus_tm.defs import PrintWrapper
|
||||||
from eive_tmtc.pus_tm.verification_handler import generic_retval_printout
|
from eive_tmtc.pus_tm.verification_handler import generic_retval_printout
|
||||||
from eive_tmtc.tmtc.acs.subsystem import AcsMode
|
from eive_tmtc.tmtc.acs.subsystem import AcsMode
|
||||||
from eive_tmtc.tmtc.core import SdState, SdCardSelect
|
from eive_tmtc.tmtc.core import SdCardSelect, SdState
|
||||||
from tmtccmd.pus.s200_fsfw_mode import Mode
|
|
||||||
from tmtccmd.pus.s201_fsfw_health import FsfwHealth
|
|
||||||
|
|
||||||
from tmtccmd.pus.s5_fsfw_event import Service5Tm
|
|
||||||
from tmtccmd.fsfw import EventInfo
|
|
||||||
from spacepackets.ccsds.time import CdsShortTimestamp
|
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def handle_event_packet( # noqa C901: Complexity okay here
|
def handle_event_packet(raw_tm: bytes, pw: PrintWrapper):
|
||||||
raw_tm: bytes, pw: PrintWrapper
|
|
||||||
): # noqa C901: Complexity okay here
|
|
||||||
tm = Service5Tm.unpack(data=raw_tm, time_reader=CdsShortTimestamp.empty())
|
tm = Service5Tm.unpack(data=raw_tm, time_reader=CdsShortTimestamp.empty())
|
||||||
event_dict = get_event_dict()
|
event_dict = get_event_dict()
|
||||||
event_def = tm.event_definition
|
event_def = tm.event_definition
|
||||||
|
@ -36,16 +34,30 @@ def handle_event_packet( # noqa C901: Complexity okay here
|
||||||
obj_name = event_def.reporter_id.hex(sep=",")
|
obj_name = event_def.reporter_id.hex(sep=",")
|
||||||
else:
|
else:
|
||||||
obj_name = obj_id_obj.name
|
obj_name = obj_id_obj.name
|
||||||
|
assert tm.time_provider is not None
|
||||||
generic_event_string = (
|
generic_event_string = (
|
||||||
f"Object {obj_name} generated Event {info.name} (ID: {event_def.event_id:#04x})"
|
f"Object {obj_name} generated Event {info.name} (ID: {event_def.event_id:#04x})"
|
||||||
f" at {tm.time_provider.as_date_time()}"
|
f" at {tm.time_provider.as_date_time()}"
|
||||||
)
|
)
|
||||||
_LOGGER.info(generic_event_string)
|
_LOGGER.info(generic_event_string)
|
||||||
pw.file_logger.info(
|
if pw.file_logger is not None:
|
||||||
f"{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}:"
|
pw.file_logger.info(
|
||||||
f" {generic_event_string}"
|
f"{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}:"
|
||||||
)
|
f" {generic_event_string}"
|
||||||
specific_handler = False
|
)
|
||||||
|
specific_handler = handle_specific_events(pw, obj_name, info, event_def)
|
||||||
|
if not specific_handler:
|
||||||
|
additional_event_info = (
|
||||||
|
f"Additional info: {info.info} | P1: {event_def.param1} | "
|
||||||
|
f"P2: {event_def.param2}"
|
||||||
|
)
|
||||||
|
pw.dlog(additional_event_info)
|
||||||
|
|
||||||
|
|
||||||
|
def handle_specific_events(
|
||||||
|
pw: PrintWrapper, obj_name: str, info: EventInfo, event_def: EventDefinition
|
||||||
|
) -> bool:
|
||||||
|
specific_handler = True
|
||||||
if info.name == "MODE_TRANSITION_FAILED":
|
if info.name == "MODE_TRANSITION_FAILED":
|
||||||
reason = generic_retval_printout(event_def.param1)
|
reason = generic_retval_printout(event_def.param1)
|
||||||
for string in reason:
|
for string in reason:
|
||||||
|
@ -151,12 +163,4 @@ def handle_event_packet( # noqa C901: Complexity okay here
|
||||||
mode = event_def.param1
|
mode = event_def.param1
|
||||||
submode = event_def.param2
|
submode = event_def.param2
|
||||||
pw.dlog(f"Mode Number {mode}, Submode: {submode}")
|
pw.dlog(f"Mode Number {mode}, Submode: {submode}")
|
||||||
if not specific_handler:
|
return specific_handler
|
||||||
additional_event_info = (
|
|
||||||
f"Additional info: {info.info} | P1: {event_def.param1} | "
|
|
||||||
f"P2: {event_def.param2}"
|
|
||||||
)
|
|
||||||
pw.dlog(additional_event_info)
|
|
||||||
if not specific_handler:
|
|
||||||
# printer.handle_long_tm_print(packet_if=tm.pus_tm, info_if=tm.pus_tm)
|
|
||||||
pass
|
|
||||||
|
|
Loading…
Reference in New Issue