Andrew Boyson / web

Dependents:   oldheating gps motorhome heating

Revision:
110:8ab752842d25
Parent:
103:91194cc19bbb
Child:
136:be1d42268b5d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/base/net/web-net4-script.inc	Tue Apr 30 12:45:08 2019 +0000
@@ -0,0 +1,102 @@
+"//Net4 script\n"
+"'use strict';\n"
+"\n"
+"let localIp     = '';\n"
+"let domainName  = '';\n"
+"let hostName    = '';\n"
+"let ntpIp       = '';\n"
+"let dnsIp       = '';\n"
+"let dhcpIp      = '';\n"
+"let routerIp    = '';\n"
+"let subnetMask  = '';\n"
+"let broadcastIp = '';\n"
+"let leaseTime   = '';\n"
+"let renewalT1   = '';\n"
+"let renewalt2   = '';\n"
+"let elapsed     = '';\n"
+"let arp         = '';\n"
+"let dns         = '';\n"
+"\n"
+"function parseArpLine(line)\n"
+"{\n"
+"    if (line.length == 0) return;\n"
+"    let minutes  = parseInt(line.substr(0, 8), 16) / 1000 / 60;\n"
+"    arp += Math.floor(minutes).toString().padStart(4, ' ');\n"
+"    arp += ' ';\n"
+"    arp += Net.makeIp4(line.substr(8, 8)).padEnd(15, ' ');\n"
+"    arp += ' ';\n"
+"    arp += Net.makeMac(line.substr(16, 12));\n"
+"    arp += '\\r\\n';\n"
+"}\n"
+"function parseDnsLine(line)\n"
+"{\n"
+"    if (line.length == 0) return;\n"
+"    let minutes  = parseInt(line.substr(0, 8), 16) / 1000 / 60;\n"
+"    dns += Math.floor(minutes).toString().padStart(4, ' ');\n"
+"    dns += ' ';\n"
+"    dns += Net.makeIp4(line.substr(8, 8)).padEnd(15, ' ');\n"
+"    dns += ' ';\n"
+"    dns += line.substr(16, 1);\n"
+"    dns += ' ';\n"
+"    dns += line.substr(17);\n"
+"    dns += '\\r\\n';\n"
+"}\n"
+"function parseArpLines(text)\n"
+"{\n"
+"    arp = '';\n"
+"    text.split('\\n').forEach(parseArpLine);\n"
+"}\n"
+"function parseDnsLines(text)\n"
+"{\n"
+"    dns = '';\n"
+"    text.split('\\n').forEach(parseDnsLine);\n"
+"}\n"
+"function parseGenLines(text)\n"
+"{\n"
+"    let lines = text.split('\\n');\n"
+"    localIp     = Net.makeIp4(lines[ 0])    ;\n"
+"    domainName  =             lines[ 1]     ;\n"
+"    hostName    =             lines[ 2]     ;\n"
+"    ntpIp       = Net.makeIp4(lines[ 3])    ;\n"
+"    dnsIp       = Net.makeIp4(lines[ 4])    ;\n"
+"    dhcpIp      = Net.makeIp4(lines[ 5])    ;\n"
+"    routerIp    = Net.makeIp4(lines[ 6])    ;\n"
+"    subnetMask  = Net.makeIp4(lines[ 7])    ;\n"
+"    broadcastIp = Net.makeIp4(lines[ 8])    ;\n"
+"    leaseTime   =    parseInt(lines[ 9], 16);\n"
+"    renewalT1   =    parseInt(lines[10], 16);\n"
+"    renewalt2   =    parseInt(lines[11], 16);\n"
+"    elapsed     =    parseInt(lines[12], 16);\n"
+"}\n"
+"function parse()\n"
+"{\n"
+"    let topics = Ajax.response.split('\\f');\n"
+"    parseGenLines(topics[0]);\n"
+"    parseArpLines(topics[1]);\n"
+"    parseDnsLines(topics[2]);\n"
+"}\n"
+"function display()\n"
+"{\n"
+"    let elem;\n"
+"\n"
+"    elem = Ajax.getElementOrNull('ajax-local-ip'    ); if (elem) elem.textContent = localIp;\n"
+"    elem = Ajax.getElementOrNull('ajax-domain-name' ); if (elem) elem.textContent = domainName;\n"
+"    elem = Ajax.getElementOrNull('ajax-host-name'   ); if (elem) elem.textContent = hostName;\n"
+"    elem = Ajax.getElementOrNull('ajax-ntp-ip'      ); if (elem) elem.textContent = ntpIp;\n"
+"    elem = Ajax.getElementOrNull('ajax-dns-ip'      ); if (elem) elem.textContent = dnsIp;\n"
+"    elem = Ajax.getElementOrNull('ajax-dhcp-ip'     ); if (elem) elem.textContent = dhcpIp;\n"
+"    elem = Ajax.getElementOrNull('ajax-router-ip'   ); if (elem) elem.textContent = routerIp;\n"
+"    elem = Ajax.getElementOrNull('ajax-subnet-mask' ); if (elem) elem.textContent = subnetMask;\n"
+"    elem = Ajax.getElementOrNull('ajax-broadcast-ip'); if (elem) elem.textContent = broadcastIp;\n"
+"    elem = Ajax.getElementOrNull('ajax-lease-time'  ); if (elem) elem.textContent = leaseTime;\n"
+"    elem = Ajax.getElementOrNull('ajax-renewal-t1'  ); if (elem) elem.textContent = renewalT1;\n"
+"    elem = Ajax.getElementOrNull('ajax-renewal-t2'  ); if (elem) elem.textContent = renewalt2;\n"
+"    elem = Ajax.getElementOrNull('ajax-elapsed'     ); if (elem) elem.textContent = elapsed;\n"
+"    elem = Ajax.getElementOrNull('ajax-arp'         ); if (elem) elem.textContent = arp;\n"
+"    elem = Ajax.getElementOrNull('ajax-dns'         ); if (elem) elem.textContent = dns;\n"
+"}\n"
+"\n"
+"Ajax.server     = '/net4-ajax';\n"
+"Ajax.onResponse = function() { parse(); display(); };\n"
+"Ajax.init();\n"
+""
\ No newline at end of file