# `IEC60870.Types.TypeID`
[🔗](https://github.com/Ultraluv/ex_iec60870/blob/main/lib/iec60870/types/type_id.ex#L1)

IEC 60870-5 ASDU Type Identifications (`IEC60870_5_TypeID`).
Supports bidirectional conversion between integer codes (1..255) and descriptive atoms,
as well as element byte size lookup and single-IO validation.

# `code`

```elixir
@type code() :: 1..255
```

# `name`

```elixir
@type name() :: atom()
```

# `t`

```elixir
@type t() :: name() | code()
```

# `element_data_size`

# `sequence_supported?`

```elixir
@spec sequence_supported?(t()) :: boolean()
```

Returns `true` if compact sequence encoding (`SQ = 1`) is supported by `CS101_ASDU_getElementEx`
in `lib60870-C` (`cs101_asdu.c:1378-1675`), which is true for TypeIDs `1..21` and `30..40` / `110..113`.
Note: `126` (`F_DR_TA_1`), `127` (`F_SC_NB_1`), `41` (`S_IT_TC_1`), `70` (`M_EI_NA_1`), and all `single_io?` types
always encode an IOA per element.

# `single_io?`

# `to_atom`

Converts a TypeID integer code to its descriptive atom representation.

# `to_code`

Converts a TypeID atom or code to its 1..255 integer representation.

# `to_string`

---

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