# {py:mod}`haniwers.v1.daq.device`

```{py:module} haniwers.v1.daq.device
```

```{autodoc2-docstring} haniwers.v1.daq.device
:allowtitles:
```

## Module Contents

### Classes

````{list-table}
:class: autosummary longtable
:align: left

* - {py:obj}`Device <haniwers.v1.daq.device.Device>`
  - ```{autodoc2-docstring} haniwers.v1.daq.device.Device
    :summary:
    ```
````

### Functions

````{list-table}
:class: autosummary longtable
:align: left

* - {py:obj}`connect <haniwers.v1.daq.device.connect>`
  - ```{autodoc2-docstring} haniwers.v1.daq.device.connect
    :summary:
    ```
* - {py:obj}`readline <haniwers.v1.daq.device.readline>`
  - ```{autodoc2-docstring} haniwers.v1.daq.device.readline
    :summary:
    ```
* - {py:obj}`write <haniwers.v1.daq.device.write>`
  - ```{autodoc2-docstring} haniwers.v1.daq.device.write
    :summary:
    ```
* - {py:obj}`flush <haniwers.v1.daq.device.flush>`
  - ```{autodoc2-docstring} haniwers.v1.daq.device.flush
    :summary:
    ```
* - {py:obj}`disconnect <haniwers.v1.daq.device.disconnect>`
  - ```{autodoc2-docstring} haniwers.v1.daq.device.disconnect
    :summary:
    ```
* - {py:obj}`is_available <haniwers.v1.daq.device.is_available>`
  - ```{autodoc2-docstring} haniwers.v1.daq.device.is_available
    :summary:
    ```
````

### API

````{py:function} connect(config: haniwers.v1.config.model.DeviceConfig) -> serial.Serial
:canonical: haniwers.v1.daq.device.connect

```{autodoc2-docstring} haniwers.v1.daq.device.connect
```
````

````{py:function} readline(device: serial.Serial) -> str
:canonical: haniwers.v1.daq.device.readline

```{autodoc2-docstring} haniwers.v1.daq.device.readline
```
````

````{py:function} write(device: serial.Serial, data: str | bytes) -> int
:canonical: haniwers.v1.daq.device.write

```{autodoc2-docstring} haniwers.v1.daq.device.write
```
````

````{py:function} flush(device: serial.Serial) -> None
:canonical: haniwers.v1.daq.device.flush

```{autodoc2-docstring} haniwers.v1.daq.device.flush
```
````

````{py:function} disconnect(device: serial.Serial) -> None
:canonical: haniwers.v1.daq.device.disconnect

```{autodoc2-docstring} haniwers.v1.daq.device.disconnect
```
````

````{py:function} is_available(config: haniwers.v1.config.model.DeviceConfig) -> bool
:canonical: haniwers.v1.daq.device.is_available

```{autodoc2-docstring} haniwers.v1.daq.device.is_available
```
````

`````{py:class} Device(config: haniwers.v1.config.model.DeviceConfig)
:canonical: haniwers.v1.daq.device.Device

```{autodoc2-docstring} haniwers.v1.daq.device.Device
```

```{rubric} Initialization
```

```{autodoc2-docstring} haniwers.v1.daq.device.Device.__init__
```

````{py:method} connect() -> None
:canonical: haniwers.v1.daq.device.Device.connect

```{autodoc2-docstring} haniwers.v1.daq.device.Device.connect
```

````

````{py:method} readline() -> str
:canonical: haniwers.v1.daq.device.Device.readline

```{autodoc2-docstring} haniwers.v1.daq.device.Device.readline
```

````

````{py:method} write(data: str | bytes) -> int
:canonical: haniwers.v1.daq.device.Device.write

```{autodoc2-docstring} haniwers.v1.daq.device.Device.write
```

````

````{py:method} flush() -> None
:canonical: haniwers.v1.daq.device.Device.flush

```{autodoc2-docstring} haniwers.v1.daq.device.Device.flush
```

````

````{py:method} disconnect() -> None
:canonical: haniwers.v1.daq.device.Device.disconnect

```{autodoc2-docstring} haniwers.v1.daq.device.Device.disconnect
```

````

````{py:method} with_timeout(sec: float)
:canonical: haniwers.v1.daq.device.Device.with_timeout

```{autodoc2-docstring} haniwers.v1.daq.device.Device.with_timeout
```

````

````{py:method} is_available() -> bool
:canonical: haniwers.v1.daq.device.Device.is_available

```{autodoc2-docstring} haniwers.v1.daq.device.Device.is_available
```

````

````{py:method} get_mac_address() -> str
:canonical: haniwers.v1.daq.device.Device.get_mac_address

```{autodoc2-docstring} haniwers.v1.daq.device.Device.get_mac_address
```

````

`````
