# IOCardConfig

# 📦 Configurazione delle Schede IO (IOCardConfig)

La configurazione delle schede IO è un elemento fondamentale per il corretto funzionamento del sistema.

Questa configurazione descrive tutte le caratteristiche delle schede Input/Output (IO) che possono essere sia normali sia di sicurezza (safety), e viene fornita in un file YAML che viene poi letto e interpretato dal software.

## 🧩 Struttura generale della configurazione

La configurazione è organizzata in due sezioni principali:

- NormalIoCards: contiene la definizione delle schede IO normali.
- SafetyIoCards: contiene la definizione delle schede IO di sicurezza.

Ogni sezione è composta da un insieme di schede, ognuna identificata da un nome univoco (ad esempio `AB:1734_DI8:C:0:`). Per ogni scheda sono definiti i seguenti elementi:

Proprietà | Descrizione
--- | ---
type | Tipo generico della scheda (es. IB8, OB8, IT2I) che indica la funzione o famiglia della scheda.
nodeType | Nome del template grafico usato per rappresentare la scheda nell’interfaccia utente.
iODirection | Direzione IO, indica se la scheda è di tipo input (“I”) o output (“O”).
colors | Definizione dei colori usati nella UI per la scheda e i suoi LED (acceso/spento).

## ⚠️ Specifiche per le schede di sicurezza (SafetyIoCards)

Le schede di sicurezza hanno una proprietà in più rispetto a quelle normali:

- outputType: indica il tipo di output associato alla scheda di sicurezza (es. `AB:1734_IB8S:O:0`).
  Serve a collegare la scheda di input safety con il suo corrispettivo output, necessario per la logica di sicurezza.

## 🎨 Dettaglio sui colori

La sezione `colors` permette di personalizzare l’aspetto della scheda nell’interfaccia grafica, con valori numerici che rappresentano i colori:

- card: colore principale della scheda.
- led_on: colore del LED quando è acceso (es. LED verde acceso).
- led_off: colore del LED quando è spento (es. LED rosso spento).

## 📝 Esempio pratico di configurazione YAML

    normalIoCards:
      AB:1734_DI8:C:0:
        type: IB8
        nodeType: IOCard_8B
        iODirection: I
        colors:
          card: 0xff1b83df
          led_on: 0xff00fa7e
          led_off: 0xff0f4d29

      AB:1734_DOB8:C:0:
        type: OB8
        nodeType: IOCard_8B
        iODirection: O
        colors:
          card: 0xff40aa84
          led_on: 0xffea2e2e
          led_off: 0xff500f0f

    safetyIoCards:
      AB:1734_IB8S_Safety2:I:0:
        outputType: AB:1734_IB8S:O:0
        type: IB8S
        nodeType: IOCard_8BS
        iODirection: I
        colors:
          card: 0xffe4564b
          led_on: 0xff00fa7e
          led_off: 0xff0f4d29