Keep track of sleeptime and display on status web page.
This commit is contained in:
parent
662b0e064c
commit
90a6d768ea
|
@ -9,6 +9,7 @@
|
||||||
static volatile clock_time_t count;
|
static volatile clock_time_t count;
|
||||||
static volatile uint8_t scount;
|
static volatile uint8_t scount;
|
||||||
volatile unsigned long seconds;
|
volatile unsigned long seconds;
|
||||||
|
long sleepseconds;
|
||||||
|
|
||||||
/* Set RADIOSTATS to monitor radio on time (must also be set in the radio driver) */
|
/* Set RADIOSTATS to monitor radio on time (must also be set in the radio driver) */
|
||||||
#if RF230BB && WEBSERVER
|
#if RF230BB && WEBSERVER
|
||||||
|
@ -36,10 +37,10 @@ extern uint8_t RF230_receive_on;
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
/* This routine can be called to add seconds to the clock after a sleep
|
/* This routine can be called to add seconds to the clock after a sleep
|
||||||
* of an integral number of seconds.
|
* of an integral number of seconds.
|
||||||
* TODO:keep separate track of elapsed time, cpu ontime, and radioontime
|
|
||||||
*/
|
*/
|
||||||
void clock_adjust_seconds(uint8_t howmany) {
|
void clock_adjust_seconds(uint8_t howmany) {
|
||||||
seconds += howmany;
|
seconds += howmany;
|
||||||
|
sleepseconds +=howmany;
|
||||||
#if RADIOSTATS
|
#if RADIOSTATS
|
||||||
if (RF230_receive_on) radioontime += howmany;
|
if (RF230_receive_on) radioontime += howmany;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the uIP TCP/IP stack.
|
* This file is part of the uIP TCP/IP stack.
|
||||||
*
|
*
|
||||||
* $Id: httpd-cgi.c,v 1.12 2010/12/18 20:44:02 dak664 Exp $
|
* $Id: httpd-cgi.c,v 1.13 2010/12/23 19:41:07 dak664 Exp $
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ static const char *states[] = {
|
||||||
static char sensor_temperature[12]="Not Enabled";
|
static char sensor_temperature[12]="Not Enabled";
|
||||||
static char sensor_extvoltage[12]="Not Enabled";
|
static char sensor_extvoltage[12]="Not Enabled";
|
||||||
static unsigned long last_tempupdate,last_extvoltageupdate;
|
static unsigned long last_tempupdate,last_extvoltageupdate;
|
||||||
extern unsigned long seconds;
|
extern unsigned long seconds, sleepseconds;
|
||||||
#if RADIOSTATS
|
#if RADIOSTATS
|
||||||
extern unsigned long radioontime;
|
extern unsigned long radioontime;
|
||||||
static unsigned long savedradioontime;
|
static unsigned long savedradioontime;
|
||||||
|
@ -392,17 +392,21 @@ generate_sensor_readings(void *arg)
|
||||||
{
|
{
|
||||||
uint16_t numprinted;
|
uint16_t numprinted;
|
||||||
uint16_t h,m,s;
|
uint16_t h,m,s;
|
||||||
|
uint8_t p1;
|
||||||
static const char httpd_cgi_sensor0[] HTTPD_STRING_ATTR = "[Updated %d seconds ago]<br><br>";
|
static const char httpd_cgi_sensor0[] HTTPD_STRING_ATTR = "[Updated %d seconds ago]<br><br>";
|
||||||
static const char httpd_cgi_sensor1[] HTTPD_STRING_ATTR = "<em>Temperature:</em> %s<br>";
|
// static const char httpd_cgi_sensor1[] HTTPD_STRING_ATTR = "<em>Temperature:</em> %s<br>";
|
||||||
static const char httpd_cgi_sensor2[] HTTPD_STRING_ATTR = "<em>Voltage:</em> %s<br>";
|
// static const char httpd_cgi_sensor2[] HTTPD_STRING_ATTR = "<em>Battery:</em> %s<br>";
|
||||||
static const char httpd_cgi_sensor3[] HTTPD_STRING_ATTR = "<em>Up time:</em> %02d:%02d:%02d<br>";
|
static const char httpd_cgi_sensr12[] HTTPD_STRING_ATTR = "<em>Temperature:</em> %s <em>Battery:<em> %s<br>";
|
||||||
|
static const char httpd_cgi_sensor3[] HTTPD_STRING_ATTR = "<em>Elapsed timer :</em> %02d:%02d:%02d<br>";
|
||||||
|
static const char httpd_cgi_sensor4[] HTTPD_STRING_ATTR = "<em>Sleeping time :</em> %02d:%02d:%02d (%d%%)<br>";
|
||||||
|
|
||||||
numprinted=0;
|
numprinted=0;
|
||||||
if (last_tempupdate) {
|
if (last_tempupdate) {
|
||||||
numprinted =httpd_snprintf((char *)uip_appdata, uip_mss(), httpd_cgi_sensor0,seconds-last_tempupdate);
|
numprinted =httpd_snprintf((char *)uip_appdata, uip_mss(), httpd_cgi_sensor0,seconds-last_tempupdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
numprinted+=httpd_snprintf((char *)uip_appdata+numprinted, uip_mss()-numprinted, httpd_cgi_sensor1, sensor_temperature);
|
// numprinted+=httpd_snprintf((char *)uip_appdata+numprinted, uip_mss()-numprinted, httpd_cgi_sensor1, sensor_temperature);
|
||||||
|
numprinted+=httpd_snprintf((char *)uip_appdata+numprinted, uip_mss()-numprinted, httpd_cgi_sensr12, sensor_temperature,sensor_extvoltage);
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
//Measuring AVcc might be useful to check on battery condition but on ext power it's always 3v3
|
//Measuring AVcc might be useful to check on battery condition but on ext power it's always 3v3
|
||||||
|
@ -416,7 +420,7 @@ generate_sensor_readings(void *arg)
|
||||||
h=1131632UL/ADC; //Get supply voltage
|
h=1131632UL/ADC; //Get supply voltage
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
numprinted+=httpd_snprintf((char *)uip_appdata+numprinted, uip_mss()-numprinted, httpd_cgi_sensor2, sensor_extvoltage);
|
// numprinted+=httpd_snprintf((char *)uip_appdata+numprinted, uip_mss()-numprinted, httpd_cgi_sensor2, sensor_extvoltage);
|
||||||
#if RADIOSTATS
|
#if RADIOSTATS
|
||||||
/* Remember radioontime for display below - slow connection might make it report longer than cpu ontime! */
|
/* Remember radioontime for display below - slow connection might make it report longer than cpu ontime! */
|
||||||
savedradioontime = radioontime;
|
savedradioontime = radioontime;
|
||||||
|
@ -426,6 +430,14 @@ generate_sensor_readings(void *arg)
|
||||||
m=s/60;
|
m=s/60;
|
||||||
s=s-m*60;
|
s=s-m*60;
|
||||||
numprinted+=httpd_snprintf((char *)uip_appdata + numprinted, uip_mss() - numprinted, httpd_cgi_sensor3, h,m,s);
|
numprinted+=httpd_snprintf((char *)uip_appdata + numprinted, uip_mss() - numprinted, httpd_cgi_sensor3, h,m,s);
|
||||||
|
if (sleepseconds) {
|
||||||
|
p1=100UL*sleepseconds/seconds;
|
||||||
|
h=sleepseconds/3600;
|
||||||
|
s=sleepseconds-h*3600;
|
||||||
|
m=s/60;
|
||||||
|
s=s-m*60;
|
||||||
|
numprinted+=httpd_snprintf((char *)uip_appdata + numprinted, uip_mss() - numprinted, httpd_cgi_sensor4, h,m,s,p1);
|
||||||
|
}
|
||||||
return numprinted;
|
return numprinted;
|
||||||
}
|
}
|
||||||
#if RADIOSTATS
|
#if RADIOSTATS
|
||||||
|
@ -436,8 +448,8 @@ generate_radio_stats(void *arg)
|
||||||
uint16_t numprinted;
|
uint16_t numprinted;
|
||||||
uint16_t h,m,s;
|
uint16_t h,m,s;
|
||||||
uint8_t p1,p2;
|
uint8_t p1,p2;
|
||||||
static const char httpd_cgi_sensor4[] HTTPD_STRING_ATTR = "<em>Radio on:</em> %02d:%02d:%02d (%d.%02d%%)<br>";
|
static const char httpd_cgi_sensor10[] HTTPD_STRING_ATTR = "<em>Radio on time :</em> %02d:%02d:%02d (%d.%02d%%)<br>";
|
||||||
static const char httpd_cgi_sensor5[] HTTPD_STRING_ATTR = "<em>Packets:</em> Tx=%5d Rx=%5d TxL=%5d RxL=%5d RSSI=%2ddBm\n";
|
static const char httpd_cgi_sensor11[] HTTPD_STRING_ATTR = "<em>Packets:</em> Tx=%5d Rx=%5d TxL=%5d RxL=%5d RSSI=%2ddBm\n";
|
||||||
|
|
||||||
s=(10000UL*savedradioontime)/seconds;
|
s=(10000UL*savedradioontime)/seconds;
|
||||||
p1=s/100;
|
p1=s/100;
|
||||||
|
@ -447,17 +459,17 @@ generate_radio_stats(void *arg)
|
||||||
m=s/60;
|
m=s/60;
|
||||||
s=s-m*60;
|
s=s-m*60;
|
||||||
|
|
||||||
numprinted =httpd_snprintf((char *)uip_appdata , uip_mss() , httpd_cgi_sensor4,\
|
numprinted =httpd_snprintf((char *)uip_appdata , uip_mss() , httpd_cgi_sensor10,\
|
||||||
h,m,s,p1,p2);
|
h,m,s,p1,p2);
|
||||||
|
|
||||||
#if RF230BB
|
#if RF230BB
|
||||||
numprinted+=httpd_snprintf((char *)uip_appdata + numprinted, uip_mss() - numprinted, httpd_cgi_sensor5,\
|
numprinted+=httpd_snprintf((char *)uip_appdata + numprinted, uip_mss() - numprinted, httpd_cgi_sensor11,\
|
||||||
RF230_sendpackets,RF230_receivepackets,RF230_sendfail,RF230_receivefail,-92+rf230_last_rssi);
|
RF230_sendpackets,RF230_receivepackets,RF230_sendfail,RF230_receivefail,-92+rf230_last_rssi);
|
||||||
#else
|
#else
|
||||||
p1=0;
|
p1=0;
|
||||||
radio_get_rssi_value(&p1);
|
radio_get_rssi_value(&p1);
|
||||||
p1 = -91*3(p1-1);
|
p1 = -91*3(p1-1);
|
||||||
numprinted+=httpd_snprintf((char *)uip_appdata + numprinted, uip_mss() - numprinted, httpd_cgi_sensor5,\
|
numprinted+=httpd_snprintf((char *)uip_appdata + numprinted, uip_mss() - numprinted, httpd_cgi_sensor11,\
|
||||||
RF230_sendpackets,RF230_receivepackets,RF230_sendfail,RF230_receivefail,p1);
|
RF230_sendpackets,RF230_receivepackets,RF230_sendfail,RF230_receivefail,p1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue