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.
Dependencies: net lpc1768 crypto clock web log
http-derived/nmea/http-nmea-script.inc
- Committer:
- andrewboyson
- Date:
- 2019-03-27
- Revision:
- 48:9f1ab7784067
- Child:
- 49:115a5e4fac0c
File content as of revision 48:9f1ab7784067:
"'use strict';\n" "\n" "var response = '';\n" "var headers = '';\n" "var gpsTrace = false; //nibble 0 : bit 0\n" "var gpsVerbose = false; //nibble 0 : bit 1\n" "var nmeaMsgTrace = false; //nibble 0 : bit 2\n" "var nmeaCmdTrace = false; //nibble 0 : bit 3\n" "var nmeaLat = 0; //nibble 1\n" "var nmeaLng = 0; //nibble 9\n" "var nmeaHgt = 0; //nibble 17\n" "var nmeaHgtAboveMsl = 0; //nibble 25\n" "var nmeaDop = 0; //nibble 33\n" "var nmeaSatCount = 0; //nibble 41\n" "var nmeaFixQuality = 0; //nibble 49\n" "var sensorheight = 0; //nibble 57\n" "var bucketCount = 0; //nibble 65\n" "\n" "function hexToBit(iChar, iBit)\n" "{\n" " var value = parseInt(response.charAt(iChar), 16);\n" " value >>= iBit;\n" " return value & 1;\n" "}\n" "function parseAjax()\n" "{\n" " var iDateStart = headers.toLowerCase().indexOf('date:');\n" " var iDateEnd = headers.indexOf('\\r', iDateStart);\n" " var rtcDate = new Date(headers.slice(iDateStart + 5, iDateEnd));\n" " gpsTrace = hexToBit(0, 0);\n" " gpsVerbose = hexToBit(0, 1);\n" " nmeaMsgTrace = hexToBit(0, 2);\n" " nmeaCmdTrace = hexToBit(0, 3);\n" " nmeaLat = parseInt(response.substr( 1, 8), 16);\n" " nmeaLng = parseInt(response.substr( 9, 8), 16);\n" " nmeaHgt = parseInt(response.substr(17, 8), 16);\n" " nmeaHgtAboveMsl = parseInt(response.substr(25, 8), 16);\n" " nmeaDop = parseInt(response.substr(33, 8), 16);\n" " nmeaSatCount = parseInt(response.substr(41, 8), 16);\n" " nmeaFixQuality = parseInt(response.substr(49, 8), 16);\n" " sensorheight = parseInt(response.substr(57, 8), 16);\n" " bucketCount = parseInt(response.substr(65, 8), 16);\n" "}\n" "function displayGeneral()\n" "{\n" " var elem;\n" " elem = document.getElementById('ajax-gps-trace' ); if (elem) elem.setAttribute('dir', gpsTrace ? 'rtl' : 'ltr');\n" " elem = document.getElementById('ajax-gps-verbose' ); if (elem) elem.setAttribute('dir', gpsVerbose ? 'rtl' : 'ltr');\n" " elem = document.getElementById('ajax-msg-trace' ); if (elem) elem.setAttribute('dir', nmeaMsgTrace ? 'rtl' : 'ltr');\n" " elem = document.getElementById('ajax-cmd-trace' ); if (elem) elem.setAttribute('dir', nmeaCmdTrace ? 'rtl' : 'ltr');\n" "\n" " elem = document.getElementById('ajax-lat' ); if (elem) elem.textContent = nmeaLat;\n" " elem = document.getElementById('ajax-lng' ); if (elem) elem.textContent = nmeaLng;\n" " elem = document.getElementById('ajax-hgt' ); if (elem) elem.textContent = nmeaHgt;\n" " elem = document.getElementById('ajax-hgt-above-msl'); if (elem) elem.textContent = nmeaHgtAboveMsl;\n" "\n" " elem = document.getElementById('ajax-dop' ); if (elem) elem.textContent = nmeaDop;\n" " elem = document.getElementById('ajax-sat-count' ); if (elem) elem.textContent = nmeaSatCount;\n" " elem = document.getElementById('ajax-fix-quality' ); if (elem) elem.textContent = nmeaFixQuality;\n" " \n" " elem = document.getElementById('ajax-sensor-hgt' ); if (elem) elem.value = sensorheight;\n" " \n" " elem = document.getElementById('ajax-bucket-count' ); if (elem) elem.textContent = bucketCount;\n" "\n" " elem = document.getElementById('ajax-response' ); if (elem) elem.textContent = response;\n" " elem = document.getElementById('ajax-headers' ); if (elem) elem.textContent = headers;\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', '/nmea-ajax' + '?' + request, true);\n" " else ajax.open('GET', '/nmea-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" ""