# winginitau/victronvedirectarduino architecture

> Architecture diagram of the GitHub repository winginitau/victronvedirectarduino, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/winginitau/victronvedirectarduino
- Repository: https://github.com/winginitau/victronvedirectarduino

## Overview

VictronVEDirectArduino is a small Arduino library for reading VE.Direct text-protocol statistics and settings. An Arduino sketch supplies a hardware serial port, requests a labeled value, and receives its parsed integer value; the library also supports printing a diagnostic dump. The example demonstrates the read workflow. The README documents extensible labels, but the sampled implementation shows the built-in labels and parsing behavior only.

Main entry points: [`src/VEDirect.cpp`](https://github.com/winginitau/victronvedirectarduino/blob/master/src/VEDirect.cpp) (Serial reader), [`src/VEDirect.h`](https://github.com/winginitau/victronvedirectarduino/blob/master/src/VEDirect.h) (VEDirect API), [`examples/ReadVEDirect/ReadVEDirect.ino`](https://github.com/winginitau/victronvedirectarduino/blob/master/examples/ReadVEDirect/ReadVEDirect.ino) (Example sketch)

## Diagram (Mermaid)

```mermaid
flowchart TD

node_example["Example sketch<br/>[ReadVEDirect.ino]"]
node_api["VEDirect API<br/>[VEDirect.h]"]
node_reader["Serial reader<br/>[VEDirect.cpp]"]
node_device(("VE.Direct device"))
node_port["Hardware serial"]
node_serial0["Serial0 output"]
node_value["Parsed value"]

node_example -->|"constructs and calls"| node_api
node_api -->|"implemented by"| node_reader
node_device -->|"sends text"| node_port
node_reader -->|"reads and configures"| node_port
node_reader -->|"returns value"| node_value
node_reader -->|"prints dump"| node_serial0

click node_example "https://github.com/winginitau/victronvedirectarduino/blob/master/examples/ReadVEDirect/ReadVEDirect.ino"
click node_api "https://github.com/winginitau/victronvedirectarduino/blob/master/src/VEDirect.h"
click node_reader "https://github.com/winginitau/victronvedirectarduino/blob/master/src/VEDirect.cpp"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_example,node_reader toneTeal
class node_api toneMint
class node_device,node_port,node_serial0,node_value toneIndigo
```

## Components

### Other components

- [Example sketch](https://github.com/winginitau/victronvedirectarduino/blob/master/examples/ReadVEDirect/ReadVEDirect.ino): `examples/ReadVEDirect/ReadVEDirect.ino`
- [VEDirect API](https://github.com/winginitau/victronvedirectarduino/blob/master/src/VEDirect.h): `src/VEDirect.h`
- [Serial reader](https://github.com/winginitau/victronvedirectarduino/blob/master/src/VEDirect.cpp): `src/VEDirect.cpp`
- **VE.Direct device**
- **Hardware serial**
- **Serial0 output**
- **Parsed value**

## Connections

- Example sketch → VEDirect API: constructs and calls
- VEDirect API → Serial reader: implemented by
- VE.Direct device → Hardware serial: sends text
- Serial reader → Hardware serial: reads and configures
- Serial reader → Parsed value: returns value
- Serial reader → Serial0 output: prints dump
