# `IEC60870.CS101.Transport`
[🔗](https://github.com/Ultraluv/ex_iec60870/blob/main/lib/iec60870/cs101/transport.ex#L1)

Transport abstraction for IEC 60870-5-101 serial / virtual links.

Any transport implementation delivers incoming bytes to the controlling process
as `{:cs101_transport_data, handle, binary_data}` messages and implements `send_data/2`.

# `close`

```elixir
@callback close(handle :: term()) :: :ok
```

# `send_data`

```elixir
@callback send_data(handle :: term(), data :: binary()) :: :ok | {:error, term()}
```

# `close`

```elixir
@spec close({module(), term()}) :: :ok
```

# `send_data`

```elixir
@spec send_data({module(), term()}, binary()) :: :ok | {:error, term()}
```

Sends raw bytes over a `{module, handle}` transport tuple.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
