sync web pages and dynamic variables
This commit is contained in:
parent
5d090ec18e
commit
a5aa43d594
|
|
@ -5,14 +5,8 @@ favicon.ico
|
||||||
gendata.json
|
gendata.json
|
||||||
head.inc
|
head.inc
|
||||||
index.html
|
index.html
|
||||||
index20.html
|
|
||||||
index21.html
|
|
||||||
index22.html
|
|
||||||
index23.html
|
index23.html
|
||||||
index30.html
|
index30.html
|
||||||
index31.html
|
|
||||||
index32.html
|
|
||||||
index33.html
|
|
||||||
index40.html
|
index40.html
|
||||||
index41.html
|
index41.html
|
||||||
ioscr.js
|
ioscr.js
|
||||||
|
|
@ -29,6 +23,12 @@ reboot.html
|
||||||
set1.json
|
set1.json
|
||||||
set2.json
|
set2.json
|
||||||
set3.json
|
set3.json
|
||||||
|
set_eth.html
|
||||||
|
set_gprs.html
|
||||||
|
set_mqtt.html
|
||||||
|
set_sys.html
|
||||||
|
set_time.html
|
||||||
|
set_wifi.html
|
||||||
stat.json
|
stat.json
|
||||||
status.json
|
status.json
|
||||||
style.css
|
style.css
|
||||||
|
|
|
||||||
|
|
@ -7,36 +7,11 @@
|
||||||
Home|State[<span id='dn'>?</span>]
|
Home|State[<span id='dn'>?</span>]
|
||||||
</div>
|
</div>
|
||||||
<div style='text-align:center;margin-top:20px'>
|
<div style='text-align:center;margin-top:20px'>
|
||||||
<span id="name" ><div class='hdr1'>Станция 'Etherbox-07'</div></span>
|
<span id="name" ><div class='hdr1'>Your device name'</div></span>
|
||||||
<span id='localtime'>?</span><br/>
|
<span id='localtime'>?</span><br/>
|
||||||
Время работы:<span id='uptime'>?</span><br/><br/>
|
Время работы:<span id='uptime'>?</span><br/><br/>
|
||||||
Входное напряжение:<span id='volt2'>?</span> В<br/>
|
|
||||||
Системное напряжение:<span id='volt'>?</span> В<br/>
|
|
||||||
Напряжение батареи:<span id='volt3'>?</span> В<br/>
|
|
||||||
Уровень WiFi:<span id='wlev' style="color:#0099ff;font-weight:bold">?</span><br/>
|
Уровень WiFi:<span id='wlev' style="color:#0099ff;font-weight:bold">?</span><br/>
|
||||||
</div>
|
</div>
|
||||||
<div class='stg indic'>
|
|
||||||
<table><tr><td>
|
|
||||||
<table>
|
|
||||||
<tr><td align='right'>Район 1</td><td align='left'><span class='dot' id='led1'></span></td></tr>
|
|
||||||
<tr><td align='right'>Район 2</td><td align='left'><span class='dot' id='led2'></span></td></tr>
|
|
||||||
<tr><td align='right'>Район 3</td><td align='left'><span class='dot' id='led3'></span></td></tr>
|
|
||||||
<tr><td align='right'>Район 4</td><td align='left'><span class='dot' id='led4'></span></td></tr>
|
|
||||||
<tr><td align='right'>Район 5</td><td align='left'><span class='dot' id='led5'></span></td></tr>
|
|
||||||
<tr><td align='right'>Район 6</td><td align='left'><span class='dot' id='led6'></span></td></tr>
|
|
||||||
<tr><td align='right'>Район 7</td><td align='left'><span class='dot' id='led7'></span></td></tr>
|
|
||||||
<tr><td align='right'>Район 8</td><td align='left'><span class='dot' id='led8'></span></td></tr>
|
|
||||||
</table>
|
|
||||||
</td><td valign='top'>
|
|
||||||
<table>
|
|
||||||
<tr><td align='right'><span class='dot' id='sys1'></span></td><td align='left'>Система</td></tr>
|
|
||||||
<tr><td align='right'><span class='dot' id='sys2'></span></td><td align='left'>Питание</td></tr>
|
|
||||||
<tr><td align='right'><span class='dot' id='sys3'></span></td><td align='left'>Батарея</td></tr>
|
|
||||||
<tr><td align='right'><span class='dot' id='sys4'></span></td><td align='left'>Связь</td></tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr></table>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
@ -45,56 +20,18 @@ var tmr;
|
||||||
function updateStatus(xmlData) {
|
function updateStatus(xmlData) {
|
||||||
var dat = JSON.parse(xmlData);
|
var dat = JSON.parse(xmlData);
|
||||||
var theDate,sec,wl,volt,dnam;
|
var theDate,sec,wl,volt,dnam;
|
||||||
var zr,zy,zg;
|
|
||||||
var sr,sy,sg;
|
|
||||||
try{
|
try{
|
||||||
theDate = new Date(dat.time * 1000);
|
theDate = new Date(dat.time * 1000);
|
||||||
sec = dat.uptime;
|
sec = dat.uptime;
|
||||||
wl = dat.wlev;
|
wl = dat.wlev;
|
||||||
volt = dat.vlsys;
|
|
||||||
volt2 = dat.vlin;
|
|
||||||
volt3 = dat.vlbat;
|
|
||||||
dnam = dat.dname;
|
dnam = dat.dname;
|
||||||
zr = dat.zred;
|
|
||||||
zy = dat.zyel;
|
|
||||||
zg = dat.zgrn;
|
|
||||||
sr = dat.sred;
|
|
||||||
sy = dat.syel;
|
|
||||||
sg = dat.sgrn;
|
|
||||||
}
|
}
|
||||||
catch(e){return;}
|
catch(e){return;}
|
||||||
|
|
||||||
volt = (volt*4.7/1000).toFixed(1);
|
|
||||||
volt2 = (volt2*11/1000+1.4).toFixed(1);
|
|
||||||
volt3 = (volt3*6.8/1000).toFixed(1);
|
|
||||||
|
|
||||||
document.getElementById('localtime').innerHTML = (theDate.toString()).slice(0,34);
|
document.getElementById('localtime').innerHTML = (theDate.toString()).slice(0,34);
|
||||||
document.getElementById('uptime').innerHTML= secondsToHms(sec);
|
document.getElementById('uptime').innerHTML= secondsToHms(sec);
|
||||||
document.getElementById('volt').innerHTML= volt;
|
|
||||||
document.getElementById('volt2').innerHTML= volt2;
|
|
||||||
document.getElementById('volt3').innerHTML= volt3;
|
|
||||||
document.getElementById('wlev').innerHTML= wl;
|
document.getElementById('wlev').innerHTML= wl;
|
||||||
document.getElementById('dn').innerHTML= dnam;
|
document.getElementById('dn').innerHTML= dnam;
|
||||||
for(i=1; i<=8; ++i)
|
|
||||||
{
|
|
||||||
document.getElementById('led'+i).style.backgroundColor = '#d0d0d0'
|
|
||||||
if(zg & 1) document.getElementById('led'+i).style.backgroundColor = '#00cc00';
|
|
||||||
if(zy & 1) document.getElementById('led'+i).style.backgroundColor = '#ffff00';
|
|
||||||
if(zr & 1) document.getElementById('led'+i).style.backgroundColor = '#ff0000';
|
|
||||||
zg >>=1;
|
|
||||||
zy >>=1;
|
|
||||||
zr >>=1;
|
|
||||||
}
|
|
||||||
for(i=1;i<=4;++i)
|
|
||||||
{
|
|
||||||
document.getElementById('sys'+i).style.backgroundColor = '#d0d0d0'
|
|
||||||
if(sg & 8) document.getElementById('sys'+i).style.backgroundColor = '#00cc00';
|
|
||||||
if(sy & 8) document.getElementById('sys'+i).style.backgroundColor = '#ffff00';
|
|
||||||
if(sr & 8) document.getElementById('sys'+i).style.backgroundColor = '#ff0000';
|
|
||||||
sg <<=1;
|
|
||||||
sy <<=1;
|
|
||||||
sr <<=1;
|
|
||||||
}
|
|
||||||
function secondsToHms(d) {
|
function secondsToHms(d) {
|
||||||
d = Number(d);
|
d = Number(d);
|
||||||
var dd = Math.floor(d/86400);
|
var dd = Math.floor(d/86400);
|
||||||
|
|
|
||||||
|
|
@ -30,14 +30,14 @@ document.write("<li><a href='index41.html'>Статистика</a></li></ul></l
|
||||||
|
|
||||||
document.write("<li><a href='#'>Настройки</a><ul>");
|
document.write("<li><a href='#'>Настройки</a><ul>");
|
||||||
document.write("<li><a href='index30.html'>Панель</a></li>");
|
document.write("<li><a href='index30.html'>Панель</a></li>");
|
||||||
document.write("<li><a href='index31.html'>Станция</a></li>");
|
document.write("<li><a href='set_mqtt.html'>MQTT</a></li>");
|
||||||
document.write("<li><a href='index32.html'>Система</a></li>");
|
document.write("<li><a href='set_sys.html'>System</a></li>");
|
||||||
document.write("<li><a href='index33.html'>Время</a></li></ul></li>");
|
document.write("<li><a href='set_time.html'>Time</a></li></ul></li>");
|
||||||
|
|
||||||
document.write("<li><a href='#'>Сеть</a><ul>");
|
document.write("<li><a href='#'>Сеть</a><ul>");
|
||||||
document.write("<li><a href='index20.html'>Ethernet</a></li>");
|
document.write("<li><a href='set_eth.html'>Ethernet</a></li>");
|
||||||
document.write("<li><a href='index21.html'>WiFi</a></li>");
|
document.write("<li><a href='set_wifi.html'>WiFi</a></li>");
|
||||||
document.write("<li><a href='index22.html'>GPRS</a></li>");
|
document.write("<li><a href='set_gprs.html'>GPRS</a></li>");
|
||||||
document.write("<li><a href='index23.html'>LoRaWAN</a></li></ul></li>");
|
document.write("<li><a href='index23.html'>LoRaWAN</a></li></ul></li>");
|
||||||
document.write("</ul></nav></div>");}
|
document.write("</ul></nav></div>");}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 4b8b8a36d327713a0c08998a7d11b538fd3a8a06
|
Subproject commit f4ee6c25c7c93db384e47fdf0cac1027498e87de
|
||||||
|
|
@ -28,11 +28,6 @@ static void HTTPPrint_DEF(char *VarData, void *arg)
|
||||||
snprintf(VarData, MAX_DYNVAR_LENGTH, "#DEF");
|
snprintf(VarData, MAX_DYNVAR_LENGTH, "#DEF");
|
||||||
}
|
}
|
||||||
|
|
||||||
void HTTPPrint_topic2(char *VarData, void *arg)
|
|
||||||
{
|
|
||||||
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", "custom-dyn_var");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void HTTPPrint_status_fail(char *VarData, void *arg)
|
static void HTTPPrint_status_fail(char *VarData, void *arg)
|
||||||
{
|
{
|
||||||
snprintf(VarData, MAX_DYNVAR_LENGTH, "none");
|
snprintf(VarData, MAX_DYNVAR_LENGTH, "none");
|
||||||
|
|
@ -41,7 +36,6 @@ static void HTTPPrint_status_fail(char *VarData, void *arg)
|
||||||
dyn_var_handler_t HANDLERS_ARRAY_CUST[] = {
|
dyn_var_handler_t HANDLERS_ARRAY_CUST[] = {
|
||||||
|
|
||||||
/*ERROR report*/
|
/*ERROR report*/
|
||||||
{ "topic2", sizeof("topic2") - 1, &HTTPPrint_topic2 },
|
|
||||||
{ "status_fail", sizeof("status_fail") - 1, &HTTPPrint_status_fail },
|
{ "status_fail", sizeof("status_fail") - 1, &HTTPPrint_status_fail },
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
@ -50,33 +44,13 @@ dyn_var_handler_t HANDLERS_ARRAY_CUST[] = {
|
||||||
int HTTPPrintCustom(httpd_req_t *req, char *buf, char *var)
|
int HTTPPrintCustom(httpd_req_t *req, char *buf, char *var)
|
||||||
{
|
{
|
||||||
char VarData[MAX_DYNVAR_LENGTH];
|
char VarData[MAX_DYNVAR_LENGTH];
|
||||||
const char incPat[] = "inc:";
|
|
||||||
const int incPatLen = sizeof(incPat) - 1;
|
|
||||||
if (!memcmp(var, incPat, incPatLen))
|
|
||||||
{
|
|
||||||
const char rootFS[] = "/";
|
|
||||||
char filename[32];
|
|
||||||
filename[0] = 0x00;
|
|
||||||
var += incPatLen;
|
|
||||||
strcat(filename, rootFS);
|
|
||||||
strcat(filename, var);
|
|
||||||
espfs_file_t *file = espfs_fopen(fs, filename);
|
|
||||||
struct espfs_stat_t stat;
|
|
||||||
if (file)
|
|
||||||
{
|
|
||||||
espfs_fstat(file, &stat);
|
|
||||||
int readBytes = espfs_fread(file, buf, stat.size);
|
|
||||||
espfs_fclose(file);
|
|
||||||
return readBytes;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool fnd = false;
|
bool fnd = false;
|
||||||
char *p2 = var + strlen(var) - 1; //last var symbol
|
char *p2 = var + strlen(var) - 1; //last var symbol
|
||||||
int arg = 0;
|
int arg = 0;
|
||||||
//searching for tag in handles array
|
//searching for tag in handles array
|
||||||
for (int i = 0; i < (sizeof(HANDLERS_ARRAY_CUST) / sizeof(HANDLERS_ARRAY_CUST[0])); ++i)
|
for (int i = 0; i < (sizeof(HANDLERS_ARRAY_CUST) / sizeof(HANDLERS_ARRAY_CUST[0])); ++i)
|
||||||
{
|
{
|
||||||
|
//Try to extract integer parameter from dynamic variable
|
||||||
if (*p2 == ')')
|
if (*p2 == ')')
|
||||||
{ //found close brace
|
{ //found close brace
|
||||||
char *p1 = p2;
|
char *p1 = p2;
|
||||||
|
|
@ -84,12 +58,13 @@ int HTTPPrintCustom(httpd_req_t *req, char *buf, char *var)
|
||||||
--p1;
|
--p1;
|
||||||
if (*p1 == '(')
|
if (*p1 == '(')
|
||||||
{ //found open brace
|
{ //found open brace
|
||||||
*p1 = 0x00; //trim variable to name part
|
*p1 = 0x00; //trim variable to name part
|
||||||
++p1; //to begin of argument
|
++p1; //to begin of argument
|
||||||
*p2 = 0x00; //set end of argument
|
*p2 = 0x00; //set end of argument
|
||||||
arg = atoi(p1);
|
arg = atoi(p1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strcmp(var, HANDLERS_ARRAY_CUST[i].tag) == 0
|
if (strcmp(var, HANDLERS_ARRAY_CUST[i].tag) == 0
|
||||||
&& HANDLERS_ARRAY_CUST[i].HandlerRoutine != NULL)
|
&& HANDLERS_ARRAY_CUST[i].HandlerRoutine != NULL)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user