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>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FF9900>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "</table>"
#define Table1 "<table bordercolor=#00CC00 border=2>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FF9900>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "</table>"
#define Table2 "<table bordercolor=#00CC00 border=2>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FF9900>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "</table>"
#define Table3 "<table bordercolor=#00CC00 border=2>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FF9900>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "</table>"

#define Table4 "<table bordercolor=##00CC00 border=2>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FF9900>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "</table>"
#define Table5 "<table bordercolor=##00CC00 border=2>"\
               "<tr><td bgcolor=#FF9900>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "</table>"

#define NoLed "<table bordercolor=#008000 border=2>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</td></tr>"\
               "<tr><td bgcolor=#FFFFF>&nbsp;&nbsp;&nbsp;</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>&nbsp&nbsp&nbsp;<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 + -
显示快捷键?