Self-test: comparer RTC vs heure navigateur au lieu de system time
Coherent avec le changement fait sur la page Admin Clock. Le self-test affiche l'ecart en minutes/secondes si desync. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -246,7 +246,7 @@ async function selfTestSequence() {
|
||||
addSelfTestLog(`Device ID: ${selfTestReport.deviceId}`);
|
||||
addSelfTestLog(`Device Name: ${selfTestReport.deviceName}`);
|
||||
addSelfTestLog(`Modem Version: ${selfTestReport.modemVersion}`);
|
||||
addSelfTestLog(`System Time (RTC): ${selfTestReport.systemTime}`);
|
||||
addSelfTestLog(`RTC Time: ${selfTestReport.systemTime}`);
|
||||
addSelfTestLog(`Browser Time: ${new Date().toLocaleString()}`);
|
||||
addSelfTestLog(`GPS: ${selfTestReport.latitude}, ${selfTestReport.longitude}`);
|
||||
addSelfTestLog('────────────────────────────────────────────────────────');
|
||||
@@ -449,16 +449,19 @@ async function selfTestSequence() {
|
||||
updateTestStatus(sensor.id, 'Failed', 'RTC module not connected', 'bg-danger');
|
||||
testsFailed++;
|
||||
} else if (rtcResult.rtc_module_time) {
|
||||
const timeDiff = rtcResult.time_difference_seconds;
|
||||
if (typeof timeDiff === 'number' && Math.abs(timeDiff) <= 60) {
|
||||
updateTestStatus(sensor.id, 'Passed', `${rtcResult.rtc_module_time} (sync OK, diff: ${timeDiff}s)`, 'bg-success');
|
||||
// Compare RTC with browser time (more reliable than system time)
|
||||
const rtcDate = new Date(rtcResult.rtc_module_time + ' UTC');
|
||||
const browserDate = new Date();
|
||||
const timeDiff = Math.abs(Math.round((browserDate - rtcDate) / 1000));
|
||||
|
||||
if (timeDiff <= 60) {
|
||||
updateTestStatus(sensor.id, 'Passed', `${rtcResult.rtc_module_time} (sync OK vs navigateur, ecart: ${timeDiff}s)`, 'bg-success');
|
||||
testsPassed++;
|
||||
} else if (typeof timeDiff === 'number') {
|
||||
updateTestStatus(sensor.id, 'Warning', `${rtcResult.rtc_module_time} (out of sync: ${timeDiff}s)`, 'bg-warning');
|
||||
testsFailed++;
|
||||
} else {
|
||||
updateTestStatus(sensor.id, 'Passed', `${rtcResult.rtc_module_time}`, 'bg-success');
|
||||
testsPassed++;
|
||||
const minutes = Math.floor(timeDiff / 60);
|
||||
const label = minutes > 0 ? `${minutes}min ${timeDiff % 60}s` : `${timeDiff}s`;
|
||||
updateTestStatus(sensor.id, 'Warning', `${rtcResult.rtc_module_time} (desync vs navigateur: ${label})`, 'bg-warning');
|
||||
testsFailed++;
|
||||
}
|
||||
} else {
|
||||
updateTestStatus(sensor.id, 'Warning', 'Unexpected response', 'bg-warning');
|
||||
|
||||
Reference in New Issue
Block a user