# `Modbuv.Rtu`
[🔗](https://github.com/ultra0224/modbuv/blob/v0.1.0/lib/modbuv/rtu.ex#L1)

Modbus RTU ADU framing: `<<slave, pdu, crc::little-16>>`.

# `pack_exception`

```elixir
@spec pack_exception(0..255, 1..127, atom()) :: binary()
```

# `pack_req`

```elixir
@spec pack_req(tuple()) :: binary()
```

# `pack_res`

```elixir
@spec pack_res(tuple(), list() | nil) :: binary()
```

# `parse_req`

```elixir
@spec parse_req(binary(), map()) :: {:ok, tuple()} | {:error, atom(), integer() | nil}
```

# `parse_res`

```elixir
@spec parse_res(tuple(), binary()) :: list() | nil | {:error, term()}
```

# `response_fits?`

```elixir
@spec response_fits?(tuple()) :: boolean()
```

# `response_length`

```elixir
@spec response_length(tuple(), binary()) ::
  {:ok, pos_integer()} | :more | {:error, term()}
```

---

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