From 5b44ee14418ecdbf1ec1e4a2fbea58306981b194 Mon Sep 17 00:00:00 2001 From: anschrammh Date: Sun, 17 Nov 2019 11:06:51 +0100 Subject: [PATCH] Updated the wifi signal strength representation, added the time set functionality and other small improvement --- sdCard_content/WWW/rsrc/script.js | 133 ++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) diff --git a/sdCard_content/WWW/rsrc/script.js b/sdCard_content/WWW/rsrc/script.js index 03c1eff..eddab7c 100644 --- a/sdCard_content/WWW/rsrc/script.js +++ b/sdCard_content/WWW/rsrc/script.js @@ -35,6 +35,15 @@ function init() powerInfo(); powerInfoInter = setInterval(powerInfo,10000); + + //We init the time boxes + var curDate = new Date(); + document.getElementById('hour').value = curDate.getHours(); + document.getElementById('minute').value = curDate.getMinutes(); + document.getElementById('second').value = curDate.getSeconds(); + document.getElementById('day').value = curDate.getDate(); + document.getElementById('month').value = curDate.getMonth() + 1; + document.getElementById('year').value = curDate.getFullYear(); console.log("Ending setup"); } @@ -187,6 +196,8 @@ function refreshSysInfo() document.getElementById('cpuInfo').innerHTML = systemInfoObj['CPU freq']; document.getElementById('fragInfo').innerHTML = systemInfoObj['heap frag']; document.getElementById('blockInfo').innerHTML = systemInfoObj['max block']; + document.getElementById('upTime').innerHTML = systemInfoObj['up time'].days + ' days ' + systemInfoObj['up time'].hours + ' hours ' + systemInfoObj['up time'].minutes + ' minutes ' + systemInfoObj['up time'].seconds + ' seconds '; + document.getElementById('temperature').innerHTML = systemInfoObj['temperature'].level + systemInfoObj['temperature'].unit; } else { @@ -195,6 +206,8 @@ function refreshSysInfo() document.getElementById('cpuInfo').innerHTML = 'NaN'; document.getElementById('fragInfo').innerHTML = 'NaN'; document.getElementById('blockInfo').innerHTML = 'NaN'; + document.getElementById('upTime').innerHTML = 'NaN'; + document.getElementById('temperature').innerHTML = 'NaN'; } break; default: @@ -237,6 +250,8 @@ function refreshSigStrength() document.getElementById('sigStrength').innerHTML = wifiStaObj.RSSI; document.getElementById('sigStrengthPercent').innerHTML = wifiStaObj.RSSI2; document.getElementById('localIP').innerHTML = wifiStaObj['local IP']; + setSigStrenthPicture(wifiStaObj.RSSI2 + ); } else { @@ -256,6 +271,50 @@ function refreshSigStrength() ajaxReq.send(); } +function setSigStrenthPicture(value) +{ + if(value < 5) + { + document.getElementById('imgSig1').style.display = 'block'; + document.getElementById('imgSig2').style.display = 'none'; + document.getElementById('imgSig3').style.display = 'none'; + document.getElementById('imgSig4').style.display = 'none'; + document.getElementById('imgSig5').style.display = 'none'; + } + else if(value < 20) + { + document.getElementById('imgSig1').style.display = 'none'; + document.getElementById('imgSig2').style.display = 'block'; + document.getElementById('imgSig3').style.display = 'none'; + document.getElementById('imgSig4').style.display = 'none'; + document.getElementById('imgSig5').style.display = 'none'; + } + else if(value < 40) + { + document.getElementById('imgSig1').style.display = 'none'; + document.getElementById('imgSig2').style.display = 'none'; + document.getElementById('imgSig3').style.display = 'block'; + document.getElementById('imgSig4').style.display = 'none'; + document.getElementById('imgSig5').style.display = 'none'; + } + else if(value < 80) + { + document.getElementById('imgSig1').style.display = 'none'; + document.getElementById('imgSig2').style.display = 'none'; + document.getElementById('imgSig3').style.display = 'none'; + document.getElementById('imgSig4').style.display = 'block'; + document.getElementById('imgSig5').style.display = 'none'; + } + else + { + document.getElementById('imgSig1').style.display = 'none'; + document.getElementById('imgSig2').style.display = 'none'; + document.getElementById('imgSig3').style.display = 'none'; + document.getElementById('imgSig4').style.display = 'none'; + document.getElementById('imgSig5').style.display = 'block'; + } +} + function sdCardMountUnmnout(action) { console.log("Sd card action : "+action); @@ -639,4 +698,78 @@ function setIoLevel(pin,mode) ajaxReq.ontimeout = onTimeOut; ajaxReq.open('GET',"/sab/io/set/level?"+pinOnly+'='+ (mode == 'HIGH' ? '1' : '0')); ajaxReq.send(); +} + +function setRtcClock() +{ + //First we chech the typeof the data + var hour = parseInt(document.getElementById('hour').value); + var minute = parseInt(document.getElementById('minute').value); + var second = parseInt(document.getElementById('second').value); + var day = parseInt(document.getElementById('day').value); + var month = parseInt(document.getElementById('month').value); + var year = parseInt(document.getElementById('year').value); + + if( isFinite(hour) && + isFinite(minute) && + isFinite(second) && + isFinite(day) && + isFinite(month) && + isFinite(year) ) + { + //First, we create the request string : datetime=day_month_year_hours_minutes_seconds + var data = day+"_"+month+"_"+year+"_"+hour+"_"+minute+"_"+second; + + var ajaxReq = new XMLHttpRequest(); + ajaxReq.timeout = 5000; + ajaxReq.onreadystatechange = function() + { + switch(this.readyState) + { + case 0: + break; + case 1: + console.log("Connection established"); + break; + case 2: + console.log("Request received"); + break; + case 3: + console.log("Processing request"); + break; + case 4: + console.log("Response is ready"); + if(this.status != 0){onConnected(); document.getElementById('execTime').innerHTML = new Date().getTime() - execTimeStart;} + if(this.status == 200) + { + console.log("Response : " + this.responseText); + var rtcRespObj = JSON.parse(this.responseText); + console.log(rtcRespObj); + document.getElementById('rtcSetMsg').innerHTML = rtcRespObj.status; + document.getElementById('rtcSetMsg').style.color = 'green'; + } + else + { + console.log("Error, status is : " + this.status); + document.getElementById('rtcSetMsg').innerHTML = 'Failed to execute'; + document.getElementById('rtcSetMsg').style.color = 'red'; + } + break; + default: + console.log("Unknown state"); + + } + } + ajaxReq.ontimeout = onTimeOut; + ajaxReq.open('GET',"/sab/rtc/set/datetime?datetime="+data); + console.log("datetime="+data); + execTimeStart = new Date().getTime(); + ajaxReq.send(); + } + else + { + console.error("Non numeric values encountered to set the rtc clock"); + document.getElementById('rtcSetMsg').innerHTML = 'Failed to execute'; + document.getElementById('rtcSetMsg').style.color = 'red'; + } } \ No newline at end of file