Add config module: INI loader with schema-driven defaults

Config_Def schema tables declare section/key/type/default per module.
Typed getters: config_get_str, _u16, _u32, _flags.
FLAGS type parses space/comma-separated tokens via a Config_Flag_Def table.
config_defaults() gives schema defaults without a file.
config_dump() prints effective values for diagnostics.

config_cli: load a file or --defaults and dump effective config.
dev/example.cfg: sample config covering node, discovery, transport.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-26 22:37:53 +00:00
parent d6e34ed95b
commit ba26bd0cb7
7 changed files with 457 additions and 3 deletions

17
dev/example.cfg Normal file
View File

@@ -0,0 +1,17 @@
# Example node configuration.
# All keys are optional — missing keys use schema defaults.
[node]
name = v4l2:microscope
site_id = 0
tcp_port = 8001
function = source
[discovery]
interval_ms = 5000
timeout_intervals = 3
connect_mask = relay, controller ; auto-connect to relays and controllers
[transport]
max_connections = 16
max_payload = 16777216 ; 16 MB