コード例 #1
0
    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)
コード例 #2
0
    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)