Konfiguration

LrPy konfigureras med en YAML-fil som anger vilka moduler som ska köras och hur de ska konfigureras. Programmet startas med:

uv run python -m lrpy run config.yaml

Struktur

En komplett konfigurationsfil ser ut så här:

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 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 och Loader).

En modul utan Config-klass behöver inget config-block:

- type: "lrpy.modules.api:ApiModule"

En modul med Config-klass:

- 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.