Andrew Boyson / motorhome

Dependencies:   net lpc1768 crypto clock web fram log

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers web-battery-script.inc Source File

web-battery-script.inc

00001 "//Battery script\n"
00002 "'use strict';\n"
00003 "\n"
00004 "let batteryCountedCapacity     = '';\n"
00005 "let batteryCountedError        = '';\n"
00006 "let batteryCurrentMa           = '';\n"
00007 "let batteryCapacitySetpoint    = '';\n"
00008 "let batteryOutputState         = '';\n"
00009 "let batteryChargeEnabled       = false;\n"
00010 "let batteryDischargeEnabled    = false;\n"
00011 "let batteryTemperatureTenths   = '';\n"
00012 "let batteryTemperatureSetPoint = '';\n"
00013 "let batteryHeaterPercent       = '';\n"
00014 "let batteryVoltageMv           = '';\n"
00015 "let batteryMeasuredPercent     = '';\n"
00016 "let batteryMeasuredError       = '';\n"
00017 "let batteryMeasuredAutoUpdate  = false;\n"
00018 "\n"
00019 "function parse()\n"
00020 "{\n"
00021 "    let lines = Ajax.response.split('\\n');\n"
00022 "    batteryCountedCapacity     = Ajax.hexToSignedInt32(lines[ 0]);\n"
00023 "    batteryCountedError        = Ajax.hexToSignedInt8 (lines[ 1]);\n"
00024 "    batteryCurrentMa           = Ajax.hexToSignedInt32(lines[ 2]);\n"
00025 "    batteryCapacitySetpoint    = Ajax.hexToSignedInt8 (lines[ 3]);\n"
00026 "    batteryOutputState         =                       lines[ 4];\n"
00027 "    batteryChargeEnabled       = Ajax.hexToBit        (lines[ 5], 0);\n"
00028 "    batteryDischargeEnabled    = Ajax.hexToBit        (lines[ 5], 1);\n"
00029 "    batteryTemperatureTenths   = Ajax.hexToSignedInt16(lines[ 6]);\n"
00030 "    batteryTemperatureSetPoint = Ajax.hexToSignedInt16(lines[ 7]);\n"
00031 "    batteryHeaterPercent       = Ajax.hexToSignedInt8 (lines[ 8]);\n"
00032 "    batteryVoltageMv           = Ajax.hexToSignedInt16(lines[ 9]);\n"
00033 "    batteryMeasuredPercent     = Ajax.hexToSignedInt8 (lines[10]);\n"
00034 "    batteryMeasuredError       = Ajax.hexToSignedInt8 (lines[11]);\n"
00035 "    batteryMeasuredAutoUpdate  = Ajax.hexToSignedInt8 (lines[12]);\n"
00036 "}\n"
00037 "function display()\n"
00038 "{\n"
00039 "    let elem;\n"
00040 "    elem = Ajax.getElementOrNull('txt-battery-counted-capacity-amp-seconds' ); if (elem) elem.textContent = batteryCountedCapacity;\n"
00041 "    elem = Ajax.getElementOrNull('val-battery-counted-error'                ); if (elem) elem.value       = batteryCountedError;\n"
00042 "    elem = Ajax.getElementOrNull('txt-battery-counted-capacity-amp-hours'   ); if (elem) elem.textContent = Math.round(batteryCountedCapacity/3600);\n"
00043 "    elem = Ajax.getElementOrNull('txt-battery-counted-capacity-percent'     ); if (elem) elem.textContent = Math.round(batteryCountedCapacity/36/280);\n"
00044 "    elem = Ajax.getElementOrNull('val-battery-counted-capacity-percent'     ); if (elem) elem.value       = Math.round(batteryCountedCapacity/36/280);\n"
00045 "    elem = Ajax.getElementOrNull('txt-battery-current-ma'                   ); if (elem) elem.textContent = batteryCurrentMa;\n"
00046 "    elem = Ajax.getElementOrNull('val-battery-capacity-setpoint-percent'    ); if (elem) elem.value       = batteryCapacitySetpoint;\n"
00047 "    elem = Ajax.getElementOrNull('txt-battery-output-state'                 ); if (elem) elem.textContent = batteryOutputState;\n"
00048 "    elem = Ajax.getElementOrNull('att-battery-charge-enabled'               ); if (elem) elem.setAttribute('dir', batteryChargeEnabled    ? 'rtl' : 'ltr');\n"
00049 "    elem = Ajax.getElementOrNull('att-battery-discharge-enabled'            ); if (elem) elem.setAttribute('dir', batteryDischargeEnabled ? 'rtl' : 'ltr');\n"
00050 "    elem = Ajax.getElementOrNull('txt-battery-temperature-tenths'           ); if (elem) elem.textContent = (batteryTemperatureTenths/10).toFixed(1);\n"
00051 "    elem = Ajax.getElementOrNull('val-battery-temperature-setpoint'         ); if (elem) elem.value       = (batteryTemperatureSetPoint/10).toFixed(1);\n"
00052 "    elem = Ajax.getElementOrNull('txt-battery-heater-output-percent'        ); if (elem) elem.textContent = batteryHeaterPercent;\n"
00053 "    elem = Ajax.getElementOrNull('txt-battery-voltage-mv'                   ); if (elem) elem.textContent = batteryVoltageMv;\n"
00054 "    elem = Ajax.getElementOrNull('txt-battery-measured-percent'             ); if (elem) elem.textContent = batteryMeasuredPercent;\n"
00055 "    elem = Ajax.getElementOrNull('txt-battery-measured-error'               ); if (elem) elem.textContent = batteryMeasuredError;\n"
00056 "    elem = Ajax.getElementOrNull('att-battery-auto-update'                  ); if (elem) elem.setAttribute('dir', batteryMeasuredAutoUpdate ? 'rtl' : 'ltr');\n"
00057 "}\n"
00058 "\n"
00059 "Ajax.server     = '/battery-ajax';\n"
00060 "Ajax.onResponse = function() { parse(); display(); };\n"
00061 "Ajax.init();\n"
00062 ""