Vai al contenuto

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

  1. Verifica le tabelle/colonne del MES.
  2. Carica macchine, sorgenti, regole e valori stato abilitati.
  3. Risolve le connessioni dal database e dai riferimenti protetti.
  4. Valida identificatori, campi letti e tabella fisica di update.
  5. Legge righe con Elaborato=0, ordinate per timestamp e ID.
  6. Normalizza stati e campi, rispettando il fuso configurato.
  7. In una transazione MES aggiorna stato, eventi, snapshot e campione raw.
  8. Dopo il commit centrale marca la riga fisica sorgente a Elaborato=1.
  9. Rinnova la raggiungibilità dopo ogni lettura riuscita, anche senza nuove righe.
  10. 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.