1
0
mirror of https://github.com/thooge/esp32-nmea2000-obp60.git synced 2025-12-13 05:53:06 +01:00

add extended nmea2k status

This commit is contained in:
andreas
2021-10-21 18:10:25 +02:00
parent c24e699874
commit 63eb317816
4 changed files with 94 additions and 21 deletions

View File

@@ -31,8 +31,13 @@
getJson('/api/status')
.then(function(jsonData){
for (let k in jsonData){
let el=document.getElementById(k);
if (el) el.textContent=jsonData[k];
if (k == 'cnv'){
updateCanDetails(jsonData[k]);
}
else{
let el=document.getElementById(k);
if (el) el.textContent=jsonData[k];
}
}
lastUpdate=(new Date()).getTime();
})
@@ -72,6 +77,36 @@
alertRestart();
})
}
function showCanDetails(on){
let el=document.getElementById('canDetails');
if (!el) return;
if (on) el.classList.add('visible');
else(el.classList).remove('visible');
}
function updateCanDetails(details){
let frame=document.getElementById('canDetails');
if (! frame) return;
for (let k in details){
let el=frame.querySelector("[data-id=\""+k+"\"] ");
if (!el){
el=document.createElement('div');
el.classList.add('row');
let cv=document.createElement('span');
cv.classList.add('label');
cv.textContent="PGN"+k;
el.appendChild(cv);
cv=document.createElement('span');
cv.classList.add('value');
cv.setAttribute('data-id',k);
cv.textContent=details[k];
el.appendChild(cv);
frame.appendChild(el);
}
else{
el.textContent=details[k];
}
}
}
window.setInterval(update,1000);
window.addEventListener('load',function(){
let buttons=document.querySelectorAll('button');
@@ -79,6 +114,10 @@
let be=buttons[i];
be.onclick=window[be.id]; //assume a function with the button id
}
let cd=document.getElementById("showCanDetails");
cd.addEventListener('change',function(ev){
showCanDetails(ev.target.checked);
});
resetForm();
});
</script>
@@ -112,6 +151,12 @@ span#connected.ok{
.buttons {
padding-left: 1em;
}
#canDetails{
display:none;
}
#canDetails.visible{
display: block;
}
</style>
</head>
@@ -127,8 +172,16 @@ span#connected.ok{
<span class="value" id="connected"></span>
</div>
<div class="row">
<span class="label"># CAN messages</span>
<span class="label"># NMEA2000 messages</span>
<span class="value" id="numcan">---</span>
</div>
<div class="row">
<span class="label">NMEA2000 details</span>
<input type="checkbox" id="showCanDetails"></span>
</div>
<div class="row" id="canDetails">
</div>
<div class="row">
<span class="label"># TCP clients</span>