Add status page link, show correct rssi, fix indexing off array in ipv4 builds
This commit is contained in:
parent
a5cbd0cd94
commit
35b2ce0cdb
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* @(#)$Id: rf230bb.c,v 1.15 2010/12/03 20:42:01 dak664 Exp $
|
* @(#)$Id: rf230bb.c,v 1.16 2010/12/04 21:32:35 dak664 Exp $
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
* This code is almost device independent and should be easy to port.
|
* This code is almost device independent and should be easy to port.
|
||||||
|
@ -123,7 +123,6 @@ struct timestamp {
|
||||||
#define RADIOSTATS 1
|
#define RADIOSTATS 1
|
||||||
#endif
|
#endif
|
||||||
#if RADIOSTATS
|
#if RADIOSTATS
|
||||||
uint8_t RF230_rsigsi;
|
|
||||||
uint16_t RF230_sendpackets,RF230_receivepackets,RF230_sendfail,RF230_receivefail;
|
uint16_t RF230_sendpackets,RF230_receivepackets,RF230_sendfail,RF230_receivefail;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -809,6 +808,9 @@ rf230_send(const void *payload, unsigned short payload_len)
|
||||||
ret = rf230_transmit(payload_len);
|
ret = rf230_transmit(payload_len);
|
||||||
|
|
||||||
bail:
|
bail:
|
||||||
|
#if RADIOSTATS
|
||||||
|
if (ret) RF230_sendfail++;
|
||||||
|
#endif
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
@ -968,7 +970,7 @@ if (RF230_receive_on) {
|
||||||
* It calls the core MAC layer which calls rf230_read to get the packet
|
* It calls the core MAC layer which calls rf230_read to get the packet
|
||||||
* rf230processflag can be printed in the main idle loop for debugging
|
* rf230processflag can be printed in the main idle loop for debugging
|
||||||
*/
|
*/
|
||||||
#if 1
|
#if 0
|
||||||
uint8_t rf230processflag;
|
uint8_t rf230processflag;
|
||||||
#define RF230PROCESSFLAG(arg) rf230processflag=arg
|
#define RF230PROCESSFLAG(arg) rf230processflag=arg
|
||||||
#else
|
#else
|
||||||
|
@ -1003,6 +1005,10 @@ PROCESS_THREAD(rf230_process, ev, data)
|
||||||
&rf230_timetable);
|
&rf230_timetable);
|
||||||
timetable_clear(&rf230_timetable);
|
timetable_clear(&rf230_timetable);
|
||||||
#endif /* RF230_TIMETABLE_PROFILING */
|
#endif /* RF230_TIMETABLE_PROFILING */
|
||||||
|
} else {
|
||||||
|
#if RADIOSTATS
|
||||||
|
RF230_receivefail++;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,8 +3,6 @@
|
||||||
* compile. Allows you to save needing to compile all of uIP in just
|
* compile. Allows you to save needing to compile all of uIP in just
|
||||||
* to get a few things. This file is included in the build by the contiki
|
* to get a few things. This file is included in the build by the contiki
|
||||||
* Makefile.include only when CONTIKI_NO_NET is defined */
|
* Makefile.include only when CONTIKI_NO_NET is defined */
|
||||||
|
|
||||||
//#if CONTIKI_NO_NET
|
|
||||||
|
|
||||||
#include "uip.h"
|
#include "uip.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -132,4 +130,3 @@ uip_icmp6chksum(void)
|
||||||
{
|
{
|
||||||
return upper_layer_chksum(UIP_PROTO_ICMP6);
|
return upper_layer_chksum(UIP_PROTO_ICMP6);
|
||||||
}
|
}
|
||||||
//#endif /* CONTIKI_NO_NET */
|
|
||||||
|
|
|
@ -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.9 2010/12/02 15:37:13 dak664 Exp $
|
* $Id: httpd-cgi.c,v 1.10 2010/12/04 21:32:35 dak664 Exp $
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -112,7 +112,7 @@ static const char *states[] = {
|
||||||
extern unsigned long seconds;
|
extern unsigned long seconds;
|
||||||
#if RADIOSTATS
|
#if RADIOSTATS
|
||||||
extern unsigned long radioontime;
|
extern unsigned long radioontime;
|
||||||
extern uint8_t RF230_radio_on, RF230_rsigsi;
|
extern uint8_t RF230_radio_on, rf230_last_rssi;
|
||||||
extern uint16_t RF230_sendpackets,RF230_receivepackets,RF230_sendfail,RF230_receivefail;
|
extern uint16_t RF230_sendpackets,RF230_receivepackets,RF230_sendfail,RF230_receivefail;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -434,7 +434,7 @@ generate_radio_stats(void *arg)
|
||||||
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_sensor4[] HTTPD_STRING_ATTR = "<em>Radio on:</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=%2d\n";
|
static const char httpd_cgi_sensor5[] HTTPD_STRING_ATTR = "<em>Packets:</em> Tx=%5d Rx=%5d TxL=%5d RxL=%5d RSSI=%2ddBm\n";
|
||||||
|
|
||||||
s=(10000UL*radioontime)/seconds;
|
s=(10000UL*radioontime)/seconds;
|
||||||
p1=s/100;
|
p1=s/100;
|
||||||
|
@ -445,9 +445,18 @@ generate_radio_stats(void *arg)
|
||||||
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_sensor4,\
|
||||||
h,m,s,p1,p2);
|
h,m,s,p1,p2);
|
||||||
|
|
||||||
|
#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_sensor5,\
|
||||||
RF230_sendpackets,RF230_receivepackets,RF230_sendfail,RF230_receivefail,RF230_rsigsi);
|
RF230_sendpackets,RF230_receivepackets,RF230_sendfail,RF230_receivefail,-92+rf230_last_rssi);
|
||||||
|
#else
|
||||||
|
p1=0;
|
||||||
|
radio_get_rssi_value(&p1);
|
||||||
|
p1 = -91*3(p1-1);
|
||||||
|
numprinted+=httpd_snprintf((char *)uip_appdata + numprinted, uip_mss() - numprinted, httpd_cgi_sensor5,\
|
||||||
|
RF230_sendpackets,RF230_receivepackets,RF230_sendfail,RF230_receivefail,p1);
|
||||||
|
#endif
|
||||||
|
|
||||||
return numprinted;
|
return numprinted;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,5 +2,5 @@
|
||||||
<html><head><title>Welcome to the Contiki-demo server!</title>
|
<html><head><title>Welcome to the Contiki-demo server!</title>
|
||||||
<link rel="stylesheet" type="text/css" href="/style.css"><link rel="icon" href="favicon.png" type="image/png">
|
<link rel="stylesheet" type="text/css" href="/style.css"><link rel="icon" href="favicon.png" type="image/png">
|
||||||
</head><body bgcolor="#fffeec" text="black">
|
</head><body bgcolor="#fffeec" text="black">
|
||||||
<div class="menublock"><div class="menu"><p class="border-title">Menu</p><p class="menu"><a href="/">Front page</a><br><a href="files.shtml">File statistics</a><br><a href="tcp.shtml">Network connections</a><br><a href="processes.shtml">System processes</a><br><a href="sensor.shtml">Sensor Readings</a></p></div></div>
|
<div class="menublock"><div class="menu"><p class="border-title">Menu</p><p class="menu"><a href="/">Front page</a><br><a href="status.shtml">Status</a><br><a href="files.shtml">File statistics</a><br><a href="tcp.shtml">Network connections</a><br><a href="processes.shtml">System processes</a><br><a href="sensor.shtml">Sensor Readings</a></p></div></div>
|
||||||
<div class="contentblock"><p class="border-title">Welcome to the <a href="http://www.sics.se/contiki/">Contiki</a> web server!</p>
|
<div class="contentblock"><p class="border-title">Welcome to the <a href="http://www.sics.se/contiki/">Contiki</a> web server!</p>
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
%! neighbors
|
%! neighbors
|
||||||
<h4>Routes</h4>
|
<h4>Routes</h4>
|
||||||
%! routes
|
%! routes
|
||||||
|
<h4>Sensors</h4>
|
||||||
|
%! sensors
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
%! file-stats .
|
%! file-stats .
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* $Id: httpd-simple-avr.c,v 1.7 2010/12/03 20:42:02 dak664 Exp $
|
* $Id: httpd-simple-avr.c,v 1.8 2010/12/04 21:32:35 dak664 Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -176,7 +176,6 @@ PT_THREAD(handle_input(struct httpd_state *s))
|
||||||
}
|
}
|
||||||
|
|
||||||
#if URLCONV
|
#if URLCONV
|
||||||
bomb
|
|
||||||
s->inputbuf[PSOCK_DATALEN(&s->sin) - 1] = 0;
|
s->inputbuf[PSOCK_DATALEN(&s->sin) - 1] = 0;
|
||||||
urlconv_tofilename(s->filename, s->inputbuf, sizeof(s->filename));
|
urlconv_tofilename(s->filename, s->inputbuf, sizeof(s->filename));
|
||||||
#else /* URLCONV */
|
#else /* URLCONV */
|
||||||
|
@ -300,6 +299,10 @@ PT_THREAD(generate_routes(struct httpd_state *s))
|
||||||
PSOCK_GENERATOR_SEND(&s->sout, generate_string, buf);
|
PSOCK_GENERATOR_SEND(&s->sout, generate_string, buf);
|
||||||
blen = 0;
|
blen = 0;
|
||||||
}
|
}
|
||||||
|
#else /* UIP_CONF_IPV6 */
|
||||||
|
blen = 0;i++;
|
||||||
|
ADD("<h2>Hey, you got ip4 working!</h2>");
|
||||||
|
PSOCK_GENERATOR_SEND(&s->sout, generate_string, buf);
|
||||||
#endif /* UIP_CONF_IPV6 */
|
#endif /* UIP_CONF_IPV6 */
|
||||||
|
|
||||||
PSOCK_GENERATOR_SEND(&s->sout, generate_string_P, BOTTOM);
|
PSOCK_GENERATOR_SEND(&s->sout, generate_string_P, BOTTOM);
|
||||||
|
|
|
@ -381,6 +381,7 @@ void mac_ethernetToLowpan(uint8_t * ethHeader)
|
||||||
|
|
||||||
/* Simple Address Translation */
|
/* Simple Address Translation */
|
||||||
if(memcmp((uint8_t *)&simple_trans_ethernet_addr, &(((struct uip_eth_hdr *) ethHeader)->dest.addr[0]), 6) == 0) {
|
if(memcmp((uint8_t *)&simple_trans_ethernet_addr, &(((struct uip_eth_hdr *) ethHeader)->dest.addr[0]), 6) == 0) {
|
||||||
|
#if UIP_CONF_IPV6
|
||||||
//Addressed to us: make 802.15.4 address from IPv6 Address
|
//Addressed to us: make 802.15.4 address from IPv6 Address
|
||||||
destAddr.addr[0] = UIP_IP_BUF->destipaddr.u8[8] ^ 0x02;
|
destAddr.addr[0] = UIP_IP_BUF->destipaddr.u8[8] ^ 0x02;
|
||||||
destAddr.addr[1] = UIP_IP_BUF->destipaddr.u8[9];
|
destAddr.addr[1] = UIP_IP_BUF->destipaddr.u8[9];
|
||||||
|
@ -390,6 +391,18 @@ void mac_ethernetToLowpan(uint8_t * ethHeader)
|
||||||
destAddr.addr[5] = UIP_IP_BUF->destipaddr.u8[13];
|
destAddr.addr[5] = UIP_IP_BUF->destipaddr.u8[13];
|
||||||
destAddr.addr[6] = UIP_IP_BUF->destipaddr.u8[14];
|
destAddr.addr[6] = UIP_IP_BUF->destipaddr.u8[14];
|
||||||
destAddr.addr[7] = UIP_IP_BUF->destipaddr.u8[15];
|
destAddr.addr[7] = UIP_IP_BUF->destipaddr.u8[15];
|
||||||
|
#else
|
||||||
|
//Not intended to be functional, but allows ip4 build without errors.
|
||||||
|
destAddr.addr[0] = UIP_IP_BUF->destipaddr.u8[0] ^ 0x02;
|
||||||
|
destAddr.addr[1] = UIP_IP_BUF->destipaddr.u8[1];
|
||||||
|
destAddr.addr[2] = UIP_IP_BUF->destipaddr.u8[2];
|
||||||
|
destAddr.addr[3] = UIP_IP_BUF->destipaddr.u8[3];
|
||||||
|
destAddr.addr[4] = UIP_IP_BUF->destipaddr.u8[0];
|
||||||
|
destAddr.addr[5] = UIP_IP_BUF->destipaddr.u8[1];
|
||||||
|
destAddr.addr[6] = UIP_IP_BUF->destipaddr.u8[2];
|
||||||
|
destAddr.addr[7] = UIP_IP_BUF->destipaddr.u8[3];
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
destAddrPtr = &destAddr;
|
destAddrPtr = &destAddr;
|
||||||
}
|
}
|
||||||
|
@ -414,7 +427,7 @@ void mac_ethernetToLowpan(uint8_t * ethHeader)
|
||||||
}
|
}
|
||||||
PRINTF(" translated OK\n\r");
|
PRINTF(" translated OK\n\r");
|
||||||
destAddrPtr = &destAddr;
|
destAddrPtr = &destAddr;
|
||||||
#endif
|
#endif /* UIP_CONF_SIMPLE_JACKDAW_ADDR_TRANS */
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -439,6 +452,8 @@ void mac_ethernetToLowpan(uint8_t * ethHeader)
|
||||||
uip_ipaddr_copy(&last_sender, &UIP_IP_BUF->srcipaddr);
|
uip_ipaddr_copy(&last_sender, &UIP_IP_BUF->srcipaddr);
|
||||||
tcpip_input();
|
tcpip_input();
|
||||||
#else
|
#else
|
||||||
|
// PRINTF("Input from %x %x %x %x %x %x %x %x\n",UIP_IP_BUF->srcipaddr.u8[0],UIP_IP_BUF->srcipaddr.u8[1],UIP_IP_BUF->srcipaddr.u8[2],UIP_IP_BUF->srcipaddr.u8[3],UIP_IP_BUF->srcipaddr.u8[4],UIP_IP_BUF->srcipaddr.u8[5],UIP_IP_BUF->srcipaddr.u8[6],UIP_IP_BUF->srcipaddr.u8[7]);
|
||||||
|
// PRINTF("Output to %x %x %x %x %x %x %x %x\n",destAddr.addr[0],destAddr.addr[1],destAddr.addr[2],destAddr.addr[3],destAddr.addr[4],destAddr.addr[5],destAddr.addr[6],destAddr.addr[7]);
|
||||||
tcpip_output(destAddrPtr);
|
tcpip_output(destAddrPtr);
|
||||||
#endif
|
#endif
|
||||||
#else /* UIP_CONF_IPV6 */
|
#else /* UIP_CONF_IPV6 */
|
||||||
|
@ -477,10 +492,19 @@ void mac_LowpanToEthernet(void)
|
||||||
#endif
|
#endif
|
||||||
ETHBUF(uip_buf)->dest.addr[0] = 0x33;
|
ETHBUF(uip_buf)->dest.addr[0] = 0x33;
|
||||||
ETHBUF(uip_buf)->dest.addr[1] = 0x33;
|
ETHBUF(uip_buf)->dest.addr[1] = 0x33;
|
||||||
|
|
||||||
|
#if UIP_CONF_IPV6
|
||||||
ETHBUF(uip_buf)->dest.addr[2] = UIP_IP_BUF->destipaddr.u8[12];
|
ETHBUF(uip_buf)->dest.addr[2] = UIP_IP_BUF->destipaddr.u8[12];
|
||||||
ETHBUF(uip_buf)->dest.addr[3] = UIP_IP_BUF->destipaddr.u8[13];
|
ETHBUF(uip_buf)->dest.addr[3] = UIP_IP_BUF->destipaddr.u8[13];
|
||||||
ETHBUF(uip_buf)->dest.addr[4] = UIP_IP_BUF->destipaddr.u8[14];
|
ETHBUF(uip_buf)->dest.addr[4] = UIP_IP_BUF->destipaddr.u8[14];
|
||||||
ETHBUF(uip_buf)->dest.addr[5] = UIP_IP_BUF->destipaddr.u8[15];
|
ETHBUF(uip_buf)->dest.addr[5] = UIP_IP_BUF->destipaddr.u8[15];
|
||||||
|
#else
|
||||||
|
//Not intended to be functional, but allows ip4 build without errors.
|
||||||
|
ETHBUF(uip_buf)->dest.addr[2] = UIP_IP_BUF->destipaddr.u8[0];
|
||||||
|
ETHBUF(uip_buf)->dest.addr[3] = UIP_IP_BUF->destipaddr.u8[1];
|
||||||
|
ETHBUF(uip_buf)->dest.addr[4] = UIP_IP_BUF->destipaddr.u8[2];
|
||||||
|
ETHBUF(uip_buf)->dest.addr[5] = UIP_IP_BUF->destipaddr.u8[3];
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
//Otherwise we have a real address
|
//Otherwise we have a real address
|
||||||
mac_createEthernetAddr((uint8_t *) &(ETHBUF(uip_buf)->dest.addr[0]),
|
mac_createEthernetAddr((uint8_t *) &(ETHBUF(uip_buf)->dest.addr[0]),
|
||||||
|
|
Loading…
Reference in a new issue