Configuration and logs
Preset folders
Every control change is saved to vr-config.json — beside the executable, or in the folder given to --config. On launch the tool applies that file and auto-starts the session, so a folder configured once relaunches its own receiver.
Drop the executable in several folders, configure each once, and each folder is a self-contained preset receiver.
- Stopping a session does not rewrite the config, so a preset survives a manual stop.
- A saved
selectedlist is dropped if the saved receiver no longer resolves. - Numbers written as JSON strings are accepted, so a config file from the old Delphi tool loads.
vr-config.json keys
| Key | Holds |
|---|---|
receiver | Selected receiver name |
role | client (dial) or server (listen) |
ip, port | Link A endpoint. Defaults 127.0.0.1 and 7001 |
ipB, portB | Link B endpoint. Defaults 127.0.0.1 and 7002 |
split | Whether link B is running |
heartbeat, heartbeatSec, heartbeatSignal | Heartbeat on or off, its period in seconds, and its escaped bytes |
signalRow | Highlighted row in the signal table |
selected | Indexes ticked Sel — the campaign pool |
campN, campHH, campMM | Campaign budget: N signals per hh:mm window |
campMode | once, for or indefinite |
campDD, campDurHH, campDurMM | Run-for duration in days, hours and minutes |
repairAndFrame | Whether outgoing bytes are repaired and framed instead of raw |
logMaxFileMB, logMaxDays, logMinFreeMB | Log bounds — see below |
Log files
Log lines are written to daily files under log/ in the config folder and mirrored to standard output. The file currently being written is named under the log pane.
Log bounds
Log settings holds three guardrails:
| Setting | Default | Effect |
|---|---|---|
| Max file size (MB) | 25 | The size at which the current file is rolled |
| Keep days | 14 | How long rolled files are retained |
| Min free disk (MB) | 500 | The free-space floor |
Below the free-disk floor, files past retention are purged and writing then stops rather than filling the disk.
Applying these values purges files past the new retention, so they are applied when a field loses focus — never on each keystroke.