Skip to content

Commit

Permalink
several smaller fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
robamu committed Jun 21, 2021
1 parent 6c82059 commit b0cf33b
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 20 deletions.
12 changes: 7 additions & 5 deletions src/tmtccmd/ccsds/handler.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from typing import Callable, Dict, Optional, Tuple, List
from abc import abstractmethod

from tmtccmd.config.definitions import TmHandler, TmTypes, TelemetryQueueT
from tmtccmd.sendreceive.tm_listener import QueueListT
from tmtccmd.utility.tmtc_printer import TmTcPrinter
Expand All @@ -12,7 +12,7 @@


class CcsdsTmHandler(TmHandler):
def __init__(self, tmtc_printer: Optional[TmTcPrinter]=None):
def __init__(self, tmtc_printer: Optional[TmTcPrinter] = None):
super().__init__(tm_type=TmTypes.CCSDS_SPACE_PACKETS)
self._handler_dict: HandlerDictT = dict()
self._tmtc_printer = tmtc_printer
Expand All @@ -35,13 +35,15 @@ def handle_packet_queues(self, packet_queue_list: QueueListT):
handler_tuple = self._handler_dict.get(apid)
if handler_tuple is not None:
ccsds_cb = handler_tuple[0]
self.handle_ccsds_packet_queue(apid=apid, packet_queue=queue_tuple[1], ccsds_cb=ccsds_cb)
self.handle_ccsds_packet_queue(
apid=apid, packet_queue=queue_tuple[1], ccsds_cb=ccsds_cb
)

def handle_ccsds_packet_queue(
self, apid: int, packet_queue: TelemetryQueueT, ccsds_cb: Optional[HandlerDictT] = None
self, apid: int, packet_queue: TelemetryQueueT,
ccsds_cb: Optional[HandlerDictT] = None
):
for tm_packet in packet_queue:
if ccsds_cb is None:
ccsds_cb = self._handler_dict[apid][0]
ccsds_cb(apid, tm_packet, self._tmtc_printer)

1 change: 0 additions & 1 deletion src/tmtccmd/config/hook.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
from tmtccmd.utility.logger import get_logger
from tmtccmd.core.backend import TmTcHandler
from tmtccmd.utility.tmtc_printer import TmTcPrinter
from tmtccmd.ecss.tm import PusTelemetry
from tmtccmd.pus_tc.definitions import TcQueueT
from tmtccmd.com_if.com_interface_base import CommunicationInterface
from tmtccmd.pus_tm.service_3_base import Service3Base
Expand Down
22 changes: 10 additions & 12 deletions src/tmtccmd/pus_tm/handler.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
from abc import abstractmethod

from tmtccmd.ecss.tm import PusTelemetry
from tmtccmd.config.globals import get_global, CoreGlobalIds
from tmtccmd.pus_tm.service_5_event import Service5TM
Expand All @@ -11,20 +9,20 @@
LOGGER = get_logger()


def default_ccsds_packet_handler(self, apid: int, packet: bytearray):
def default_ccsds_packet_handler(apid: int, raw_tm_packet: bytearray, tmtc_printer: TmTcPrinter):
"""Default implementation only prints the packet"""
telemetry_packet = default_factory_hook(raw_tm_packet=packet)
tmtc_printer = get_global(CoreGlobalIds.TMTC_PRINTER_HANDLE)
tmtc_printer.print_telemetry(packet=telemetry_packet)
default_factory_hook(raw_tm_packet=raw_tm_packet, tmtc_printer=tmtc_printer)


def default_factory_hook(raw_tm_packet: bytearray) -> PusTelemetry:
def default_factory_hook(raw_tm_packet: bytearray, tmtc_printer: TmTcPrinter):
service_type = raw_tm_packet[7]
if service_type == 1:
return Service1TM(raw_tm_packet)
tm_packet = Service1TM(raw_tm_packet)
if service_type == 5:
return Service5TM(raw_tm_packet)
tm_packet = Service5TM(raw_tm_packet)
if service_type == 17:
return Service17TM(raw_tm_packet)
LOGGER.info("The service " + str(service_type) + " is not implemented in the default TM Factory function")
return PusTelemetry(raw_tm_packet)
tm_packet = Service17TM(raw_tm_packet)
if tm_packet is None:
LOGGER.info(f'The service {service_type} is not implemented in Telemetry Factory')
tm_packet = PusTelemetry(raw_tm_packet)
tmtc_printer.print_telemetry(packet=tm_packet)
2 changes: 1 addition & 1 deletion src/tmtccmd/sendreceive/tm_listener.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class ListenerModes(Enum):

def __init__(
self, com_if: CommunicationInterface, tm_timeout: float, tc_timeout_factor: float,
tm_type = TmTypes.CCSDS_SPACE_PACKETS
tm_type: TmTypes = TmTypes.CCSDS_SPACE_PACKETS
):
"""Initiate a TM listener
:param com_if: Type of communication interface, e.g. a serial or ethernet interface
Expand Down
2 changes: 1 addition & 1 deletion src/tmtccmd/utility/conf_util.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,4 @@ def acquire_timeout(lock, timeout):
result = lock.acquire(timeout=timeout)
yield result
if result:
lock.release()
lock.release()

0 comments on commit b0cf33b

Please sign in to comment.