Releases: r-map/rmap
Stima
Stima
Principali modifiche:
- reinizializzazione SDcard in caso di errore (bug)
- risolti altri bug minori
- parzialmente riscritto i2c-th: ora la configurazione dei sensori si effettua non a tempo di compilazione ma tramite sensor-config; il tempo di elaborazione dei report non è definito a tempo di compilazione ma definito dai comandi impartiti dal master; risolti alcuni problemi tra cui #400
- rivista la gestione di digiteco_power in SensorDriver
- migliorata la gestione dei dati mancanti
- migliorata la libreria Wire per la gestione I2C; alcuni parametri di configurazione non erano presi in considerazione e sono stati migrati a platform.io
- aggiunto file di info con alcuni metadati: ora la lunghezza record dei dati salvati può essere variata senza creare problemi al lettore python
- aggiornato librerie: ArduinoJson, PubSubClient
Stima
principali modifiche:
-
ristrutturazione della libreria jsonrpc e aggiunta della gestione di
input e output a char* oltre che a Stream con conseguente
semplificazione e riduzione della RAM utilizzata.
test approfonditi per stabilizzare il funzionamento delle
RPC -
migrazione sistema di logging alla libreria ArduinoLog:
questo ha permesso di passare nel logging da dei buffer a
Stream (Print) con conseguente:- riduzione dell'uso della ram
- implementazione tramite libreria ArduinoStreamUtils della scrittura
dei log su SDcard
-
corretto funzionamento della sincronizzazione NTP
-
Migliorate le modalità di installazione bootloader
-
Risolto problema di funzionamento del modulo i2c-th
#365 dovuto alla riabilitazione degli interrupt
all'interno di una interrupt service routine. -
cambiata la logica del retry sulla lettura del sensore di temperatura in quanto
prima veniva effettuato il retry separatamente su funzione prepare e
get, cosa non ammessa ad esempio dal sensore HYT della IST in quanto
non ammette letture ripetute. -
E' stata inoltre rivisitata la libreria WIRE di comunicazione I2C;
corrette alcune temporizzazioni e rimosso il reset del bus in
condizioni di timeout commit e657e1e2dc3bdd39485af92e71aa99ca60c29919
delegando il reset del bus all'applicativo come già previsto.
Ora quindi retry e reset del bus dovrebbero funzionare correttamente. -
Ora è possibile utilizzare due o più sensori dello stesso tipo (ad
esempio due temperature a livelli differenti) #360
Questo lo si è ottenuto fornendo un pool di gestori di stati dei driver
omogenei (drivers che condividono le operazioni di setup e prepare su
uno stesso sensore). E' stato rimossa la configurazione- USE_SENSORS_COUNT
e introdotte: - SENSORS_MAX
- SENSORS_UNIQUE_MAX
Inoltre sono state leggermente modificate le API di SensorDriver
- USE_SENSORS_COUNT
-
Con il commit 97f88a9
e successivi dovrebbero essere gestite correttamente tre situazioni:- sensore guasto all'avvio della stazione
- sensore temporaneamente guasto durante il funzionamento della stazione
- sensore che si è guastato durante il funzionamento della stazione
-
realizzato tramite un contatore di errori per ogni sensore;
il contatore di errori viene resettato ogni volta che il sensore
riprende a comunicare correttamente. Se il numero degli errori supera
una soglia prefissata il sensore viene disabilitato.
Una volta disabilitato si tenterà di rifare il setup del sensore fino a
quando questo avrà successo e il sensore verrà riabilitato. -
Ora la stazione dovrebbe essere più resiliente a situazioni di
avaria di alcuni sensori. In alcune situazioni potrebbe quasi essere
permessa la sostituzione "a caldo" del sensore. -
Sostituita la libreria di gestione dell'LCD e riscritta completamente
la gestione dell'LCD riducendo la memoria utilizzata #364
ora inoltre con una serie di modifiche è ora possibile visualizzare su
LCD lo stato dell'ultima connessione GSM tramite i valori di RSSI e BER -
Aggiunto firmware per la corretta e standard formattazione delle SDcard
-
temporizzazione al boot per dar modo di attivare per ultimo il modulo
master -
corretta gestione dei valori mancanti in SensorDriver
-
dismissione del metodo get e utilizzo solo di getJson; vedi issue:
#372 -
cambio nella logica di visualizzazione dei dati su display per poter
gestire correttamente più sensori dello stesso tipo -
ottimizzato l'uso della memoria la cui allocazione
ora al boot è inferiore al 50% (per una stazione PTH) -
rimossi tutti dis/abilitazione interrupt all'interno di IRS
-
migliorato digitecoboot: aggiunto 10 tentativi di lettura del firmware da SDcard e ora
ogni blocco scritto viene verificato; se non corrisponde si parte per
un nuovo tentativo. Corretto posizionamento reset del watchdog -
Parametri del pluviometro (temporizzazione dell'impulso e pioggia per ogni impulso) sono ora parametri di configurazione
di i2c-rain e salvati in eeprom -
Sviluppato sensor_config che fino ad ora era un fake
-
gestione doppio indirizzo I2C delle differenti implementazioni hardware dell'LCD
-
modificato package ArduinoCore-avr con miglioramento dei parametri di configurazione ora settabili nella propria applicazione tramite #define e fatto tuning delle temporazioni corrette in stima.
-
implementato restart del bus I2C in i2c-rain con temporizzazione periodica configurabile e cambio del salvataggio energia in power down e uso del timer uno
issue chiuse: #385 #366 #370 #371 #354 #383 #384 #369 #380 #378 #379 #373 #377 #376 #375 #372 #359 #361 #360 #364 #365 #357 #363 #358 #362 #168 #340
Stima
vede i seguenti cambiamenti:
-
cambio versione utilizzata di MQTT dalla versione 3.1 a MQTT 3.1.1
https://www.hivemq.com/blog/6-facts-why-its-worth-upgrading-to-mqtt-3-1-1/ -
gestione alla connessione del parametro cleansession
- al riavvio la connessione viene ripulita con cleansession true
- alla seconda connessione si stabilisce una sessione persistente
- alle connessioni successive si riutilizza la sessione memorizzata sul broker
questo permette l'utilizzo delle sessioni permanenti sul broker e l'accodamento dei messaggi per la stazione durante il periodo un cui è disconnessa
-
gestione del parametro di configurazione relativo al topic MQTT per le RPC
-
gestione delle Remote Procedure Call over MQTT secondo le specifiche RMAP
-
è possibile impartire RPC che prolungano il tempo di connessione oltre al tempo per l'invio dei dati: questo permette di eseguire lunghe sessioni di json RPC che altrimenti non avrebbero modo di terminare per la connessione in modalità report che è di tipo "impulsivo"
-
gestione sia nel firmware stima che nel software di gestione da remoto della gestione delle RPC over MQTT con messaggi "accodati" per sessioni persistenti
-
aggiunte alcune RPC quali "recovery" e "reboot"
-
chiusura issue ottimizzazione memoria #350
Stima
Stima test release (platformio and arduinoJson v6)
vede i seguenti cambiamenti:
- rimozione framework arduino obsoleto per incompatibilità
- spostamento librerie nell'albero platformio
- migrazione dalla versione 5 alla versione 6 di arduinoJson
- aggiornamento della documentazione per platformio
Stima
Stima
rmap
Stima
stima sketchbook
1.0-978 scketchbook release 1.0-978