Added JSON ErrorString - reports to web page OK

This commit is contained in:
rljonesau 2018-12-16 11:06:36 +11:00
parent 3ed4335db0
commit 49bd71c569
2 changed files with 28 additions and 5 deletions

View file

@ -31,6 +31,7 @@ char defaultJSONstr[64];
void decodeTimerDays(int timerID, const char* str);
void decodeTimerTime(int ID, int stop, const char*);
void decodeTimerRepeat(int ID, int state);
const char* buildErrorString();
void interpretJsonCommand(char* pLine)
@ -140,7 +141,10 @@ bool makeJsonString(CModerator& moderator, char* opStr, int len)
bSend |= moderator.addJson("TempMax", getHeaterInfo().getTemperature_Max(), root);
bSend |= moderator.addJson("TempBody", getHeaterInfo().getTemperature_HeatExchg(), root);
bSend |= moderator.addJson("RunState", getHeaterInfo().getRunState(), root);
bSend |= moderator.addJson("ErrorState", getHeaterInfo().getErrState(), root );
if(moderator.addJson("ErrorState", getHeaterInfo().getErrState(), root )) {
bSend = true;
root.set("ErrorString", buildErrorString());
}
bSend |= moderator.addJson("Thermostat", getHeaterInfo().isThermostat(), root );
bSend |= moderator.addJson("PumpFixed", getHeaterInfo().getPump_Fixed(), root );
bSend |= moderator.addJson("PumpMin", getHeaterInfo().getPump_Min(), root );
@ -161,6 +165,15 @@ bool makeJsonString(CModerator& moderator, char* opStr, int len)
return bSend;
}
const char* buildErrorString()
{
static char ErrMsg[64];
sprintf(ErrMsg, "E-%02d: %s", getHeaterInfo().getErrState()-1, getHeaterInfo().getErrStateStr());
return ErrMsg;
}
void decodeTimerDays(int ID, const char* str)
{

View file

@ -21,15 +21,18 @@ const char* MAIN_PAGE PROGMEM = R"=====(
document.getElementById(key).innerHTML = heater[key];
break;
case "RunState":
if (heater.RunState == 0) {
if (heater[key] == 0) {
document.getElementById("myonoffswitch").checked = false;
document.getElementById("myonoffswitch").style = "block";
} else if(heater.RunState >= 7) {
document.getElementById("onoffswitch").style.visibility = "visible";
} else if(heater[key] >= 7) {
document.getElementById("myonoffswitch").checked = false;
document.getElementById("myonoffswitch").style = "none";
document.getElementById("onoffswitch").style.visibility = "hidden";
} else {
document.getElementById("myonoffswitch").checked = true;
document.getElementById("myonoffswitch").style = "block";
document.getElementById("onoffswitch").style.visibility = "visible";
}
break;
case "TempDesired":
@ -37,6 +40,10 @@ const char* MAIN_PAGE PROGMEM = R"=====(
document.getElementById(key).innerHTML = heater[key];
break;
case "ErrorState":
document.getElementById("ErrorDiv").hidden = heater[key] <= 1;
break;
case "ErrorString":
document.getElementById(key).innerHTML = heater[key];
break;
case "Thermostat":
if(heater[key] != 0) {
@ -256,7 +263,7 @@ function OnOffCheck(){
// We also need to send a message back into the esp as we cannot directly run Arduino Functions from within the javascript
var cmd = {};
if (checkBox.checked == true){
if (checkBox.checked){
//Insert Code Here To Turn On The Heater
console.log("Turning On Heater");
@ -463,7 +470,7 @@ MainPage {
<span class="MaingPage" id="Home">
<div><H2>Power Control</H2></div>
<div class="onoffswitch">
<div class="onoffswitch" id="onoffswitch">
<input type="checkbox" onclick="OnOffCheck()" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch" clicked>
<label class="onoffswitch-label" for="myonoffswitch">
<span class="onoffswitch-inner"></span>
@ -486,6 +493,9 @@ MainPage {
<div>
<b>Current Temp: </b><span id="TempCurrent">
</div>
<div id="ErrorDiv" style="color:red" hidden>
<b>Error <span id="ErrorString"> </b>
</div>
</span>
<div id="Advanced">