Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: oldheating gps motorhome heating
net/http-net6-script.inc
- Committer:
- andrewboyson
- Date:
- 2019-04-11
- Revision:
- 89:615fb951df69
- Parent:
- 88:2857259fc2b4
- Child:
- 96:eb2eb75bad0f
File content as of revision 89:615fb951df69:
"'use strict';\n"
"\n"
"var response = '';\n"
"var headers = '';\n"
"var arp = '';\n"
"var dns = '';\n"
"var hopLimit = '';\n"
"var managed = false;\n"
"var other = false;\n"
"var routerMac = '';\n"
"var prefixLength = '';\n"
"var prefixL = false;\n"
"var prefixA = false;\n"
"var prefixLimit = '';\n"
"var prefixPreferred = '';\n"
"var prefix = '';\n"
"var dnsLife = '';\n"
"var dnsIp = '';\n"
"var ndpLease = '';\n"
"var ndpElapsed = '';\n"
"var slaac = '';\n"
"var mtu = '';\n"
"\n"
"function hexToBit(text, iBit)\n"
"{\n"
" var value = parseInt(text, 16);\n"
" value >>= iBit;\n"
" return value & 1;\n"
"}\n"
"function makeIpWord(text)\n"
"{\n"
" var word = parseInt(text, 16);\n"
" if (word === 0) return '';\n"
" return word.toString(16);\n"
"}\n"
"function makeIp(text)\n"
"{\n"
" text = text.toLowerCase();\n"
" var result = '';\n"
" result += makeIpWord(text.substr( 0, 4));\n"
" result += ':';\n"
" result += makeIpWord(text.substr( 4, 4));\n"
" result += ':';\n"
" result += makeIpWord(text.substr( 8, 4));\n"
" result += ':';\n"
" result += makeIpWord(text.substr(12, 4));\n"
" result += ':';\n"
" result += makeIpWord(text.substr(16, 4));\n"
" result += ':';\n"
" result += makeIpWord(text.substr(20, 4));\n"
" result += ':';\n"
" result += makeIpWord(text.substr(24, 4));\n"
" result += ':';\n"
" result += makeIpWord(text.substr(28, 4));\n"
" return result;\n"
"}\n"
"function makeMac(text)\n"
"{\n"
" text = text.toLowerCase();\n"
" var result = '';\n"
" result += text.substr( 0, 2);\n"
" result += ':';\n"
" result += text.substr( 2, 2);\n"
" result += ':';\n"
" result += text.substr( 4, 2);\n"
" result += ':';\n"
" result += text.substr( 6, 2);\n"
" result += ':';\n"
" result += text.substr( 8, 2);\n"
" result += ':';\n"
" result += text.substr(10, 2);\n"
" return result;\n"
"}\n"
"function parseArpLine(line)\n"
"{\n"
" if (line.length == 0) return;\n"
" var minutes = parseInt(line.substr(0, 8), 16) / 1000 / 60;\n"
" arp += Math.floor(minutes).toString().padStart(4, ' ');\n"
" arp += ' ';\n"
" arp += makeIp(line.substr(8, 32)).padEnd(40, ' ');\n"
" arp += ' ';\n"
" arp += makeMac(line.substr(40, 12));\n"
" arp += '\\r\\n';\n"
"}\n"
"function parseDnsLine(line)\n"
"{\n"
" if (line.length == 0) return;\n"
" var minutes = parseInt(line.substr(0, 8), 16) / 1000 / 60;\n"
" dns += Math.floor(minutes).toString().padStart(4, ' ');\n"
" dns += ' ';\n"
" dns += makeIp(line.substr(8, 32)).padEnd(40, ' ');\n"
" dns += ' ';\n"
" dns += line.substr(40, 1);\n"
" dns += ' ';\n"
" dns += line.substr(41);\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"
" var lines = text.split('\\n');\n"
" \n"
" hopLimit = parseInt(lines[ 1], 16);\n"
" managed = hexToBit(lines[ 0], 0);\n"
" other = hexToBit(lines[ 0], 1);\n"
" routerMac = makeMac (lines[ 2], 16);\n"
" prefixLength = parseInt(lines[ 3], 16);\n"
" prefixL = hexToBit(lines[ 0], 2);\n"
" prefixA = hexToBit(lines[ 0], 3);\n"
" prefixLimit = parseInt(lines[ 4], 16);\n"
" prefixPreferred = parseInt(lines[ 5], 16);\n"
" prefix = makeIp (lines[ 6] );\n"
" dnsLife = parseInt(lines[ 7], 16);\n"
" dnsIp = makeIp (lines[ 8] );\n"
" ndpLease = parseInt(lines[ 9], 16);\n"
" ndpElapsed = parseInt(lines[10], 16);\n"
" slaac = makeIp (lines[11] );\n"
" mtu = parseInt(lines[12], 16);\n"
"}\n"
"function parseAjax()\n"
"{\n"
" var topics = response.split('\\f');\n"
" parseGenLines(topics[0]);\n"
" parseArpLines(topics[1]);\n"
" parseDnsLines(topics[2]);\n"
"}\n"
"function displayGeneral()\n"
"{\n"
" var elem;\n"
" \n"
" elem = document.getElementById('ajax-response' ); if (elem) elem.textContent = response;\n"
" elem = document.getElementById('ajax-headers' ); if (elem) elem.textContent = headers;\n"
" elem = document.getElementById('ajax-arp' ); if (elem) elem.textContent = arp;\n"
" elem = document.getElementById('ajax-dns' ); if (elem) elem.textContent = dns;\n"
" elem = document.getElementById('ajax-hop-limit' ); if (elem) elem.textContent = hopLimit;\n"
" elem = document.getElementById('ajax-managed' ); if (elem) elem.setAttribute('dir', managed ? 'rtl' : 'ltr');\n"
" elem = document.getElementById('ajax-other' ); if (elem) elem.setAttribute('dir', other ? 'rtl' : 'ltr');\n"
" elem = document.getElementById('ajax-router-mac' ); if (elem) elem.textContent = routerMac;\n"
" elem = document.getElementById('ajax-prefix-length' ); if (elem) elem.textContent = prefixLength;\n"
" elem = document.getElementById('ajax-prefix-l' ); if (elem) elem.setAttribute('dir', prefixL ? 'rtl' : 'ltr');\n"
" elem = document.getElementById('ajax-prefix-a' ); if (elem) elem.setAttribute('dir', prefixA ? 'rtl' : 'ltr');\n"
" elem = document.getElementById('ajax-prefix-limit' ); if (elem) elem.textContent = prefixLimit;\n"
" elem = document.getElementById('ajax-prefix-preferred'); if (elem) elem.textContent = prefixPreferred;\n"
" elem = document.getElementById('ajax-prefix' ); if (elem) elem.textContent = prefix;\n"
" elem = document.getElementById('ajax-dns-life' ); if (elem) elem.textContent = dnsLife;\n"
" elem = document.getElementById('ajax-dns-ip' ); if (elem) elem.textContent = dnsIp;\n"
" elem = document.getElementById('ajax-ndp-lease' ); if (elem) elem.textContent = ndpLease;\n"
" elem = document.getElementById('ajax-ndp-elapsed' ); if (elem) elem.textContent = ndpElapsed;\n"
" elem = document.getElementById('ajax-slaac' ); if (elem) elem.textContent = slaac;\n"
" elem = document.getElementById('ajax-mtu' ); if (elem) elem.textContent = mtu;\n"
"}\n"
"\n"
"var ajax;\n"
"function AjaxRequest(request) //Used by this script and from HTML page\n"
"{\n"
" ajax=new XMLHttpRequest();\n"
" ajax.onreadystatechange=handleAjaxResponse;\n"
" if (request) ajax.open('GET', '/net6-ajax' + '?' + request, true);\n"
" else ajax.open('GET', '/net6-ajax' , true);\n"
" ajax.send();\n"
"}\n"
"function requestAjax() //Used in this script\n"
"{\n"
" AjaxRequest('');\n"
"}\n"
"\n"
"function handleAjaxResponse()\n"
"{\n"
" if (ajax.readyState==4 && ajax.status==200)\n"
" {\n"
" response = ajax.responseText;\n"
" headers = ajax.getAllResponseHeaders();\n"
" parseAjax();\n"
" displayGeneral();\n"
" }\n"
"}\n"
"\n"
"function init()\n"
"{\n"
" setInterval(requestAjax, 10000);\n"
" requestAjax();\n"
"}\n"
"if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init ); // Loading hasn't finished yet\n"
"else init(); //`DOMContentLoaded` has already fired\n"
""