def __init__(self, node: pyuavcan.application.Node, level: int = logging.WARNING) -> None: self._pub = node.make_publisher(Record) self._pub.priority = pyuavcan.transport.Priority.OPTIONAL self._pub.send_timeout = 10.0 self._fut: Optional[asyncio.Future[None]] = None self._forward_timestamp = False self._started = False super().__init__(level) def start() -> None: self._started = True def close() -> None: self._started = False self._pub.close() if self._fut is not None: try: self._fut.result() except asyncio.InvalidStateError: pass # May be unset https://github.com/UAVCAN/pyuavcan/issues/192 node.add_lifetime_hooks(start, close)
def __init__(self, node: pyuavcan.application.Node, level: int = logging.WARNING) -> None: self._pub = node.make_publisher(Record) self._pub.priority = pyuavcan.transport.Priority.OPTIONAL self._pub.send_timeout = 10.0 self._fut: Optional[asyncio.Future[None]] = None self._forward_timestamp = False self._started = False super().__init__(level) def start() -> None: self._started = True def close() -> None: self._started = False self._pub.close() if self._fut is not None: self._fut.result() node.add_lifetime_hooks(start, close)