> ## Documentation Index
> Fetch the complete documentation index at: https://docs.directenergypartners.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Analog I/O

### Naming Conventions

While not mandatory, it is recommended to adopt the following naming conventions for clarity and usability:

* **Write Operations:** Prefix register names with `control.` to indicate that the register is used to set the analog output.
* **Read Operations:** Prefix register names with `measure.` to signify that the register is used to read the analog input signal.

See the example address map below for register naming conventions.

### Required Parameters

<ParamField path="name" type="string" required>
  A unique name for the register.

  **Example:** `measure.voltage`
</ParamField>

<ParamField path="address" type="int" required>
  Corresponds to the number on the analog input or output module.

  **Example:** `0`

  <Note>
    Please note that the address should start from 0, not from 1.
  </Note>
</ParamField>

<ParamField path="type" type="string" required>
  Indicates whether the register is an input or an output.

  **Options:** `input | output`
</ParamField>

### Optional Parameters

<ParamField path="scaling" type="int | float">
  The scaling factor to apply to the analog register's return value or the value being written.

  **Example:** `50`
</ParamField>

<ParamField path="offset" type="int | float">
  The offset to apply to the analog register's return value or the value being written.

  **Example:** `100`
</ParamField>

### Example

```json aio_address_map.json icon="code" theme={null}
[
  {
    "name": "measure.voltage",
    "address": 0,
    "type": "input",
    "scaling": 50,
    "offset": 100
  },
  {
    "name": "control.lights",
    "address": 0,
    "type": "output"
  }
]
```
