Skip to content

v4.0.0 — Job, fault visibili, tag dictionary e hierarchy

Latest

Choose a tag to compare

@zEhmsy zEhmsy released this 27 Aug 16:32

Prima release da quando il modulo è in esercizio su impianti reali. Il tema di fondo è rendere visibile quello che prima succedeva in silenzio: avanzamento delle operazioni lunghe, errori, versione installata, semantica dei punti.

⚠️ Aggiornando da 3.x, fate prima una copia del config.bog. Il servizio è passato da BComponent a BAbstractService — necessario per poter segnalare il fault. La migrazione è stata verificata caricando un bog scritto dalla 3.1.1: configurazione, albero Modbus e discovery report vengono conservati, e i nuovi slot compaiono con i valori di default. Anche il ritorno alla 3.1.1 funziona, perché gli slot che il codice vecchio non conosce vengono ignorati. Il test però è stato fatto su un impianto di prova (due centrali, 24 dispositivi, nessuna modifica manuale all'albero): su impianti grandi o personalizzati a mano, la copia di sicurezza resta la mossa giusta.

✨ Novità

  • Discover e Commit sono job Niagara. Barra di avanzamento con percentuale, annullamento reale ed esito finale riportato dalla station. Prima la UI indovinava a tempo quando l'operazione fosse finita: con import oltre i 4 secondi la tabella restava vuota e l'operatore rilanciava il discover.
  • Gli errori di import si vedono nell'albero. Il servizio va in fault con la causa leggibile accanto, e torna normale da solo al primo import riuscito. Prima l'errore stava in una property da aprire a mano, e il log non è consultabile a station accesa.
  • Banner di versione. Il servizio espone moduleVersion con versione, commit e data di build: da una segnalazione dal campo si risale subito a cosa è installato.
  • Tag dictionary am8x con tag impliciti. Ogni punto porta centrale, loop, posizione, zona e tipo dispositivo. I tag sono calcolati, non scritti nel config.bog: nessuno spazio occupato e nessun disallineamento dopo una rinomina.
  • Hierarchy pronte nella palette. Due gerarchie da trascinare in HierarchyService per la vista dell'impianto per centrale e per zona, senza configurare nulla.
  • Nomi di slot più sicuri. Escape dei caratteri non validi, e se due dispositivi diversi reclamano lo stesso nome nella stessa centrale il secondo viene numerato invece di sovrascrivere il primo in silenzio. Lo scoping per centrale è deliberato: su siti con più centrali cablate uguali, L01S002 esiste legittimamente in ognuna.
  • Display name a template. Lo slot resta canonico e stabile (L01S002, necessario perché il re-import ritrovi il punto), ma nell'albero si legge anche l'etichetta. Configurabile con displayNameFormat, applicabile anche a un albero già importato.
  • Versione del modulo allineata alle release. module.xml, banner sulla station, badge del README e tag git ora dicono lo stesso numero. Prima la station riportava 1.3 per una release chiamata 3.1.x.

🐛 Fix

  • Palette con UnrestrictedFolder. Un b:Folder come parent di BTagDictionary/BHierarchy mandava in errore l'intera palette, non solo l'elemento sbagliato.
  • Path del file XML. Sys.getStationHome() restituisce già la shared root: il codice ci appendeva un secondo segmento shared e cercava in <station>/shared/shared/. Corretto in modo retrocompatibile, gli ORD legacy continuano a risolvere.
  • Il pannello Database non compare più nella vista di importazione, che lavora sul solo Discover.
  • Il job di commit non supera più il 100% di avanzamento e registra correttamente lo stato quando viene annullato.

🧪 Test

40 test JUnit sulla logica pura: indirizzamento Modbus, round-trip fra nome di slot e chiave dispositivo, formattazione dei display name, risoluzione dei path.

📦 Allegati

Moduli .jar firmati, compilati per Niagara 4.15:

  • am8xControl-rt.jar
  • am8xControl-wb.jar

Per l'installazione vedi la Guida.

Changelog: v3.1.1...v4.0.0