# `EtherCAT.Simulator.Transport.Raw`
[🔗](https://github.com/sid2baker/ethercat/blob/main/lib/ethercat/simulator/transport/raw.ex#L1)

Public raw transport surface for `EtherCAT.Simulator`.

Raw transport runs one primary endpoint in single-link mode or paired
primary/secondary endpoints in redundant mode. This module exposes raw-edge
transport controls and mode-aware introspection without leaking the endpoint
worker module into public tests and tooling.

# `endpoint_selector`

```elixir
@type endpoint_selector() :: :primary | :secondary | :all
```

# `fault`

```elixir
@type fault() ::
  {:delay_response, endpoint_selector(), non_neg_integer(), ingress_selector()}
```

# `ingress_selector`

```elixir
@type ingress_selector() :: :primary | :secondary | :all
```

# `clear_faults`

```elixir
@spec clear_faults() :: :ok | {:error, :not_found}
```

# `info`

```elixir
@spec info() :: {:ok, map()} | {:error, :not_found}
```

# `inject_fault`

```elixir
@spec inject_fault(EtherCAT.Simulator.Transport.Raw.Fault.t() | fault()) ::
  :ok | {:error, :invalid_fault | :not_found}
```

---

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