http.c
来自「最新版IAR FOR ARM(EWARM)5.11中的代码例子」· C语言 代码 · 共 152 行
C
152 行
//-----------------------------------------------------------------------------
// HTTP
//-----------------------------------------------------------------------------
#include <string.h>
#include "tcpip_stack.h"
#include "tcp.h"
#include "hal_type.h"
#include "http.h"
#include "rusb.h"
#include "stdio.h"
#include "hal_gpio.h"
extern tOHCI *ohci;
#define Table0 "<table bordercolor=#00CC00 border=2>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FF9900> </td></tr>"\
"</table>"
#define Table1 "<table bordercolor=#00CC00 border=2>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FF9900> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"</table>"
#define Table2 "<table bordercolor=#00CC00 border=2>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FF9900> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"</table>"
#define Table3 "<table bordercolor=#00CC00 border=2>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FF9900> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"</table>"
#define Table4 "<table bordercolor=##00CC00 border=2>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FF9900> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"</table>"
#define Table5 "<table bordercolor=##00CC00 border=2>"\
"<tr><td bgcolor=#FF9900> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"</table>"
#define NoLed "<table bordercolor=#008000 border=2>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"<tr><td bgcolor=#FFFFF> </td></tr>"\
"</table>"
char *Table[6]={Table5, Table4, Table3, Table2, Table1, Table0};
//-----------------------------------------------------------------------------
//Name:Receive_HTTP()
//Funcionality: HTTP server service routine
//-----------------------------------------------------------------------------
void Receive_HTTP(EthernetFrame *frame){
tcp_hdr *rx_tcp_hdr = (tcp_hdr *)((u8 *)frame + ETHER_HEADER_LENGTH + IP_HEADER_LENGTH);
char buf3[1400];
char *p_buf;
int i;
p_buf = NoLed;
//set the correct LED table
for(i=0; i<6; i++){
if (ValBit(~GPIO->DIN,i)) p_buf = Table[i];
}
if (ohci->device->DeviceDescriptor0 == NULL){
sprintf(buf3,"HTTP/1.0 200 OK\r\nServer: SPEArNetweb\r\nContent-Type: text/html\r\n\r\n"
"<html><head><title>SPEArNet MicroWeb</title></head>"
"<script language=JavaScript><!--\n"
"function doLoad()\n"
"{setTimeout('Reload()',5000);}\n"
"function Reload(){window.location.reload();}\n"
"//-->\n"
"</script>"
"<body onLoad=\"doLoad()\" bgcolor=#FFFFFF>"
"<center><H1><FONT color=red>SPEAr<sup>TM</sup>NET</FONT><FONT color=black size=4><BR>USB 2.0 & Ethernet 10/100</font></H1></center><BR>"
"<center><big>Device not connected</big></center>");
}
else
{
sprintf(buf3,"HTTP/1.0 200 OK\r\nServer: SPEArNet\r\nContent-Type: text/html\r\n\r\n"
"<html><head><title>SPEArNetweb</title></head>"
"<script language=JavaScript><!--\n"
"self.resizeTo(400,400);"
"function doLoad()\n"
"{setTimeout('Reload()',5000);}\n"
"function Reload(){window.location.reload();}\n"
"//-->\n"
"</script>"
"<body onLoad=\"doLoad()\" bgcolor=00FFFF>"
"<center><H1><FONT color=red>SPEAr<sup>TM</sup>Net</FONT><FONT color=black size=4><BR>USB 2.0 & Ethernet 10/100</font></H1></center>"
"<CENTER><TABLE cellpadding=10 border=1><TR><TD><big>Device connected</big>   <BR><BR>"
"<TABLE><SMALL>"
"<TR><TD>bcdUSB<TD>0x%x"
"<TR><TD>idVendor<TD>0x%x"
"<TR><TD>idProduct<TD>0x%x"
"<TR><TD>bcdDevice<TD>0x%x"
"<TR><TD>iManufacturer<TD>0x%x"
"<TR><TD>iProduct<TD>0x%x"
"</SMALL></TABLE><TD><CENTER>%s<BR><small>On-board LEDs mirror</small></CENTER></TD></TABLE></CENTER></body></html>"
,(int)ohci->device->DeviceDescriptor0->bcdUSB,
(int)ohci->device->DeviceDescriptor1->idVendor,
(int)ohci->device->DeviceDescriptor1->idProduct,
(int)ohci->device->DeviceDescriptor1->bcdDevice,
(int)ohci->device->DeviceDescriptor1->iManufacturer,
(int)ohci->device->DeviceDescriptor1->iProduct,
p_buf);
}
u16 len = strlen(buf3);
if (rx_tcp_hdr->control & TCP_ACK | TCP_SYN){
Tx_TCP_Frame(frame, TCP_ACK | TCP_PSH, (u8 *)buf3, len);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?