Dependencies:   net lpc1768 crypto clock web log

web-this/home/web-home-script.inc

Committer:
andrewboyson
Date:
2022-06-06
Revision:
100:93f5b732f985
Parent:
87:5052e316994a

File content as of revision 100:93f5b732f985:

"//Home script\n"
"'use strict';\n"
"\n"
"let rtc             = new Clock();\n"
"\n"
"let diffMs          = 0;\n"
"\n"
"let messagesOk      = false;\n"
"let fixMessagesOk   = false;\n"
"let timeMessagesOk  = false;\n"
"let ppsStable       = false;\n"
"let nmeaStable      = false;\n"
"\n"
"let rtcIsSet        = false;\n"
"let clockIsSet      = false;\n"
"let sourceIsOk      = false;\n"
"let rateIsLocked    = false;\n"
"let timeIsLocked    = false;\n"
"\n"
"const DISPLAY_LEAP_MS = 10000;\n"
"\n"
"function parse()\n"
"{\n"
"    let lines = Ajax.response.split('\\n');\n"
"    rtc.ms          = Ajax.date.getTime();\n"
"    rtc.ms         += parseInt(lines[0], 16);\n"
"    rtc.ms         -= Ajax.ms;\n"
"    diffMs          = rtc.ms + Ajax.ms - Date.now();\n"
"    messagesOk      = Ajax.hexToBit(lines[1], 11);\n"
"    fixMessagesOk   = Ajax.hexToBit(lines[1], 10);\n"
"    timeMessagesOk  = Ajax.hexToBit(lines[1],  9);\n"
"    ppsStable       = Ajax.hexToBit(lines[1],  8);\n"
"    nmeaStable      = Ajax.hexToBit(lines[1],  7);\n"
"    rtcIsSet        = Ajax.hexToBit(lines[1],  6);\n"
"    clockIsSet      = Ajax.hexToBit(lines[1],  5);\n"
"    sourceIsOk      = Ajax.hexToBit(lines[1],  4);\n"
"    rateIsLocked    = Ajax.hexToBit(lines[1],  3);\n"
"    timeIsLocked    = Ajax.hexToBit(lines[1],  2);\n"
"    rtc.months1970  = parseInt(lines[2], 16);\n"
"    rtc.leaps       = parseInt(lines[3], 16);\n"
"}\n"
"function display()\n"
"{\n"
"    let elem;\n"
"    elem = Ajax.getElementOrNull('ajax-msgs-ok'      ); if (elem) elem.setAttribute('dir', messagesOk      ? 'rtl' : 'ltr');\n"
"    elem = Ajax.getElementOrNull('ajax-fix-msgs-ok'  ); if (elem) elem.setAttribute('dir', fixMessagesOk   ? 'rtl' : 'ltr');\n"
"    elem = Ajax.getElementOrNull('ajax-time-msgs-ok' ); if (elem) elem.setAttribute('dir', timeMessagesOk  ? 'rtl' : 'ltr');\n"
"    elem = Ajax.getElementOrNull('ajax-pps-stable'   ); if (elem) elem.setAttribute('dir', ppsStable       ? 'rtl' : 'ltr');\n"
"    elem = Ajax.getElementOrNull('ajax-nmea-stable'  ); if (elem) elem.setAttribute('dir', nmeaStable      ? 'rtl' : 'ltr');\n"
"    \n"
"    elem = Ajax.getElementOrNull('ajax-rtc-set'      ); if (elem) elem.setAttribute('dir', rtcIsSet        ? 'rtl' : 'ltr');\n"
"    elem = Ajax.getElementOrNull('ajax-clock-set'    ); if (elem) elem.setAttribute('dir', clockIsSet      ? 'rtl' : 'ltr');\n"
"    elem = Ajax.getElementOrNull('ajax-source-ok'    ); if (elem) elem.setAttribute('dir', sourceIsOk      ? 'rtl' : 'ltr');\n"
"    elem = Ajax.getElementOrNull('ajax-rate-locked'  ); if (elem) elem.setAttribute('dir', rateIsLocked    ? 'rtl' : 'ltr');\n"
"    elem = Ajax.getElementOrNull('ajax-time-locked'  ); if (elem) elem.setAttribute('dir', timeIsLocked    ? 'rtl' : 'ltr');\n"
"    \n"
"    elem = Ajax.getElementOrNull('ajax-date-diff'    ); if (elem) elem.textContent = diffMs;\n"
"    \n"
"    elem = Ajax.getElementOrNull('ajax-leap-year'    ); if (elem) elem.value = rtc.months1970 ? rtc.leapYear  : '';\n"
"    elem = Ajax.getElementOrNull('ajax-leap-month'   ); if (elem) elem.value = rtc.months1970 ? rtc.leapMonth : '';\n"
"    elem = Ajax.getElementOrNull('ajax-leap-count'   ); if (elem) elem.value = rtc.leaps;\n"
"}\n"
"\n"
"function handleTick() //This typically called every 100ms\n"
"{\n"
"    rtc.adjustLeap (Ajax.ms);\n"
"    rtc.displayTime(Ajax.ms);\n"
"}\n"
"\n"
"Ajax.server     = '/home-ajax';\n"
"Ajax.onResponse = function() { parse(); display(); };\n"
"Ajax.onTick     = handleTick;\n"
"Ajax.init();\n"
"\n"
""