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
Diff: base/net/web-net6-script.js
- Revision:
- 110:8ab752842d25
- Parent:
- 103:91194cc19bbb
- Child:
- 136:be1d42268b5d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/base/net/web-net6-script.js Tue Apr 30 12:45:08 2019 +0000
@@ -0,0 +1,111 @@
+//Net6 script
+'use strict';
+
+let arp = '';
+let dns = '';
+let hopLimit = '';
+let managed = false;
+let other = false;
+let routerMac = '';
+let prefixLength = '';
+let prefixL = false;
+let prefixA = false;
+let prefixLimit = '';
+let prefixPreferred = '';
+let prefix = '';
+let dnsLife = '';
+let dnsIp = '';
+let ndpLease = '';
+let ndpElapsed = '';
+let slaac = '';
+let mtu = '';
+
+function parseArpLine(line)
+{
+ if (line.length == 0) return;
+ let minutes = parseInt(line.substr(0, 8), 16) / 1000 / 60;
+ arp += Math.floor(minutes).toString().padStart(4, ' ');
+ arp += ' ';
+ arp += Net.makeIp6(line.substr(8, 32)).padEnd(40, ' ');
+ arp += ' ';
+ arp += Net.makeMac(line.substr(40, 12));
+ arp += '\r\n';
+}
+function parseDnsLine(line)
+{
+ if (line.length == 0) return;
+ let minutes = parseInt(line.substr(0, 8), 16) / 1000 / 60;
+ dns += Math.floor(minutes).toString().padStart(4, ' ');
+ dns += ' ';
+ dns += Net.makeIp6(line.substr(8, 32)).padEnd(40, ' ');
+ dns += ' ';
+ dns += line.substr(40, 1);
+ dns += ' ';
+ dns += line.substr(41);
+ dns += '\r\n';
+}
+function parseArpLines(text)
+{
+ arp = '';
+ text.split('\n').forEach(parseArpLine);
+}
+function parseDnsLines(text)
+{
+ dns = '';
+ text.split('\n').forEach(parseDnsLine);
+}
+function parseGenLines(text)
+{
+ let lines = text.split('\n');
+
+ hopLimit = parseInt(lines[ 1], 16);
+ managed = Net.hexToBit(lines[ 0], 0);
+ other = Net.hexToBit(lines[ 0], 1);
+ routerMac = Net.makeMac (lines[ 2], 16);
+ prefixLength = parseInt(lines[ 3], 16);
+ prefixL = Net.hexToBit(lines[ 0], 2);
+ prefixA = Net.hexToBit(lines[ 0], 3);
+ prefixLimit = parseInt(lines[ 4], 16);
+ prefixPreferred = parseInt(lines[ 5], 16);
+ prefix = Net.makeIp6 (lines[ 6] );
+ dnsLife = parseInt(lines[ 7], 16);
+ dnsIp = Net.makeIp6 (lines[ 8] );
+ ndpLease = parseInt(lines[ 9], 16);
+ ndpElapsed = parseInt(lines[10], 16);
+ slaac = Net.makeIp6 (lines[11] );
+ mtu = parseInt(lines[12], 16);
+}
+function parse()
+{
+ let topics = Ajax.response.split('\f');
+ parseGenLines(topics[0]);
+ parseArpLines(topics[1]);
+ parseDnsLines(topics[2]);
+}
+function display()
+{
+ let elem;
+
+ elem = Ajax.getElementOrNull('ajax-arp' ); if (elem) elem.textContent = arp;
+ elem = Ajax.getElementOrNull('ajax-dns' ); if (elem) elem.textContent = dns;
+ elem = Ajax.getElementOrNull('ajax-hop-limit' ); if (elem) elem.textContent = hopLimit;
+ elem = Ajax.getElementOrNull('ajax-managed' ); if (elem) elem.setAttribute('dir', managed ? 'rtl' : 'ltr');
+ elem = Ajax.getElementOrNull('ajax-other' ); if (elem) elem.setAttribute('dir', other ? 'rtl' : 'ltr');
+ elem = Ajax.getElementOrNull('ajax-router-mac' ); if (elem) elem.textContent = routerMac;
+ elem = Ajax.getElementOrNull('ajax-prefix-length' ); if (elem) elem.textContent = prefixLength;
+ elem = Ajax.getElementOrNull('ajax-prefix-l' ); if (elem) elem.setAttribute('dir', prefixL ? 'rtl' : 'ltr');
+ elem = Ajax.getElementOrNull('ajax-prefix-a' ); if (elem) elem.setAttribute('dir', prefixA ? 'rtl' : 'ltr');
+ elem = Ajax.getElementOrNull('ajax-prefix-limit' ); if (elem) elem.textContent = prefixLimit;
+ elem = Ajax.getElementOrNull('ajax-prefix-preferred'); if (elem) elem.textContent = prefixPreferred;
+ elem = Ajax.getElementOrNull('ajax-prefix' ); if (elem) elem.textContent = prefix;
+ elem = Ajax.getElementOrNull('ajax-dns-life' ); if (elem) elem.textContent = dnsLife;
+ elem = Ajax.getElementOrNull('ajax-dns-ip' ); if (elem) elem.textContent = dnsIp;
+ elem = Ajax.getElementOrNull('ajax-ndp-lease' ); if (elem) elem.textContent = ndpLease;
+ elem = Ajax.getElementOrNull('ajax-ndp-elapsed' ); if (elem) elem.textContent = ndpElapsed;
+ elem = Ajax.getElementOrNull('ajax-slaac' ); if (elem) elem.textContent = slaac;
+ elem = Ajax.getElementOrNull('ajax-mtu' ); if (elem) elem.textContent = mtu;
+}
+
+Ajax.server = '/net6-ajax';
+Ajax.onResponse = function() { parse(); display(); };
+Ajax.init();
\ No newline at end of file