Realizzo un sistema di casa intelligente utilizzando nodeMCU e ho bisogno di memorizzare e recuperare i dati dal modulo. Ho usato la seguente funzione.Rendere persistenti le variabili dopo un riavvio su NodeMCU
function save_settings(name,value)
file.remove(name)
file.open(name,"w+")
file.writeline(value)
file.close()
end
Funziona, ma è lento e il NodeMCU si blocca se attivare la funzione di cui sopra rapidamente ... A volte richiede un formato FS per essere in grado di utilizzare di nuovo.
Quindi la mia domanda è: esiste un altro modo per rendere persistenti le variabili tra riavvii?
ogni scrittura probabilmente richiede un blocco di flash da cancellare e riscrivere, che è intrinsecamente lento. Non ho idea del motivo per cui si bloccherebbe, ma potrebbe traboccare il buffer di scrittura o tentare di cancellare/scrivere una pagina mentre la stessa operazione sta già accadendo. In entrambi i casi, la soluzione potrebbe essere quella di memorizzare i dati in un array da qualche parte e scrivere meno spesso. Se ciò non è sufficiente, potrebbe essere necessario scrivere su una EEPROM SPI o sulla scheda SD :( – user1816847
@ user1816847 Ithx per la risposta, ma non è più un'opzione perché ho già realizzato un pcb cuatom per il progetto e attualmente lo utilizzo senza la funzione di salvataggio ... Tutto quello che posso fare ora è un po 'di casa implementare una funzione di salvataggio del carico solo attraverso il software .. –
Ti consiglio di rimuovere 'file.remove (nome)' in quanto è ridondante con 'file.open' in questo caso a causa della modalità 'w +' Questo può anche semplificare il lavoro che le FS devono fare dato che non ci sono cambiamenti nella tabella dei file. –