Les sources du package RFLINK sont là
Dans le protocol.py , tu trouvera ça
def create_rflink_connection(
port: int,
host: str,
baud: int = 57600,
keepalive: Optional[int] = None,
protocol: Type[ProtocolBase] = RflinkProtocol,
packet_callback: Optional[Callable[[PacketType], None]] = None,
event_callback: Optional[Callable[[PacketType], None]] = None,
disconnect_callback: Optional[Callable[[Optional[Exception]], None]] = None,
ignore: Optional[Sequence[str]] = None,
loop: Optional[asyncio.AbstractEventLoop] = None,
) -> "Coroutine[Any, Any, Tuple[asyncio.BaseTransport, ProtocolBase]]":
"""Create Rflink manager class, returns transport coroutine."""
...
@overload
def create_rflink_connection(
port: str,
host: None = None,
baud: int = 57600,
keepalive: None = None,
protocol: Type[ProtocolBase] = RflinkProtocol,
packet_callback: Optional[Callable[[PacketType], None]] = None,
event_callback: Optional[Callable[[PacketType], None]] = None,
disconnect_callback: Optional[Callable[[Optional[Exception]], None]] = None,
ignore: Optional[Sequence[str]] = None,
loop: Optional[asyncio.AbstractEventLoop] = None,
) -> "Coroutine[Any, Any, Tuple[asyncio.BaseTransport, ProtocolBase]]":
"""Create Rflink manager class, returns transport coroutine."""
...
def create_rflink_connection(
port: Union[None, str, int] = None,
host: Optional[str] = None,
baud: int = 57600,
keepalive: Optional[int] = None,
protocol: Type[ProtocolBase] = RflinkProtocol,
packet_callback: Optional[Callable[[PacketType], None]] = None,
event_callback: Optional[Callable[[PacketType], None]] = None,
disconnect_callback: Optional[Callable[[Optional[Exception]], None]] = None,
ignore: Optional[Sequence[str]] = None,
loop: Optional[asyncio.AbstractEventLoop] = None,
) -> "Coroutine[Any, Any, Tuple[asyncio.BaseTransport, ProtocolBase]]":
"""Create Rflink manager class, returns transport coroutine."""
if loop is None:
loop = asyncio.get_event_loop()
# use default protocol if not specified
protocol_factory = partial(
protocol,
loop=loop,
packet_callback=packet_callback,
event_callback=event_callback,
disconnect_callback=disconnect_callback,
ignore=ignore if ignore else [],
keepalive=keepalive,
)
# setup serial connection if no transport specified
if host:
conn = loop.create_connection(protocol_factory, host, cast(int, port))
else:
conn = create_serial_connection(loop, protocol_factory, port, baud)
return conn # type: ignore
Il faut continuer à remonter la pile d’appels, là tu as 3 primitives différentes en fonction des paramétres