-
Notifications
You must be signed in to change notification settings - Fork 4
Possibile generazione di segnali SRC incoerenti #5
Description
Al momento è possibile generare segnali SRC con i bit riguardanti il cambio dell'ora errati. I cambi dall'ora legale a quella solare e viceversa avvengono l'ultima domenica di marzo e l'ultima domenica di ottobre. Una soluzione a questo problema potrebbe essere implementare un controllo che verifichi che il nome del giorno della settimana corrisponda con il tipo di preavviso scelto:
- Nessun cambio previsto nei prossimi 7 giorni: nessun controllo da fare.
- Cambio entro 6 giorni: il giorno selezionato dev'essere "Lun."
- Cambio entro 5 giorni: il giorno selezionato dev'essere "Mar."
- Cambio entro 4 giorni: il giorno selezionato dev'essere "Mer."
- Cambio entro 3 giorni: il giorno selezionato dev'essere "Gio."
- Cambio entro 2 giorni: il giorno selezionato dev'essere "Ven."
- Cambio entro un giorno: il giorno selezionato dev'essere "Sab."
- Cambio oggi alle 02:00 oppure 03:00: il giorno selezionato dev'essere "Dom."
Se il giorno non corrispondesse si potrebbe visualizzare un errore che comunica all'utente la scelta errata del giorno della settimana / del preavviso del cambio dell'ora.
È inoltre attualmente possibile generare anche segnali SRC con i bit riguardanti il secondo intercalare errati. Secondo la convenzione le modifiche (inserimento oppure sottrazione di un secondo intercalare) devono essere applicate il 31 dicembre o il 30 giugno, alla mezzanotte UTC del giorno stabilito. Una soluzione semplice potrebbe sembrare effettuare un semplice controllo sul mese il quale dev'essere giugno oppure dicembre, ma è importante considerare anche il fatto che nei paesi la cui ora è in anticipo su quella del fuso orario principale (come accade in Italia) il secondo intercalare viene a cadere nel giorno successivo (1º gennaio o 1º luglio), quindi è necessario prevedere anche un'eccezione alla regola che permetta di impostare il preavviso anche in questi casi. Il preavviso di aggiunta / sottrazione di un secondo intercalare quindi dovrebbe poter essere impostato solo:
- Se il mese è marzo oppure dicembre.
- Se il mese è gennaio, il giorno è 1 e l'ora è minore di 1 (quindi fino alle 00:59).
- Se il mese è luglio, il giorno è 1 e l'ora è minore di 2 (quindi fino alle 01:59).
Se nessuna di queste condizioni venisse rispettata si potrebbe visualizzare un errore che comunica all'utente la scelta errata del preavviso riguardante il secondo intercalare.