LinkMachine Engine¶
Ruolo e perimetro¶
Engine v0.1.0 è un Worker Service C# .NET 10. Acquisisce sorgenti MySQL/MariaDB DATI_MACCHINA e alimenta il MES. Non espone una API HTTP.
Modalità di avvio¶
Dalla cartella dell'artefatto, con configurazione e runtime predisposti:
dotnet LinkMachine.Engine.dll --validate
dotnet LinkMachine.Engine.dll --once
dotnet LinkMachine.Engine.dll
| Modalità | Effetto |
|---|---|
--validate |
Controlla schema centrale, mapping e metadati sorgente in sola lettura; exit code non zero in caso di errori |
--once |
Esegue un ciclo; può scrivere sul MES e marcare le righe sorgente |
| Senza argomenti | Esegue subito un ciclo e prosegue con polling |
Nel progetto Windows, engine/test-engine.bat propone le tre modalità e verifica SDK .NET 10 e configurazione. Il file engine/deploy/linkmachine-engine.service è il modello di servizio Linux da adattare.
Ciclo di acquisizione¶
- Verifica le tabelle/colonne del MES.
- Carica macchine, sorgenti, regole e valori stato abilitati.
- Risolve le connessioni dal database e dai riferimenti protetti.
- Valida identificatori, campi letti e tabella fisica di update.
- Legge righe con
Elaborato=0, ordinate per timestamp e ID. - Normalizza stati e campi, rispettando il fuso configurato.
- In una transazione MES aggiorna stato, eventi, snapshot e campione raw.
- Dopo il commit centrale marca la riga fisica sorgente a
Elaborato=1. - Rinnova la raggiungibilità dopo ogni lettura riuscita, anche senza nuove righe.
- Applica il timeout gateway in caso di sorgente non raggiunta.
Chiavi deterministiche rendono idempotenti eventi, snapshot e campioni in caso di rilettura. La marcatura sul database sorgente avviene dopo il commit MES: i due database non partecipano a una singola transazione distribuita.
Configurazione¶
L'INI locale contiene il bootstrap del database MES in [database] e opzioni Worker in [engine]: nome, polling, batch, campioni raw, fallback lotto e fuso. Non è il catalogo delle sorgenti.
Le sorgenti e i campi provengono da mapping_sources, machine_mapping_rules e machine_mapping_status_values. I segreti possono essere risolti tramite riferimenti env:, file:, ini: o file PHP protetto. LINKMACHINE_SOURCE_CONFIG_ROOT permette di indicare la radice dei file referenziati.
Limiti della v0.1.0¶
ERP/ODBC, fermi dinamici completi, esclusione pause/setting, record orari e retention raw non sono implementati nel Worker. La presenza di tabelle o funzioni dashboard per questi dati non amplia automaticamente il perimetro dell'engine.
Le memorie riportano 38 test automatici e un precedente ciclo live controllato. La versione con nuove colonne opzionali deve superare --validate sullo schema aggiornato prima dell'avvio continuo.