# Konfiguration LrPy konfigureras med en YAML-fil som anger vilka moduler som ska köras och hur de ska konfigureras. Programmet startas med: ```bash uv run python -m lrpy run config.yaml ``` ## Struktur En komplett konfigurationsfil ser ut så här: ```yaml commod: type: "lrpy.com_module:StdComModule" config: modules: - type: "lrpy.modules.i2c:I2CModule" config: bridge-path: "/usr/local/bin/bridge" device-path: "/dev/i2c-1" mcu-address: 8 - type: "lrpy.modules.api:ApiModule" logging: outputs: - file: "debug.log" level: "DEBUG" - file: "error.log" level: "ERROR" ``` ### commod Anger vilken kommunikationsmodul som ska användas. I de flesta fall ska detta vara `lrpy.com_module:StdComModule`. Under `config.modules` listas alla moduler som ska köras. Varje modul anges med `type` (se [Loader](loader.md) för formatet) och ett valfritt `config`-block. ### logging (valfritt) Konfigurerar loggning till fil. Varje output anger en fil och en lägsta loggnivå. Tillgängliga nivåer: `DEBUG`, `INFO`, `WARNING`, `ERROR`. Om `logging` utelämnas sker ingen filloggning. ## Modulkonfiguration Varje modul i listan kan ha ett `config`-block. Värdena i blocket mappas till modulens `Config`-klass (se [Modul](module.md) och [Loader](loader.md)). En modul utan `Config`-klass behöver inget `config`-block: ```yaml - type: "lrpy.modules.api:ApiModule" ``` En modul med `Config`-klass: ```yaml - type: "lrpy.modules.i2c:I2CModule" config: bridge-path: "/usr/local/bin/bridge" device-path: "/dev/i2c-1" mcu-address: 8 ``` Om `config` anges för en modul som inte definierar en `Config`-klass ges ett felmeddelande vid uppstart.