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
Diff: http-derived/nmea/http-nmea-script.inc
- Revision:
- 49:115a5e4fac0c
- Parent:
- 48:9f1ab7784067
--- a/http-derived/nmea/http-nmea-script.inc Wed Mar 27 18:40:21 2019 +0000 +++ b/http-derived/nmea/http-nmea-script.inc Sat Apr 06 11:35:55 2019 +0000 @@ -1,20 +1,25 @@ "'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" +"const NMEA_DEG_UNIT = 10000000;\n" +"const NMEA_HGT_UNIT = 1000000;\n" +"\n" +"var response = '';\n" +"var headers = '';\n" +"var gpsTrace = false;\n" +"var gpsVerbose = false;\n" +"var msgTrace = false;\n" +"var cmdTrace = false;\n" +"var lat = 0;\n" +"var lng = 0;\n" +"var hgt = 0;\n" +"var hgtAboveMsl = 0;\n" +"var mslAboveWgs = 0;\n" +"var dop = 0;\n" +"var satCount = 0;\n" +"var fixQuality = 0;\n" +"var sensorHeight = 0;\n" +"var bucketCount = 0;\n" +"var buckets = '';\n" "\n" "function hexToBit(iChar, iBit)\n" "{\n" @@ -22,45 +27,69 @@ " value >>= iBit;\n" " return value & 1;\n" "}\n" +"function parseSint32fromHex(value)\n" +"{\n" +" value = parseInt(value, 16);\n" +" if (value > 0x7FFFFFFF) value -= 0xFFFFFFFF;\n" +" return value;\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" +" gpsTrace = hexToBit(0, 0);\n" +" gpsVerbose = hexToBit(0, 1);\n" +" msgTrace = hexToBit(0, 2);\n" +" cmdTrace = hexToBit(0, 3);\n" +" lat = parseSint32fromHex(response.substr( 1, 8));\n" +" lng = parseSint32fromHex(response.substr( 9, 8));\n" +" hgt = parseSint32fromHex(response.substr(17, 8));\n" +" hgtAboveMsl = parseSint32fromHex(response.substr(25, 8));\n" +" mslAboveWgs = parseSint32fromHex(response.substr(33, 8));\n" +" dop = parseSint32fromHex(response.substr(41, 8));\n" +" satCount = parseSint32fromHex(response.substr(49, 8));\n" +" fixQuality = parseSint32fromHex(response.substr(57, 8));\n" +" sensorHeight = parseSint32fromHex(response.substr(65, 8));\n" +" bucketCount = parseSint32fromHex(response.substr(73, 8));\n" +" buckets = '';\n" +" for (var i = 0; i < bucketCount; i++)\n" +" {\n" +" buckets += (i * 50).toString().padStart(3, '0') + ' ' + parseInt(response.substr(81 + i * 8, 8), 16) + '\\r\\n';\n" +" }\n" +"}\n" +"function degToString(plus, minus, deg)\n" +"{\n" +" deg /= NMEA_DEG_UNIT;\n" +" if (deg >= 0) return plus + deg.toFixed(5);\n" +" else return minus + (-deg).toFixed(5);\n" +"}\n" +"function hgtToString(plus, minus, hgt)\n" +"{\n" +" hgt /= NMEA_HGT_UNIT;\n" +" if (hgt >= 0) return plus + hgt.toFixed(1);\n" +" else return minus + (-hgt).toFixed(1);\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" +" elem = document.getElementById('ajax-trace-gps' ); if (elem) elem.setAttribute('dir', gpsTrace ? 'rtl' : 'ltr');\n" +" elem = document.getElementById('ajax-trace-verbose'); if (elem) elem.setAttribute('dir', gpsVerbose ? 'rtl' : 'ltr');\n" +" elem = document.getElementById('ajax-trace-msg' ); if (elem) elem.setAttribute('dir', msgTrace ? 'rtl' : 'ltr');\n" +" elem = document.getElementById('ajax-trace-cmd' ); if (elem) elem.setAttribute('dir', cmdTrace ? '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" +" elem = document.getElementById('ajax-position' ); if (elem) elem.textContent = degToString('N', 'S', lat) + ' ' +\n" +" degToString('E', 'W', lng) + ' ' +\n" +" hgtToString('H', 'D', hgt);\n" +" elem = document.getElementById('ajax-msl-above-wgs'); if (elem) elem.textContent = hgtToString('H', 'D', mslAboveWgs);\n" +" elem = document.getElementById('ajax-hgt-above-msl'); if (elem) elem.textContent = hgtToString('H', 'D', hgtAboveMsl);\n" +" elem = document.getElementById('ajax-gnd-above-msl'); if (elem) elem.textContent = hgtToString('H', 'D', hgtAboveMsl - sensorHeight * NMEA_HGT_UNIT);\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" +" elem = document.getElementById('ajax-dop' ); if (elem) elem.textContent = dop / 100;\n" +" elem = document.getElementById('ajax-sat-count' ); if (elem) elem.textContent = satCount;\n" +" elem = document.getElementById('ajax-fix-quality' ); if (elem) elem.textContent = fixQuality;\n" " \n" -" elem = document.getElementById('ajax-sensor-hgt' ); if (elem) elem.value = sensorheight;\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" +" elem = document.getElementById('ajax-buckets' ); if (elem) elem.textContent = buckets;\n" "\n" " elem = document.getElementById('ajax-response' ); if (elem) elem.textContent = response;\n" " elem = document.getElementById('ajax-headers' ); if (elem) elem.textContent = headers;\n"