本帖最后由 can123dao 于 2013-7-10 09:08 编辑
/* * 函数名:http_recv * 描述 :http接收到数据后的回调函数 * 输入 :tcp_arg设置的参数、tcp_pcb、pcb、err * 输出 :err * 调用 :内部调用 */
static err_t http_recv(void *arg, struct tcp_pcb *pcb,struct pbuf *p,err_t err)
{
char * data = NULL;
char *UserName =NULL;
char *PassWord =NULL;
char *LED_CMD =NULL;
char *ch =NULL;
char *k;
char *temp;
int t;
data = p->payload; //把接收到的数据指针交给data
if (err == ERR_OK && p != NULL) //判断是否非空
{
if(strncmp(data,"GET",3)==0)
{
/*第一次与服务器连接,打开登录页面,未输入登录信息*/
tcp_write(pcb,http_html_hdr,sizeof(http_html_hdr),0); /* 发送http协议头部信息 */
tcp_write(pcb,login,sizeof(login),0); /* 发送登录网页信息 */
}
else if(strncmp(data,"POST",4)==0)
{
LED_CMD = strstr(data,"LED_CTRL=");
UserName = strstr(data,"UserName="); //截取UserName=
PassWord = strstr(UserName,"PassWord="); //截取PassWord=
if(UserName!=NULL && PassWord!=NULL) /*输入了用户名和密码*/
{
ch = strchr(UserName,'&'); //把&替换为‘\0’
*ch = '\0';
UserName +=sizeof("UserName=")-1; //提取用户名。sizeof字符串包括终止符‘\0’
PassWord += sizeof("PassWord=")-1; //提取密码
if(strcmp(UserName,"wildfire")==0 && strncmp(PassWord,"123456",6)==0) /*输入的用户名和密码正确*/
{
LED1(ON);
// printf("\r\n提取出的用户名 =%s\r\n提取出的密码 =%s",UserName,PassWord);
/*自己试图这样修改 */ k=strstr(led_ctrl_on,"℃");
/*自己试图这样修改 */ t=get_temperature();
/*自己试图这样修改 */ sprintf(temp,"%d.%d",t/10,t%10);
/*自己试图这样修改 */ strncpy(k-4,temp,4);
tcp_write(pcb,http_html_hdr,sizeof(http_html_hdr),0); /* 发送http协议头部信息 */
tcp_write(pcb,led_ctrl_on,sizeof(led_ctrl_on),0); /* 发送led控制网页信息 */
}
后面的大同小异。
const static uint8_t http_html_hdr[] = HTTP_HEAD; //http文件头
const static uint8_t login[]= LOGIN; //要显示的网页
const static uint8_t led_ctrl_on[] =LED_CTRL_ON;
const static uint8_t led_ctrl_off[] =LED_CTRL_OFF;
/*网页,以数组形式存储。LED控制页面*/
#define LED_CTRL_ON "\
<html>\
<head>\
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">\
<title>LWIP移植实验 </title>\
</head>\
</body>\
<br><center><h2>STM32开发平台</h2>\
<br><center><b>***********STM32开发板STM32F103-ENC28J60-移植LWIP,web服务器测试***********</b>\
<br><br><br><center><b>***********!!!登录成功!!!***********</b>\
<br><br><br>LED状态: <input type=\"button\" id=\"b1\" style=\"background:#0000FF\" value=\"亮\" > \
<form name=\"input\" action=\"/html/html_form_action.asp\" method=\"post\">\
<br>点亮LED1<input type=\"radio\" name=\"LED_CTRL\" value=\"ON\" checked=\"checked\">\
<br/>\
<br>关闭LED1<input type=\"radio\" name=\"LED_CTRL\" value=\"OFF\">\
<br><br><center><input type =\"submit\" value =\"控制\">\
<br><br><strong>CPU(STM32)温度:<span style="color:red;">30.5℃ </span> /********想这样改*******/
</body> \
</html>\
原来的移植过来是能行的,就是改了一直改不出来,不知道该怎么弄了,想找个人帮忙看一下。谢谢
|