
Added by emanueleb on July-17-2007, 7:02 am
<table class="status_table"> <tr><th colspan="2">Temperature</th></tr> <tr><td>System</td><td>%00°C</td></tr> <tr><th colspan="2">LED Status</th></tr> <tr><td>LED 1</td><td>%01</td></tr> <tr><td>LED 2</td><td>%02</td></tr> </table>
<html>
<head>
<title>FTPMicro: Temperature Example</title>
<script type="text/javascript" src="/ahah.js"></script>
<script type="text/javascript">
function refresh() {
if (lo) return true; // stop loading when another request is in progress
noloadAHAH('/Status.cgi','tempdiv','GET'); // request status.cgi and then load it into "tempdiv"
}
window.setInterval("refresh()",2000);
</script>
<link rel="stylesheet" type="text/css" media="all" href="/style.css" />
</head>
<body>
<h1>FTPMicro</h1>
<div class="bar">
The world smallest WebServer and FtpClient with DHCP and UDP features
</div>
<div id="tempdiv" class="left">
Loading...
</div>
<div class="left">
<form>
<table class="status_table">
<tr><th>LED Toggle</th></tr>
<tr><td><input type="submit" value="LED 1" onclick="javascript: noloadAHAH('/Status.cgi?t=1','tempdiv','GET'); return false;"></td></tr>
<tr><td><input type="submit" value="LED 2" onclick="javascript: noloadAHAH('/Status.cgi?t=2','tempdiv','GET'); return false;"></td></tr>
</table>
</form>
</div>
</body>
</html>

static char Temperature[8];
static void ProcessIO(void)
{
signed long temp;
// Start A/D conversion
ADCON0bits.GO = 1;
// Wait until A/D conversion is done
while(ADCON0bits.GO);
temp = (long)(*(WORD*)(&ADRESL)) * 322 - 50000; // not a precise conversion...
itoa(temp/1000, Temperature);
}
void HTTPExecCmd(BYTE** argv, BYTE argc)
{
if (argv[1][0] == 't') {
switch (argv[2][0] - '0') {
case CMD_LED1 :
LED1_IO = !LED1_IO;
break;
case CMD_LED2 :
LED2_IO = !LED2_IO;
break;
}
}
}
WORD HTTPGetVar(BYTE var, WORD ref, BYTE* val)
{
switch (var) {
case VAR_LED1 :
*val = LED1_IO ? '1' : '0';
break;
case VAR_LED2 :
*val = LED2_IO ? '1' : '0';
break;
case VAR_TEMPERATURE:
*val = Temperature[(BYTE)ref];
if(Temperature[(BYTE)ref] == '\0')
return HTTP_END_OF_VAR;
else if(Temperature[(BYTE)++ref] == '\0' )
return HTTP_END_OF_VAR;
return ref;
default : break;
}
return HTTP_END_OF_VAR;
}
#define LED1_IO (LATAbits.LATA0) #define LED1_TRIS (TRISAbits.TRISA0) #define LED2_IO (LATAbits.LATA1) #define LED2_TRIS (TRISAbits.TRISA1)