* web-serial: added internal buffer which is transmitted every second if its fill state is different from 0

* added uptime to serial console
* time will be instantiated in ESP (was in in JS)
* fixed SerialDebug inside hmRadio.h (thx to klahus1)
This commit is contained in:
lumapu 2022-09-09 14:46:18 +02:00
parent b1fa6e0702
commit 0759bff4cd
6 changed files with 79 additions and 24 deletions

View file

@ -45,7 +45,7 @@
<p class="right"><a href="/api">REST API</a></p>
</div>
<script type="text/javascript">
var intervalSet = false;
var mIntervalSet = false;
function parseSys(obj) {
document.getElementById("version").innerHTML = "Git SHA: " + obj["build"] + " :: " + obj["version"];
@ -109,9 +109,9 @@
parseIv(obj["inverter"]);
parseWarnInfo(obj["warnings"], obj["infos"]);
document.getElementById("refresh").innerHTML = obj["refresh_interval"];
if(false == intervalSet) {
if(false == mIntervalSet) {
window.setInterval("getAjax('/api/index', parse)", obj["refresh_interval"] * 1000);
intervalSet = true;
mIntervalSet = true;
}
}
else

View file

@ -11,7 +11,7 @@
<div id="content" class="content">
<div class="serial">
<textarea id="serial" cols="80" rows="20" readonly></textarea><br/>
conntected: <span class="dot" id="connected"></span><input type="button" value="clear" class="btn" id="clear"/> <input type="button" value="autoscroll" class="btn" id="scroll"/>
conntected: <span class="dot" id="connected"></span> Uptime: <span id="uptime"></span><input type="button" value="clear" class="btn" id="clear"/> <input type="button" value="autoscroll" class="btn" id="scroll"/>
</div>
</div>
<div id="footer">
@ -20,12 +20,26 @@
<p class="right" id="version"></p>
</div>
<script type="text/javascript">
var mPrintTime = true;
var mAutoScroll = true;
var con = document.getElementById("serial");
var mIntervalSet = false;
function parseSys(obj) {
document.getElementById("version").innerHTML = "Git SHA: " + obj["build"] + " :: " + obj["version"];
var up = obj["ts_uptime"];
var days = parseInt(up / 86400) % 365;
var hrs = parseInt(up / 3600) % 24;
var min = parseInt(up / 60) % 60;
var sec = up % 60;
document.getElementById("uptime").innerHTML = days + " Days, "
+ ("0"+hrs).substr(-2) + ":"
+ ("0"+min).substr(-2) + ":"
+ ("0"+sec).substr(-2);
if(false == mIntervalSet) {
document.getElementById("version").innerHTML = "Git SHA: " + obj["build"] + " :: " + obj["version"];
window.setInterval("getAjax('/api/system', parseSys)", 10000);
mIntervalSet = true;
}
}
document.getElementById("clear").addEventListener("click", function() {
@ -49,15 +63,6 @@
}, false);
source.addEventListener('serial', function(e) {
if(mPrintTime) {
var d = new Date();
con.value += d.toLocaleTimeString() + ": ";
mPrintTime = false;
}
if(e.data.includes('<rn>'))
mPrintTime = true;
con.value += e.data.replace(/\<rn\>/g, '\r\n');
if(mAutoScroll)
con.scrollTop = con.scrollHeight;