Il nodo centrale collegato al pc esegue sempre lo stesso ciclo ogni 4 secondi e di questi 4 secondi, utilizza 1 secondo per inviare in BROADCAST informazioni riguardo il tempo passato dall'inizio dei 4 secondi e il valore dell'RTC. Il client quando si attiva preleva questi dati e corregge gli errori. Passato questo secondo invia i dati e aspetta un ack. Il problema è quel secondo, purtroppo è necessario. Però potrei ridurre gli errori se solo ci fosse un modo per contare i millisecondi dell'RTC.
Le informazioni le invio in broadcast perchè in questa maniera posso permettere la sincronizzazione di altri nodi che posso aggiungere durante il funzionamento della rete.
Quindi supponiamo che ci siano 10 nodi già sincronizzati. Quando uno si sveglia corregge l'offset, trasmette ed esegue altre operazioni per un intervallo di 4 secondi, poi dorme per un tempo pari al numero dei nodi della rete moltiplicato per l'intervallo utilizzato(4 secondi nel mio caso).
Comunque lasciamo stare cosa invio, ma più che altro è il problema della sincronizzazione.Che si mantiene, ma dovrebbe essere migliorato. Comunque appena lo finirò posterò anche il mio progetto, per ora c'è tanto da sistemare.