Skip to content

Server API

Tier: Stable Core

CLICK Modbus TCP simulator and server utilities.

pyclickplc.ClickServer

Modbus TCP server simulating a CLICK PLC.

is_running

is_running() -> bool

Return True when the underlying listener transport is active.

list_clients

list_clients() -> list[ServerClientInfo]

Return the currently connected Modbus TCP clients.

disconnect_client

disconnect_client(client_id: str) -> bool

Disconnect a single client by pymodbus connection id.

disconnect_all_clients

disconnect_all_clients() -> int

Disconnect all connected clients and return how many were closed.

start async

start() -> None

Start the Modbus TCP server.

stop async

stop() -> None

Stop the server gracefully.

serve_forever async

serve_forever() -> None

Start the server and block until stopped.

pyclickplc.MemoryDataProvider

Bases: AddressNormalizerMixin

In-memory DataProvider for testing and simple use cases.

get

get(address: str) -> PlcValue

Synchronous read convenience.

set

set(address: str, value: PlcValue) -> None

Synchronous write convenience.

bulk_set

bulk_set(values: dict[str, PlcValue]) -> None

Set multiple values at once.

pyclickplc.ServerClientInfo dataclass

Connected client metadata exposed by ClickServer.

pyclickplc.run_server_tui async

run_server_tui(
    server: ClickServer,
    *,
    prompt: str = "clickserver> ",
    input_fn: Callable[[str], str] | None = None,
    output_fn: Callable[[str], None] | None = None,
) -> None

Run a basic interactive command loop for a ClickServer.