Changelog
Tutte le modifiche rilevanti di questo progetto sono documentate in questo file.
[2.11] - 2026-08-17
Aggiunto
- smartDrive:
- Nuovo plugin per l'hardware owasys smartDrive: 4 ingressi analogici (
ain_channels, frequenza di campionamento configurabile, scala/offset, campo di misura e riduzione dei dati), monitoraggio della tensione di alimentazione e della temperatura interna, LED di stato e un controllo periodico della connettività Internet (pingUrl, HTTP HEAD ogni 60 s). - Chiamate RPC
getStatus,getInternalTemperatureegetSupplyVoltage.
- Nuovo plugin per l'hardware owasys smartDrive: 4 ingressi analogici (
- Siexpert (PREVIEW):
- Nuovo plugin per la lettura dei file expert Siemens delle locomotive Vectron.
- smartCORE:
- Le voci di modulo in
smartcore.jsonesmartcore_dynamic.jsonaccettano una nuova chiave opzionale"configFile"(un singolo nome di file o un array di nomi). I file referenziati vengono caricati dal percorso di ricerca della configurazione e uniti in ordine — gli array vengono concatenati, gli oggetti uniti ricorsivamente — con il blocco"config"inline sempre prioritario. Ciò consente di mantenere una sola volta frammenti di configurazione condivisi e di riutilizzarli tra più moduli e dispositivi. I file mancanti o illeggibili vengono saltati con un avviso; la misura parte comunque.
- Le voci di modulo in
- TRDP:
- Nuova proprietà
trafficFilter: un elenco di coppieport/groupAddress, in modo che un'istanza di modulo possa ricevere più gruppi multicast e porte. - Nuova proprietà
joinGroup(per voce di filtro, predefinitofalse): si unisce attivamente al gruppo multicast tramite IGMP sull'interfaccia di rete configurata, anziché limitarsi a filtrare il traffico che arriva comunque. - Nuova proprietà
pollingIntervalMs(predefinito 1000, intervallo 100…2000).
- Nuova proprietà
- Batmon:
- Nuova proprietà
configurationErrorChannelName. Il canale segnala il motivo per cui un set di parametri è stato rifiutato, ad es.VoltageAlwaysOnTooHigh (-3),WrongShutdownTime (2),OK (0).
- Nuova proprietà
- Mav:
- Controllo del paese: finché il nuovo canale booleano opzionale
channelnameCountryCheckè true, i dati vengono inviati al server MÁV solo se il paese letto dachannelnameCurrentCountryCode(ISO 3166-1 alpha-2) corrisponde all'impostazionetargetCountryCode, con confronto senza distinzione tra maiuscole e minuscole.targetCountryCodeha come predefinitoHU; un paese sconosciuto o vuoto sopprime l'invio. Se il canale è assente o false — impostazione predefinita — i dati vengono inviati indipendentemente dal paese, quindi le configurazioni esistenti si comportano come prima. - Nuova proprietà
channelnameCustomerID: un attributo condiviso opzionale di optiCloud che sostituisce a runtime ilsenderconfigurato e viene trasmesso come attributo SOAPSender. - Nuova proprietà
channelnameHDOP: canale di ingresso float il cui valore filtrato abilita il rilevamento degli eventi di avvio/arresto della locomotiva e viene pubblicato comeMAV.HdopFilt. - Nuova proprietà
timezone(ID di fuso orario IANA, predefinitoEurope/Budapest) utilizzata per formattare il campoGPSTimeinviato al server MÁV. - Nuovo valore di stato
NO_SENDER (-6)suMAV.Status; i sei valori esistenti mantengono i propri numeri. Tutti i valori di stato sono ora documentati nella descrizione del modulo.
- Controllo del paese: finché il nuovo canale booleano opzionale
- Math:
- funzione derive() per calcolare una derivata filtrata d/dt di un segnale di ingresso equidistante
- macro #timezone per abilitare l'ora legale automatica nelle funzioni correlate, ad es.
decodeTime(..., {useTZ: <bool>})timer(..., {useTZ: <bool>})include la libreria date di Howard Hinnant
memory()fornisce una memoria indicizzata di una data dimensione; il tipo di dati viene ricavato dall'inizializzatore, con le modalitàM=,M+=eM*=.sScan(fmt, s)estrae valori da una stringa utilizzando segnaposto di formato in stile scanf.sGetKV(s, k [, {format, filter}])trova una coppia chiave-valore in un testo; i formati supportati sonojson,ini,xml_attrexml_node. Un indice opzionale seleziona l'n-esima corrispondenza.
Modificato
- Math:
- Catalog Version 13
timer()ora emette tutti gli impulsi che rientrano in un intervallo di valutazione anziché solo il primo, e le voci crontab vengono risolte con precisione inferiore al secondo. In precedenza i timer potevano saltare impulsi con frequenze di tick elevate.transit()/ state machine: i ciclinMaxannidati che condividono uno stato di destinazione ora contano in modo indipendente. Il contatore interno viene azzerato quando il ciclo esterno rientra nello stato iniziale del ciclo.
- Batmon:
- Il nome predefinito del canale della modalità operativa è cambiato da
batmon__Operating_Modeabatmon__PluginState. Le installazioni che indirizzano il canale per nome devono adattarsi oppure mantenere il vecchio nome tramiteoperatingModeChannelName. - Il canale della modalità operativa ora riporta l'intera state machine del plugin
(0…15, ad es.
GetParameter (6),Running (9),PostponeShutDown (14)) anziché i quattro stati approssimativi precedenti. - I canali dell'evento di spegnimento e della richiesta di risparmio energetico sono ora descritti completamente nella
documentazione del modulo.
requestEnergySaveè un flag con latch: viene impostato una volta che il risparmio energetico è stato richiesto dall'avvio del modulo e viene azzerato solo da un riavvio del modulo — non indica l'attività di risparmio energetico in corso.
- Il nome predefinito del canale della modalità operativa è cambiato da
- Mav:
- Sono stati corretti tre valori predefiniti che non corrispondevano al comportamento del modulo.
- Le modifiche sui canali opzionali (LocoNr, CustomerID, CountryCheck,
CurrentCountryCode) vengono segnalate a livello info anziché solo con
debugLog, e solo quando il valore cambia effettivamente.
- Dbc:
- La proprietà
separateEFFlagè stata rimossa. La distinzione tra indirizzamento a 11 bit e a 29 bit viene configurata nel modulo canbus tramitekeepEFFFlag(introdotta nella 2.10.1).
- La proprietà
- TRDP:
portora viene validato rispetto all'intervallo 0…65535 anziché essere accettato senza controllo.
- GRPC:
- Adattato all'API gRPC 1.80.0, fornita con Yocto Wrynose.
- Librerie di terze parti:
- valijson 1.1.0 → 1.1.3, utilizzata per validare la configurazione del modulo rispetto al suo schema.
- Howard Hinnant date library v3.0.4 inclusa di nuovo; fornisce la gestione dei fusi orari
alla base della macro math
#timezone.
Rimosso
- Microstrain (PREVIEW): il modulo è stato rimosso.
Corretto
- Math
- playback() fornisce valori predefiniti ai canali se non è attivo
- Il timeout di #warn produceva numerosi falsi positivi se il primo campione era un intervallo attendibile più grande
- correzioni di sicurezza e stabilità
- Un segno unario iniziale veniva applicato alla base di un'espressione di potenza anziché
al suo risultato:
-2^2restituiva4anziché-4. Ora si applica la consueta convenzione matematica (-2^2=-(2^2)). Le formule che si basavano sul vecchio comportamento richiedono parentesi esplicite. Tutti gli altri operatori non sono interessati;~e!mantengono la precedenza più alta. - La funzione stringa
sRight()era registrata con il nome erratosRigth()e non poteva quindi essere chiamata con il nome documentato. Le formule che utilizzano il nome errato devono essere adattate. playback()non inserisce più campioni attendibili all'intervallo del batch una volta che i dati di replay sono stati aggiunti.prioEnc()in modalità edge restituiva un valore casuale anziché il valore "none" configurato quando non era presente alcun fronte, e restituiva il valore "none" anziché l'indice 0 per un fronte sul primo ingresso.sResource({$ref: '...'})non risolveva il proprio riferimento alla risorsa in fase di compilazione e falliva a runtime.makeDim()non memorizzava l'intervallo di campionamento equidistante.- L'operatore
;causava una perdita di memoria quando una variabile non veniva né utilizzata né pubblicata. - Espressioni con annidamento profondo potevano causare l'arresto anomalo del modulo; la profondità delle espressioni è ora limitata a 128 livelli e segnalata come errore di sintassi.
- I messaggi di errore del parser indicano correttamente la parentesi attesa (
missing ']'anzichéunbalanced opening ']').
- smartCORE:
- La prima lettura di un canale poteva restituire un campione fantasma con timestamp 0 e valore 0 prima del primo valore di misura reale. I moduli che leggono i canali lo ricevevano tramite la normale iterazione dei campioni.
- Batmon:
- Le temperature inferiori a 0 °C venivano interpretate come senza segno e riportate come grandi valori positivi.
- Il canale dell'evento di risveglio riportava valori errati. L'assegnazione corretta è
none (0),KL15 switch-on edge (1),U_batt below Always-OFF threshold (2),U_batt above Always-ON threshold (3),periodic timer wakeup in energy-saving mode (4),deprecated (5),wakeup after CAN-requested sleep (6). Le valutazioni di questo canale devono essere verificate rispetto all'assegnazione corretta.
- Mav:
- Veniva trasmesso un
Sendervuoto quando né l'impostazionesenderné il canale CustomerID fornivano un valore; il server MÁV rifiuta tali richieste. Il caso ora viene rilevato e segnalato comeNO_SENDER (-6). - Un valore vuoto sull'attributo condiviso CustomerID sovrascriveva un
senderconfigurato correttamente e lo manteneva sovrascritto finché non arrivava un valore non vuoto. Un guasto di optiCloud poteva quindi silenziare un veicolo la cui configurazione locale era valida. I valori vuoti ora vengono scartati con un avviso. - Il consumer HDOP non veniva rilasciato all'arresto del modulo. L'handle obsoleto sopravviveva a un ciclo di stop/start, dopo il quale il modulo non consumava più da quel canale.
- Veniva trasmesso un
- Dbc:
- Se un segnale multiplexato non aveva un multiplexer, i restanti segnali dello stesso messaggio venivano scartati in silenzio e i loro canali non comparivano mai.
- Diagnostics:
- I messaggi di errore senza una sorgente corrispondente non inondano più il log.
- Il codice di errore predefinito configurato non veniva valutato.
[2.10.1] - 2026-05-12
Aggiunto
- Supporto Tx93
- Diagnostics:
- Monitoraggio dei pattern
<string>
- Monitoraggio dei pattern
- Math:
rampLimit(), che limita la ripidità della curva di un segnale a un gradiente massimo.encoder(), che emette una sequenza di impulsi come farebbe un encoder per una data velocità di rotazione
- Fmproducer:
- Tipi di immagine
ANTIVALENTeANTIVALENT2come alias per un intero senza segno a 2 bit.
- Tipi di immagine
- Airpurifier:
- Un modulo personalizzato per il monitoraggio e il controllo di unità di filtraggio dell'aria
- Canbus:
- La nuova proprietà
keepEFFFlagserve a passare il campo di bit (EFF) all'ID del messaggio in fmproducer come firma per le modalità di indirizzamento a 29 bit. In questo modo i messaggi nell'intervallo 0..2047 possono essere distinti per tipo di indirizzamento (11 bit o 29 bit) e avere un proprio significato e una propria interpretazione specifici. Tutti gli indirizzi a 29 bit devono quindi essere traslati in fmproducer dell'offset .
- La nuova proprietà
Modificato
- Osfwriter
- riattivata la proprietà "compressed", il valore predefinito è false Deve essere impostata esplicitamente dal cliente nelle applicazioni RAIL / BATMON.
- Diagnostics:
- processo intensivo di code review e reimplementazione, documentazione
- Nessuna distinzione tra ErrorStream e monitoraggio dei valori
- Il tipo di monitoraggio è indipendente dal tipo di dati del canale monitorato
- Math:
- Catalog Version 12
- La macro
#versionconsente di limitare il catalogo di funzioni disponibile a una versione precedente.
- Rawplayback:
- processo di code review e documentazione
- fmDispatcher riceve il nome dell'istanza del modulo
- Fmproducer:
- proprietà "addressSpec": l'etichetta enum
ReversedForMsbNumericsè stata rinominata inEN61375_MVB - Lo schema
EN61375_MVBrifiuta tutte le configurazioni non conformi alla norma EN/IEC, ad es. Little-Endian o lo spostamento di un'immagine oltre il confine di un byte.
- proprietà "addressSpec": l'etichetta enum
- smartCORE:
- È stata introdotta una nuova classe API
ChannelConsumerper leggere i canali smartCORE in modo neutro rispetto al tipo. Ciò semplifica e accelera lo sviluppo dei plugin.
- È stata introdotta una nuova classe API
- Opticloud:
- L'elenco di esclusione viene sempre esteso con i pattern
"status.*"e"hidden.*", a meno che non siano specificati esplicitamente nel pattern di ricerca. - Suddivisione GPS per impostazione predefinita (se non elencato in "splitGpsLocationChannels"): rimuovere il suffisso ".Location" (se presente), aggiungere ".Latitude", ".Longitude", ".Altitude"
- L'elenco di esclusione viene sempre esteso con i pattern
- Batmon:
- Disattivazione interna della configurazione AlwaysOn/Off se inferiore a 15.0 V
Corretto
- Diagnostics:
- Malfunzionamento in funzione dei diversi tipi di dati
- Un timeout strettamente limitato per i canali snapshot e monitorati, in modo che i messaggi possano essere inviati tempestivamente
- Fmproducer:
- Corretto il calcolo errato dell'offset per le immagini a 2 e 4 bit nello schema di compatibilità ?MVB?, ad es. ANTIVALENT2 o ENUM4
- Canbus:
- Il bit (EFF) utilizzato come firma per le modalità di indirizzamento a 29 bit veniva sempre passato all'ID del messaggio in fmproducer. Di conseguenza i messaggi a 29 bit non venivano riconosciuti né elaborati. Ora, per impostazione predefinita, viene utilizzato solo l'indirizzo stesso, senza alcun flag di stato.
- Opticloud:
- Disattivato il trasferimento dei dati GPS come oggetto JSON (come utilizzato negli snapshot di allarme), non ancora supportato da opticloud,
- I canali GPS non vengono più rimossi in silenzio se non sono elencati in "splitGpsLocationChannels", risolvendo così il comportamento insolito causato da un array "splitGpsLocationChannels" vuoto
- Batmon:
- I limiti alwaysOn/Off non assegnati portavano a valori predefiniti errati e a una violazione permanente della regola di distanza.
- Invio dei comandi di controllo solo poco dopo la ricezione dei dati di misura, per evitare collisioni nella coda di elaborazione dei comandi di ATMEL
- Workaround per il firmware PIC (bug 2C) per i parametri di tempo e tensione.
- La seconda lettura del set di parametri veniva saltata a causa dei timestamp automatici sui dati dei parametri. Anche il comando get parameter ora viene ripetuto fino a 3 volte in caso di errore.
- Math:
bTest()non selezionava correttamente il bit designato.periodic(..., {mode: prbs})ignorava la notazionep##per selezionare il polinomio di feedbackplayback()corretta la gestione del secondo parametro come vettore- `playback
[2.10.0] - 2026-03-10
Aggiunto
- Supporto smartRAIL V2.2
- Baumer:
- Nuovo plugin per il collegamento dell'encoder ad alte prestazioni senza cuscinetti BPIK di Baumer per la misura sugli assili dei veicoli ferroviari
- Utilizza fmproducer per decodificare il contenuto dei telegrammi di dati
- Mav:
- Nuovo plugin per la segnalazione GPS alle Ferrovie dello Stato ungheresi Magyar Államvasutak
- Math: implementa il Catalog V11
- lo stato dei canali di ingresso viene segnalato a math ed è leggibile tramite isTimeout(), isEmpty(), isConnected(), isDefault()
- isTimeout() restituisce true se i dati del canale di ingresso sono più vecchi dell'intervallo di timeout specificato
- isEmpty() restituisce true se il canale di ingresso non ha ancora ricevuto alcun dato; può essere assegnato temporaneamente un valore predefinito
- isConnected() restituisce true se il canale di ingresso è collegato a smartCore, altrimenti viene assegnato un valore predefinito
- isDefault() restituisce true se una variabile di ingresso è forzata al valore predefinito
- isError() restituisce true se un valore/espressione/variabile calcolato si trova in uno stato di errore
- typeOf() restituisce l'indice del tipo di un valore
- value() preleva il valore più recente dal canale di ingresso ignorando il timestamp, interrompendo le dipendenze circolari
- time() restituisce l'ora corrente o il timestamp più recente del canale di ingresso
- propagazione delle proprietà delle sequenze ai metadati del canale
- sperimentale:
- playback() riproduce singoli canali da file OSF
- shiftT() regola la base dei tempi di un canale di ingresso di una piccola quantità di tempo
#propertynuovi attributitimeout=<val>edefault=<val>- timer() scrive un avviso nel log se nel crontab è presente una dichiarazione automatica inclusa
- getField() supporta la lettura di numeri complessi e di tipi di dati array/matrice [...]
- I valori Floatingpoint-NAN/INF venivano copiati nel contesto Math e potevano essere pubblicati nei canali smartCORE; ora vengono filtrati.
- GRPC
- aggiunte nuove chiamate: getRelaisCount, GetHasTerminationResistor (RS485)
- GPS
- aggiunto un nuovo segnale: TrackCourse
- Aggiunto il filtro datareduction per le coordinate GPS e rimosso un parametro di produzione inutilizzato
- Batmon
- Aggiunta la notifica dello stato per i messaggi PING/ATTN
- L'impostazione dei limiti di tensione viene sospesa se ciò causerebbe la perdita del BATMON alla tensione di esercizio corrente
- Chiamata RPC
requestShutdown({"sender": <str>})per mettere il Batmon in modalità sleep in modo controllato - La proprietà
"passive": <bool>esegue il plugin in modalità di sola lettura, per seguire il comando di spegnimento del BATMON - La proprietà
"auxPower": <bool>disattiva lo spegnimento da parte di smartCORE e del kernel se smartRAIL non è alimentato dal BATMON (debug) - La proprietà
"debug": <uint32>è una bitmask per controllare l'output di debug; il valore predefinito può cambiare con le versioni future / i miglioramenti della stabilità
- FunctionGenerator:
- aggiunto un controllo che verifica che i due parametri di timeout non siano entrambi 0, per evitare un carico CPU eccessivo
- Ruuvi:
- Aggiunto un parametro per impostare il valore reduceDelta per i filtri dei canali
- Aggiunto il filtro di canale predefinito deltareduce di 0.1
- OptiCloud:
- Aggiunta la proprietà
"transmitStatusChannels" : <bool>per attivare/disattivare i canali STATUS relativi al modulo optiCLoud - Proprietà:
"debugMask": <uint32>per controllare l'output di debug dettagliato. Il significato dei bit è disponibile su richiesta. - Proprietà:
"debugChannels": [<string>], array con pattern wildcard per abilitare il debug del trasferimento dati per i canali corrispondenti. sharedAttributes[]: proprietà:"debug": <bool>, abilita il debug del trasferimento dati- Su canali booleani, interi o float vengono aggiunti punti di supporto ausiliari espliciti, che vengono trasferiti via MQTT un certo periodo (da 0.5 a 1.0 s) prima del trasferimento di tutti i dati di telemetria modificati.
- Aggiunta la proprietà
- fmProducer:
- Proprietà
"byteOrder": <enum>, predefinita per tutti i canali, supporto per littleEndian, bigEndian e mappatura personalizzata dei byte - Proprietà
"addressSpec": <enum>, predefinita per tutti i canali, supporto per MVB, DBC e altri schemi di indirizzamento channels[]:- proprietà
"byteOrder": <enum>, sovrascrive il valore predefinito - proprietà
"addressSpec": <enum>, sovrascrive il valore predefinito - proprietà
"debug": <bool>, per ora: output delle informazioni di picking - proprietà
"noFilter": <bool>per disattivare qualsiasi filtraggio dell'ingresso -> aumento delle prestazioni per i flussi di dati ad alta velocità - I valori Floatingpoint-NAN/INF prelevati venivano prodotti nei canali OSF; ora vengono filtrati
- proprietà
- Proprietà
- osfWriter:
- I valori Floatingpoint-NAN venivano scritti nel file OSF; ora vengono filtrati.
Modificato
- Supporto per Debian versione 13 / Trixie
- valijson: aggiornamento alla versione 1.1.0
- fmProducer:
- Rielaborazione sostanziale della classe interna "SimpleBufferPicker", utilizzata per prelevare valori dall'immagine di processo, per flessibilità, prestazioni e stabilità (vedere anche la sezione Corretto più sotto)
- FastMessageDispatcher: rielaborazione sostanziale per prestazioni e stabilità
- Supporto per i tipi di immagine
"double"e"BCD" bitlength: 1impone<bool>come tipo di dati dell'immagine e del canale"imageType": "bool"impone"bitlength": 1come"float"(32) o"double"(64); anche"timedate48"(48) o"time64"(64) funzionano con la loro lunghezza implicita."dataType": <enum>è obsoleto per il 99% dei casi d'uso. Lasciare che sia il plugin a decidere in prima istanza.
- Batmon:
- Modifiche minori al codice nelle informazioni di notifica
- Nuovo canale di stato 'PluginState' per la nuova state machine (nuovi tag enum) che sostituisce 'OperatingMode'
- Tutti i valori misurati vengono ora pubblicati come float anziché double.
- I segnali di uscita AboutToShutdown, CriticalPowerStates, LowPowerState, RequestEnergySave hanno modificato leggermente il loro comportamento, risultando ora più precisi rispetto al loro nome.
- Controllo degli ID CAN non univoci e segnalazione
- TRDP
- passaggio alla libreria PcapPlusPlus
- GPS
- modificato il nome predefinito del canale
- rimosso il segnale di stato, non supportato dal chip GPS
- L'output GPS-Location è ora un canale persistente, che riparte dall'ultima posizione nota dopo il riavvio.
- osfWriter
- Ora scrive sempre in file osfz compressi, evitando ulteriori stream di lettura/scrittura sulla scheda SD per la compressione dei dati
- La proprietà
"compress": <bool>viene ignorata ma segnalata, se impostata su false.
- opticloud
- Rielaborazione sostanziale dell'implementazione per flessibilità, prestazioni e stabilità
- Se uno splitter non è specificato o non corrisponde, i dati GpsLocation vengono codificati per impostazione predefinita come sotto-oggetto JSON
"<chName>: {"lat": <numeric>, "lon": <numeric>, "alt": <numeric>}"anziché essere ignorati.
- Math
- Catalog Version e git-ID delle librerie vengono ora pubblicati in omVersions.ini.
Corretto
- alarmmanager:
- Errore di integrità nell'elenco interno dei messaggi di allarme, responsabile di messaggi fantasma ed elaborazione incompleta -> risolto, continuare a monitorare
- Mancato controllo della durata di vita dell'elenco interno dei messaggi di allarme -> risolto
- fmProducer:
- il picking dei tipi Timebase48, Time64, BiPolar, UniPolar è stato ottimizzato per le prestazioni ed è stata corretta una scalatura errata
- il picking di String/ByteArray non rispettava il bitoffset configurato.
- Math:
- Venivano prodotti campioni non forniti da libmathexpressions -> corretto
- Un canale di ingresso non collegato rimaneva orfano e non veniva gestito -> assegnato un valore predefinito costante
- Venivano creati canali di serie temporali con lunghezza zero -> corretto
- Il prelievo di un elemento con indice variabile da un vettore costante cVal[idx] o GetCol(cVal, idx) risultava a sua volta costante e non veniva mai aggiornato -> corretto.
- decodeTime(): restituiva un errore in caso di successo -> corretto.
- timer(): aveva 0 come predefinito per i filtri mese/giorno, ora 1
- timer(): la sintassi
a-b/nnon partiva daae non controllava prima l'intervallo - timer(): la sintassi
*/nnon partiva da 1 per mese/giorno - assegnazione
=: inoltra i flag const e linInterpolation - sample(): arriva solo fino a t_horizon, non INVAILD_TIME
- trigger(), threshold(), delay(), pulse(), prioEnc() inoltravano ingressi costanti pur avendo parametri temporali
- OPC/UA Server:
- correzione per il caso in cui non esistano valori di canale
- OPC/UA Client:
- correzione per la disconnessione dal server. L'elenco dei nodi viene ricreato e gli ID dei nodi vengono letti di nuovo dal server
- correzione per la riconfigurazione di smartcore; il messaggio di errore viene scritto una sola volta nel file di log
- Batmon:
- I dati storici della tensione della batteria venivano ricevuti con mod per mV, limitando l'intervallo a 0 .. 65,5V. Ora i bit superiori mancanti vengono recuperati in base alla tensione misurata e ad ipotizzate variazioni lente. Si tratta di un workaround per il firmware smartIO BATMON precedente alla 2.1
- I dati storici potevano avere timestamp nel futuro, ora vengono filtrati
- Il trasferimento dei set di parametri al BATMON non causa più la perdita del dispositivo a causa di un set di parametri internamente invalidato. Si tratta di un workaround per il firmware smartIO BATMON precedente alla 2.1.
- Gli snapshot di allarme ora contengono i nomi dei canali corretti, identici a quelli in smartCore
- Ruuvi:
- corretto un tipo di dati errato nello schema
- GPS:
- Perdita della base dei tempi durante la ricezione e la produzione di dati GPS.
- Venivano prodotti valori NAN nei canali HDOP, VDOP, PDOP -> ora filtrati.
- In qualche modo coordinate GPS nulle aggirano i filtri o venivano inserite in opticloud / osfwriter / math -> ora corretto.
- opticloud:
- Gestione di più corrispondenze nella selezione dei canali -> vince la prima, le altre vengono ignorate
- Gestione della sintassi wild-mask nei pattern dei nomi dei canali -> corretta
- Gestione dell'elenco di esclusione (automatico), se i canali di sistema o nascosti vengono selezionati esplicitamente nel pattern di ricerca.
[2.9.1] - 2025-05-23
Aggiunto
- supporto per owa5x
- Geofencing: aggiunta una funzione per specificare il giorno della settimana valido per un geofence
- Dostos2: aggiunto il nuovo shared attribute AbfangenHyterese
- Zedas: aggiunta l'importazione dei guasti alla creazione degli allarmi
Modificato
- AlarmManager: utilizzo del formato UUID V1 (basato su MAC + ora) anziché V4 per compatibilità con il database interno di optiCLOUD
- optiCLOUD: invio dell'uuid dell'allarme senza parentesi graffe
- optiCLOUD: aggiunto un parametro per scrivere nei file di log il payload MQTT degli allarmi
- Math: versione 9 del catalogo di funzioni
- Math: miglioramenti e implementazione delle seguenti funzioni: stopwatch(), sFind(), isScalar(), isVector(), isMatrix(), isTensor(), peakHold()
- Dostos2: modificato il testo di stato per la decisione sette
- Dostos2: rimosso il timescatter per lo starttime nel piano di spegnimento
- Dosto2: utilizzo di valori predefiniti se due shared attribute non vengono trovati nel data pool
- Dosto2: aumentato il numero della logica di turno
- SCPI: MODules:FACTories:DOC?: restituisce la descrizione da metadata.json e l'URL della documentazione
- modules: rimossi i file MD (documentazione e CHANGELOG)
- thirdparty/valijson: aggiornamento alla versione 1.0.5
Corretto
- AlarmManager: corretto un errore nella gestione dei messaggi di allarme LoseSight dopo la riconfigurazione di smartcore.
- optiCLOUD: rilascio degli allarmi terminati. Gestione degli stati Send e Idle
- Math: correzioni minori di bug nel core di math
- Geofencing: corretto un errore logico
- Colibri: corretto un bug nella lettura del timestamp in millisecondi.
- fmproducer, fmudp: corretti errori di sintassi JSON in metadata.json
- Zedas: corretta la comunicazione SOAP di allarmi e guasti
[2.9] - 2025-03-05
Aggiunto
- TRDP (PREVIEW) : NUOVO modulo (PREVIEW)
- Geofencing : aggiunge l'opzione per specificare un periodo di tempo valido per un geofence
- CAN-Bus : aggiunto il parametro di configurazione restart-ms
- System Infos : consente il nome di interfaccia wwan usb (dispositivi Quectel NCM)
- optiCLOUD : aggiunta l'opzione per tracciare ogni modifica degli shared attribute (per il debug)
- Generic MQTT : aggiunta l'opzione per sopprimere i valori null
- Generic MQTT : aggiunto il supporto per il token timestamp per generare un timestamp ISO 8601
- CAN-Bus : aggiunto il controllo che i GPIO siano abilitati nelle impostazioni CMake
- CAN-Bus : aggiunta l'opzione per registrare i frame rtr e di errore
Modificato
- Core : aggiornamento di valijson alla versione 1.0.4
- Dosto2 : ridenominazione del nome di uno shared attribute
- Dosto2 : aggiunti due nuovi shared attribute per la durata nello stato manuale
- Dosto2 : modifiche alla logica di turno, 1° e 2° scenario
- Math (PREVIEW) : aggiornamento di libmathexpressions all'ultima versione
- optiCLOUD : segnalazione di tutti gli stati di connessione rilevanti
- optiCLOUD : tracciamento degli shared attribute: contrassegno delle voci InitialValue
- Generic MQTT : ignora i messaggi retained
- CAN-Bus : parametri di configurazione rinominati e rimosso codice non necessario
- CAN-Bus : documentazione aggiornata
Corretto
- Core : rimosso uno spostamento di thread non necessario all'arresto del thread
- Core : SmartModuleThreaded: corretto un deadlock
- Core : rimosso uno spostamento di thread non necessario all'arresto del thread
- Core : corretta un'apparente perdita di memoria
- Core : spostamento dei moduli sul thread di distruzione prima della distruzione
- Geofencing : correzione nel controllo dei canali GPS durante il processo di inizializzazione
- Geofencing : rimosso il canale min satcount inutilizzato
- Geofencing : rimosso il canale satcount inutilizzato
- Math (PREVIEW) : ultima correzione per l'operazione #timeless in math
- System Infos : non sovrascrive più l'ICCID vecchio / esistente con n.a. se non viene trasmesso alcun iccid
- optiCLOUD : CORREZIONE: la posizione GPS non veniva tradotta nei dati snapshot
- optiCLOUD : rimosso l'avviso quando il messaggio degli shared attribute non contiene tutti i canali
- optiCLOUD : corretta una perdita di memoria legata al threading
- Generic MQTT : corretta una perdita di memoria legata al threading
- SSH Client (PREVIEW) : CORREZIONE: copia di un file con percorso di destinazione non valido sul server (ora vengono controllati isNull(), isValid() e [0] == '\0') MOD: messaggi di avviso estesi con maggiori informazioni su percorsi e file
[2.8.1] - 2024-09-12
Aggiunto
- microstrain (PREVIEW) : NUOVO modulo (PREVIEW)
- performancereport (PREVIEW) : NUOVO modulo (PREVIEW)
- fmproducer : migliorata la robustezza della configurazione consentendo, dove applicabile, la selezione dei valori enum senza distinzione tra maiuscole e minuscole
Corretto
- fmproducer : estrazione dei dati MVB di tipo BIPOLAR
- Remote (PREVIEW) : gestione dei wildcard nella specifica dei nomi dei canali
- Remote (PREVIEW) : riavvio dello streaming alle successive richieste ReadSamplesBegin
- Remote (PREVIEW) : cleanup del modulo
- System Infos : migliorata la documentazione MD
- Uptime : la stima dell'uptime ora utilizza il clock monotonico, risolvendo problemi legati agli adeguamenti di data e ora
[2.8] - 2024-08-05
Aggiunto
- batMON : NUOVI allarmi per gli stati di alimentazione bassa e critica e per il morsetto 15
- CSV Writer (PREVIEW) : NUOVO modulo (PREVIEW)
- Math (PREVIEW) : aggiunta la documentazione MD (PREVIEW)
- ModBus : NUOVO parametro di trasporto deviceTimeoutInMilliseconds
- OPC/UA Client (PREVIEW) : supporto per gli ID dei nodi anziché per il browsepath
- OPC/UA Client (PREVIEW) : parametro per l'ID del nodo del segnale
- OPC/UA Client (PREVIEW) : parametro alias per impostare il nome del canale
- optiCLOUD : NUOVA opzione di configurazione del canale useTrueTimestamps
- OSF Writer : NUOVO parametro di configurazione ignore per ignorare i canali da registrare
- OSF Writer : NUOVO supporto per i frame CAN-Bus
- Remote (PREVIEW) : NUOVO plugin per la comunicazione tra processi (PREVIEW)
- SMS Alarms (PREVIEW) : NUOVO modulo (PREVIEW)
- SSH Client (PREVIEW) : NUOVO modulo (PREVIEW)
- ZEDAS (PREVIEW) : NUOVO modulo (PREVIEW)
Modificato
- Math (PREVIEW) : utilizzo del nuovo meccanismo di logging
- OPC/UA Client (PREVIEW) : utilizzo del nuovo tipo di messaggio di log
Corretto
- Geofencing : aggiunta la documentazione MD
- GPS : filtraggio delle posizioni contenenti coordinate pari a zero
- Math (PREVIEW) : corretti problemi di consumo dei canali relativi ai campioni ritardati
- ModBus : consentiti ID slave fino a 255
- ModBus : migliorato il comportamento del logging
- ModBus : corretti problemi di timeout della risposta
- ModBus : la lettura dei blocchi di registri ora è raggruppata per slave
- OPC/UA Client (PREVIEW) : aggiunta la documentazione MD in tedesco
- System Infos : migliorato il comportamento del logging
- SCPI : NUOVO parametro di configurazione in omScpi.ini per limitare l'accesso remoto
Rimosso
- notifier : PLUGIN RIMOSSO
- MVB : RIMOSSO completamente il supporto D017M (TCN)
[2.7.1] - 2024-04-29
Aggiunto
- Generic MQTT : NUOVA sottoscrizione di dati stringa
- Generic MQTT : NUOVA opzione di configurazione del topic processOnChangeOnly
- Generic MQTT : NUOVA opzione di configurazione del canale di pubblicazione publishLastValue
- Generic MQTT : NUOVO payloadHint json-iterator
- Generic MQTT : NUOVE funzionalità per l'estrazione avanzata dei timestamp dai dati sottoscritti
Corretto
- HTTP : trasmissioni di dati corrotte
- SMS : gestione degli errori e formattazione dei valori di processo
- SMS : problemi di accodamento degli eventi
[2.7] - 2024-04-04
Aggiunto
- Ecowitt : NUOVO supporto per la selezione, nella simulazione, tra il display Ecowitt WS2910 con sensore WN67 e il gateway Ecowitt GW200A con sensore WH65
- Geofencing : controllo del timeout per i dati GPS
- Generic MQTT : NUOVO supporto per l'autenticazione tramite Azure SAS Token
- OPC/UA Client (PREVIEW) : NUOVO modulo (PREVIEW)
- System Infos : NUOVA stima delle statistiche del disco
Modificato
- RIMOSSO il supporto per Debian 11 (bullseye)
- batMON : funzionamento con i parametri di configurazione correnti della flash quando la configurazione JSON non è valida
- Ecowitt : NUOVI canali di dati di misura configurabili dall'utente
- Geofencing : logging ripulito
Corretto
- Diagnostics (PREVIEW) : corretti allarmi mancanti
- Diagnostics (PREVIEW) : migliorata la documentazione
- GPS : migliorata la documentazione
- Math (PREVIEW) : corretta la gestione del timeout degli ingressi
- Math (PREVIEW) : corretta la gestione della memorizzazione persistente
- ModBus : consentito l'indirizzo slave 247
- Generic MQTT : NUOVO client MQTT che risolve diversi problemi
- OPC/UA Client (PREVIEW) : corretti dati mancanti dopo la riconnessione
- OPC/UA Client (PREVIEW) : rimossi i tentativi di connessione dalla fase di inizializzazione del modulo
- OPC/UA Client (PREVIEW) : controllo della discrepanza del tipo di configurazione
- OPC/UA Client (PREVIEW) : problemi di distruzione del modulo e di memoria
- optiCLOUD : NUOVO client MQTT che risolve diversi problemi
- SCPI : risposta alla query di identificazione
[2.6] - 2023-12-19
Aggiunto
- CAN-Bus : modificata l'interfaccia dei parametri di configurazione, consentendo inoltre una selezione arbitraria
- Diagnostics (PREVIEW) : NUOVO modulo (PREVIEW)
- GPS : NUOVO parametro di configurazione speedLimit
- GPS : NUOVO parametro di configurazione forwardToPort che consente l'inoltro della porta GPSD
- GPS : NUOVO parametro di configurazione rebootIntervalMs per il riavvio in caso di connessione GPSD interrotta
- Math (PREVIEW) : NUOVO modulo (PREVIEW)
- Generic MQTT : NUOVO modulo (PREVIEW)
- OPC/UA Client (PREVIEW) : supporto per i numeri in virgola mobile
- OPC/UA Client (PREVIEW) : parametro di configurazione acceptAllCertificates
- optiCLOUD : NUOVO meccanismo di trasmissione dei messaggi di allarme (PREVIEW) quando il parametro di configurazione alarmsEnabled è impostato su true
- optiCLOUD : implementati i canali di stato
- optiCLOUD : trasmissione del numero di serie del dispositivo
- ruuvi : NUOVO modulo (PREVIEW)
- System Infos : NUOVI canali per il volume di traffico WWAN mensile e totale mensile
Modificato
- Accelerometer : aggiornata la configurazione del sensore per configurare la modalità ad alta risoluzione
- Accelerometer : aggiornato il valore di scala predefinito a 2g
- HTTP : aggiornamento all'ultima libreria cURL
- optiCLOUD : adeguate le categorie dei file di log
- optiCLOUD : messaggi di log arricchiti con l'indice dell'istanza del modulo
- optiCLOUD : aumentato a un secondo l'intervallo minimo del ciclo di polling
- System Infos : rilevamento dei dispositivi optiMEAS
- SCPI : integrato il modulo SCPI nell'applicazione smartCORE
- SCPI : rese sincrone le azioni start, stop e restart
Corretto
- Accelerometer : calcolo per gli assi
- Accelerometer : rimosso il logging di debug
- batMON : scrittura dei dati storici in un file temporaneo
- batMON : elaborazione solo dei dati storici registrati di recente
- DBC : corretta la selezione automatica del tipo di dati del segnale
- GPS : blocco nel meccanismo di riconnessione a GPSD
- GPS : nessun riavvio diretto in caso di connessione GPSD interrotta
- ModBus : saltata la configurazione RS485 su porta seriale generica
- ModBus : corretto un arresto anomalo nella configurazione RS485
- ModBus : corretto il calcolo dell'indirizzo LSB
- ModBus : corretto un arresto anomalo in caso di configurazione di canale non valida
- ModBus : consentiti bitOffset maggiori o uguali a 8
- ModBus : corretto lo schema di ritorno per l'interfaccia di chiamata probeChanel
- ModBus : consentite configurazioni multicanale basate su un singolo registro
- OPC/UA Client (PREVIEW) : gestione di nodi e timestamp
- OPC/UA Client (PREVIEW) : arresto anomalo alla distruzione del modulo
- optiCLOUD : corretti problemi di denominazione nella suddivisione dei canali di posizione GPS
- optiCLOUD : corretti problemi con le rappresentazioni NaN e Inf non valide nei payload JSON
- optiCLOUD : corretta la formattazione errata dei timestamp che portava a perdite di connessione
- optiCLOUD : corretta la conversione da valore a stringa
- optiCLOUD : rimosso il limite alla dimensione totale dei messaggi in coda
- playback : consentita la produzione di stringhe vuote
- smartIO MVB : corretto il filtraggio delle porte MVB relativo ai dati dei messaggi, agli eventi singoli e agli eventi di gruppo
- smartIO MVB : ignorati i timeout degli slave per eventi singoli, di gruppo e generali
- smartIO MVB : interfaccia verso il modulo dei messaggi MVB
- SCPI : segnalazione degli errori mancante in caso di riavvio non riuscito
[2.5] - 2023-06-29
Aggiunto
- Accelerometer : NUOVO modulo
- CAN-Bus : supporto per un massimo di quattro interfacce CAN-Bus
- Event Counter : NUOVO modulo
- GPS : NUOVO parametro di configurazione posFixModeStabilizationTimeMs
- HTTP : NUOVO modulo
- OPC/UA Client (PREVIEW) : NUOVO modulo (PREVIEW)
- OPC/UA Server (PREVIEW) : NUOVO modulo (PREVIEW)
- optiCLOUD : NUOVI parametri di configurazione per la temporizzazione del client MQTT e il numero di messaggi
- optiCLOUD : NUOVI esempi di configurazione tipici
- optiCLOUD : NUOVA opzione di configurazione trustStore
- OSF Writer : NUOVO supporto per i canali equidistanti
- playback : NUOVO modulo di simulazione
- rawplayback : NUOVO modulo di simulazione
- smartIO HP : NUOVO modulo
- SMS : NUOVO modulo
Modificato
- NUOVO filtro combinato di riduzione dei dati
- ModBus : riconnessione ModBus RTU in caso di errore di lettura
- optiCLOUD : richiesta per impostazione predefinita dei valori iniziali degli shared attribute
- optiCLOUD : creazione dei canali degli shared attribute in modo persistente, per consentire il supporto multi-cloud
- optiCLOUD : rinominato il parametro di configurazione pollingIntervalMs (garantendo la compatibilità)
- optiCLOUD : adeguato l'indirizzo broker predefinito
- optiCLOUD : consentita la semplice specifica del nome di canale in chiaro
Corretto
- migliorata la documentazione
- batMON : riproduzione dei parametri flash
- batMON : stato non operativo in caso di query non riuscita della versione del firmware
- fmproducer : arresti anomali al riavvio della misura
- GPS : problemi di arresto del modulo
- ModBus : migliorata la stabilità
- MVB : arresti anomali al riavvio della misura
- optiCLOUD : costruzione del client MQTT
- optiCLOUD : meccanismo di richiesta degli shared attribute
- optiCLOUD : messaggio di errore in caso di sottoscrizione non riuscita al topic RPC
- System Infos : lettura dell'utilizzo combinato della CPU per tutte le CPU
- System Infos : problemi di denominazione delle porte CAN
[2.4.1] - 2023-04-13
Aggiunto
- GPS : semplice controllo di plausibilità della velocità GPS al suolo
- Odometer : NUOVO parametro di offset
Modificato
- GPS : tentativi di riconnessione a GPSD e cicli di timeout di attesa di GPSD
- GPS : segnalazione della prima frase GPS ricevuta
- GPS : riavvio in caso di nuovo tentativo di riavvio di GPSD non riuscito
Corretto
- GPS : timeout di attesa di GPSD alla riconnessione
- Odometer : calcolo del checksum
- Odometer : problemi con la dimensione del buffer del canale
- Odometer : logging ripulito
[2.4] - 2023-03-16
Aggiunto
- CAN-Bus : funzione write dell'interfaccia di chiamata per l'invio di messaggi CAN
- DBC : NUOVO supporto per il multiplexing CAN
- Geofencing : documentazione MD
- Geofencing : supporto per i poligoni
- GPS : notifiche di posizione e di stato (in caso di connessione GPSD)
- Odometer : documentazione MD
- optiCLOUD : logging delle informazioni sulla libreria MQTT di build e di runtime
- optiCLOUD : parametro specifico per canale minimumSendIntervalMs
- optiCLOUD : canale per la stima del volume di traffico MQTT upstream
- optiCLOUD : logging della prima trasmissione di messaggi MQTT alla riconnessione e in caso di errore
- OSF Writer : NUOVO parametro di configurazione refreshIntervalMs per la riscrittura dei campioni basata sul consumer
- OSF Writer : canale per la stima del volume di dati OSF
- SCPI : aggiunta l'azione UPTIME:SET
- smartIO MVB : parametro di configurazione programFileString per includere programmi FPGA codificati in base64
- smartIO MVB : parametro di configurazione logEnabled
- smartIO MVB : logging del primo frame MVB in arrivo alla connessione e alla riconnessione
- smartIO MVB : smistamento dei codici funzione MVB MASTERSHIP (0x08), MVB GENERAL EVENT (0x09) e MVB DEVICE STATUS (0x0F)
- System Infos : canale per le informazioni sul carico della CPU per thread
- System Infos : canali per la stima del volume di traffico WWAN upstream e downstream
- Uptime : NUOVA funzione dell'interfaccia di chiamata setCounter (utilizzata ad es. tramite l'azione SCPI UPTIME:SET)
Modificato
- batMON : funzionamento con i parametri flash correnti se vengono specificati parametri di configurazione JSON non validi
- DBC : gestione combinata di channelPrefix e dei NUOVI parametri namespace
- fmproducer : gestione combinata di channelPrefix e dei NUOVI parametri namespace
- Geofencing : valore predefinito dell'id di posizione
- MVB : gestione combinata di channelPrefix e dei NUOVI parametri namespace
- Odometer : adeguati i nomi di canale predefiniti e i parametri di denominazione
- optiCLOUD : invio, quando necessario, di un ulteriore ultimo campione consumato prima della variazione del valore
- optiCLOUD : rinominato il parametro di configurazione reproductionTimeoutMs in refreshIntervalMs (garantendo la compatibilità)
- optiCLOUD : rimosso il parametro di configurazione brokerClientId
- optiCLOUD : il clientId predefinito viene integrato con l'indice dell'istanza quando vengono istanziati più moduli
- OSF Writer : scrittura, quando necessario, di un ulteriore campione attendibile prima della variazione del valore
- SCPI : scrittura di blocchi di dati OSF multi-campione all'interno della SCPI Live View (riducendo il volume di dati)
- smartIO MVB : NUOVA abilitazione del filtraggio di porte e messaggi MVB in modalità di dispatching
- smartIO MVB : disattivato tramite le opzioni di configurazione portFilterDisabled e messageFilterDisabled
- smartIO MVB : disattivato il log aggiuntivo specifico del modulo per frame ed errori MVB, rimuovendo i vecchi file di log
- Uptime : rinominato il parametro di configurazione counterChannel in outputChannel
- Uptime : rimosso il parametro di configurazione counterVariable (ora impostato sul nome di outputChannel)
Corretto
- CAN-Bus : rimosso il parametro di riproduzione non necessario dalle configurazioni demo
- DBC : migliorate le prestazioni
- Geofencing : controllo di un id di geofence valido
- Geofencing : logging ripulito
- GPS : meccanismo di riconnessione al server GPSD
- ModBus : aggiunto il parametro slaveId per la funzione dell'interfaccia di chiamata readWriteSequence
- Odometer : problemi con il separatore dello spazio dei nomi dei canali
- Odometer : problemi di distruzione del modulo
- Odometer : aggiunta la riduzione dei dati mancante
- optiCLOUD : corretti problemi di riconnessione e di rilevamento della perdita di connessione
- optiCLOUD : rielaborato e semplificato il funzionamento interno del meccanismo di consumo
- optiCLOUD : rielaborato e semplificato il funzionamento interno del meccanismo di trasmissione dei messaggi MQTT
- optiCLOUD : rimosso il parametro di configurazione non necessario samplesPerConsume
- optiCLOUD : corretto il comportamento di invio solo in caso di variazione
- optiCLOUD : rinominata la categoria di logging del client MQTT per facilitarne l'identificazione
- optiCLOUD : corretti problemi di verifica del server SSL quando l'RTC non era inizialmente sincronizzato
- optiCLOUD : corretti problemi di blocco nella verifica SSL
- optiCLOUD : migliorata la robustezza nella sottoscrizione degli shared attribute e dei topic delle richieste RPC
- OSF Writer : rielaborato e semplificato il funzionamento interno del meccanismo di consumo
- OSF Writer : corretta la scrittura di blocchi di dati OSF multi-campione vuoti
- SCPI : sblocco dell'interfaccia in caso di transizione della state machine non riuscita
- SCPI : corretta la query SYSTEM:VERSION:MINOR per le versioni con patch
- smartIO MVB : NUOVO comportamento di riavvio di smartIO in caso di MVB End-Of-Stream
- smartIO MVB : NUOVO parametro di configurazione eosRestartTimeoutMs (predefinito 60 s)
- smartIO MVB : NUOVO riavvio SOLO in caso di perdita della connessione
- smartIO MVB : migliorato il comportamento di logging della libreria smartIO MVB al riavvio
- smartIO MVB : corretta la suddivisione dei file di log nel meccanismo di logging specifico del modulo
- smartIO MVB : corretto il prefisso predefinito dei file di log nel meccanismo di logging specifico del modulo
- smartIO MVB : rimossa la restrizione artificiale sul numero di file di log nel meccanismo di logging specifico del modulo
- System Infos : corretti problemi di stabilità
- Uptime : rielaborato e semplificato il funzionamento interno del meccanismo di consumo
- Uptime : ora vengono utilizzati i timestamp del canale di trigger per i campioni del canale contatore
- Uptime : garantita la compatibilità con il parametro di configurazione counterChannel
[2.3.1] - 2022-12-10
Aggiunto
- batMON : NUOVO supporto per firmware che inviano frame CAN ACK ritardati
- batMON : NUOVO parametro di configurazione voltageDropDelayTime (per FW>=2 e PIC FW>=2)
- batMON : NUOVO canale di stato batMON
- batMON : NUOVA interfaccia di chiamata per il blocco dello spegnimento (utilizzata ad es. con il modulo SMS)
Modificato
- batMON : NUOVA procedura di spegnimento SYSTEM:POWER:HALT (per sistemi smartMINI e smartRAIL con DeviceManager >= 20.2)
- batMON : scrittura delle versioni del firmware nel file INI omVersions
- batMON : l'RTC di smartIO batMON viene impostato una sola volta (e opzionalmente a 0 ns dall'epoca quando non sincronizzato)
- batMON : integrato il meccanismo di estensione dello spegnimento nel nuovo meccanismo di blocco dello spegnimento
Corretto
- batMON : comportamento in caso di brevi cali di tensione
- batMON : utilizzo dei timestamp CAN per i canali di diagnostica
- batMON : la configurazione dell'ora di spegnimento ora è relativa all'offset interno
- batMON : inizializzazione dei canali di diagnostica
- batMON : formattazione dei dati dei frame CAN nell'output di diagnostica (ora codificati in HEX)
- batMON : rimossa l'inizializzazione ridondante dello spegnimento tramite comando CAN
[2.3] - 2022-08-11
Aggiunto
- batMON : canale di stato dell'errore di configurazione
- CAN-Bus : configurazione di esempio per scrivere nel file OSF array di byte CAN grezzi
- Ecowitt : NUOVO modulo
- Geofencing : canale che rappresenta l'oggetto JSON di configurazione del geofencing
- Geofencing : attributi di configurazione per scalatura e offset del raggio
- GPS : NUOVO meccanismo di migrazione trasparente dai moduli GPS seriali (detti anche legacy) al backend basato su gpsd
- ModBus : opzione enableInternalDataReduction (predefinito==false)
- ModBus : canale Workload
- OSF Writer : attributi tag e namespacesep nell'header OSF
- OSF Writer : spostamento dell'ultimo campione (detto anche antico) per i canali senza produzione, impostando il suo timestamp come attributo del canale
- SCPI : aggiunte le query di versione
- SCPI : aggiunte le azioni e le query TIMEOUT e TIMEOUT? per il timeout di esecuzione
- SCPI : aggiunto il meccanismo di migrazione per le configurazioni interne ed esterne specifiche del dispositivo
- SCPI : aggiunte le query CONFIG:GET? e CONFIG:SET per la configurazione persistente
- System Infos : NUOVO modulo per ottenere informazioni di sistema
- System Infos : aggiunta la temperatura della scheda
- System Infos : aggiunte le informazioni sul traffico della rete mobile
Modificato
- general : introdotti nomi di canale predefiniti standardizzati
- general : aggiunti file di documentazione MD in inglese
- general : aggiunti esempi di configurazione
- general : migliorati i messaggi di log
- batMON : NUOVO meccanismo di configurazione asincrono
- fmproducer : semplificata la configurazione dei canali utilizzando valori predefiniti
- fmproducer : riduzione dei dati basata su filter chain
- Geofencing : controllo della validità del segnale GPS
- Geofencing : adeguati i nomi di canale predefiniti e i parametri di denominazione
- MVB : semplificata la configurazione dei canali utilizzando valori predefiniti
- MVB : riduzione dei dati basata su filter chain
- optiCLOUD : timestamp della telemetria quando l'orologio è sincronizzato
- optiCLOUD : suddivisione automatica dei canali di posizione GPS
- optiCLOUD : specifica dei nomi di canale senza distinzione tra maiuscole e minuscole
- optiCLOUD : aggiunta l'opzione di configurazione ignore per escludere canali
- OSF Writer : implementata la configurazione senza parametri
- OSF Writer : specifica dei nomi di canale senza distinzione tra maiuscole e minuscole
- System Infos : riduzione dei dati basata su filter chain
- System Infos : utilizzo della comunicazione NTP UDP per verificare lo stato di sincronizzazione dell'orologio (solo Yocto 4)
- System Infos : migliorati gli esempi di configurazione nei file di documentazione MD
Corretto
- general : schemi di configurazione
- fmproducer : corretta l'estrazione dei dati LONG INT
- fmproducer : supporto per messaggi indipendenti dalla chiave
- Geofencing : aggiunta la riduzione dei dati mancante
- Geofencing : ripuliti i metadati
- Geofencing : corretti errori di ortografia
- Geofencing : rimossi tipi di viaggio non validi dall'elenco ipd
- Geofencing : logging ripulito
- GPS : semplificata la configurazione dei dispositivi GPS NMEA
- ModBus : miglioramenti all'Advanced ModBus Auto-Address
- MVB : corretta l'estrazione dei dati LONG INT
- optiCLOUD : rimossa la riduzione dei dati aggiuntiva, risolvendo la mancata trasmissione dei dati
- optiCLOUD : corretto un arresto anomalo con indirizzo broker non valido
- optiCLOUD : rimossa la coda interna dei messaggi
- optiCLOUD : corretto il meccanismo di consumo in caso di overflow
- OSF Writer : corretto il consumo dei campioni attendibili
- OSF Writer : corretta la gestione delle variabili di processo (PV)
- OSF Writer : corretto il meccanismo di consumo in caso di overflow
- OSF Writer : rinominato il vecchio parametro utc
- SCPI : corretto il comportamento di esecuzione delle istruzioni composte
- SCPI : corrette le transizioni di start, stop e restart (in particolare in caso di modifica esterna della configurazione)
- SCPI : corretto il comportamento di CONFIG:SET (in particolare riguardo agli overlay di configurazione)
- Uptime : spostato il backup del file persistente su una partizione esterna
- Uptime : migrati i canali contatore a serie temporali
Deprecato
- notifier : modulo DEPRECATO
- candbc : modulo DEPRECATO (utilizzare invece canbus e dbc)
[2.2] - 2022-03-25
Aggiunto
- Change log dei moduli
- NUOVO schema di versionamento: distinzione tra release STABLE, UNSTABLE ed EXPERIMENTAL
- batMON : filtro spike per tensione di alimentazione, corrente e temperatura del MOSFET
- SysInfos : NUOVO modulo System Info che fornisce informazioni specifiche del dispositivo
- Change log specifici dei moduli
- SCPI : query per il recupero della documentazione e del change log
Corretto
- SCPI : query IDN?
- SCPI : abilitato il riavvio nello stato Ready
- calc, CAN DBC, DBC, smartCALC : potenziali perdite di memoria alla distruzione del filtro di riduzione dei dati
- GPS : controllo di un'altitudine valida
- ModBus : arresto del modulo
- OSF writer : disabilitata la scrittura di campioni non validi
Modificato
- SCPI : disabilitata la validazione dello schema nell'azione CONFIG:SET
[2.1] - 2022-03-10
Aggiunto
- File di documentazione dei moduli (MD)
- OSF writer : inclusione dell'ultimo campione in ogni file OSF appena generato
- GPS : segnalazione degli errori del parser NMEA
Corretto
- smartmvb : impostazioni predefinite dei file di log
- GPS : meccanismi di configurazione e comunicazione
- GPS, optiCLOUD : precisione di lat/lon/alt nella trasmissione alla dashboard optiCLOUD
- uptime counter : corretto un arresto anomalo con canale di trigger inesistente
- optiCLOUD : trasmissione dati Byte Array
Modificato
- SCPI : Revisione dell'interfaccia SCPI (??? TODO: describe what is changed !!!)
- optiCLOUD : trasmissione dei dati non stringa secondo lo standard JSON
[0.174] - 2022-02-09
Modificato
- SCPI : Revisione dell'interfaccia SCPI
[0.172] - 2022-02-03
Modificato
- (classic) MVB : rimosso il driver duagon D017M
[0.171] - 2022-02-01
Aggiunto
- Lettura robusta del contenuto di configurazione e DBC (rimozione automatica di '\r')
Corretto:
- Correzioni di bug nel filtro di riduzione dei dati
[0.167] - 2022-01-31
Aggiunto
- candbc, dbc : riduzione dei dati avanzata
- smartcalc : nuovo modulo di calcolo
Modificato:
ModBus : rimozione dell'inizializzazione hardware specifica di BEKO Log
[0.165] - 2022-01-07
Aggiunto
- batMON : Data
- gpsd : nuovo modulo client gpsd
- Completamento del supporto Cmake
[0.164] - 2021-12-17
Aggiunto
- GPS/SCPI: nuove funzioni diagnostiche Location/Date e output di log
- Geofencing: parametri aggiuntivi
Modificato:
- Serialbus: cleanup
Corretto:
- Modulo smartIO MVB: correzioni di errori
- OSF_UDP_Streamer: correzione di bug
- Odometer: corretta la gestione dei parametri
[0.161] - 2021-12-15
Aggiunto
- Miglioramenti nell'output di log di smartCORE
- Messa a disposizione delle informazioni GPS
- nella sezione header dei file OSF
- tramite l'interfaccia SCPI
- tramite l'interfaccia di chiamata di smartCORE
Corretto:
- plugin opticloud:
- Correzione di bug relativa a credenziali vuote per la dashboard
[0.157] - 2021-12-14
Aggiunto
- Messa a disposizione del numero della scheda SIM / dell'intensità del segnale mobile
- plugin opticloud:
- Possibilità di utilizzare credenziali specifiche del dispositivo per la dashboard
- Utilizzo del numero di serie del dispositivo come credenziali predefinite per la dashboard
Modificato:
- plugin scpi:
- Rielaborazione
Corretto:
-
plugin opticloud:
- Meccanismo di riconnessione
- Verifica del server SSL
-
plugin smartmvb:
- Correzione di bug
[0.139] - 2021-10-21
Modificato:
- plugin smartmvb:
- Rielaborazione