Mearm colorsorting with web application

Dependencies:   TCS3200

main.cpp

Committer:
pierre11
Date:
2017-11-30
Revision:
4:62b6eaf030ab
Parent:
3:f5e5af908b55
Child:
5:36f1e4e1a427

File content as of revision 4:62b6eaf030ab:

#if !FEATURE_LWIP
    #error [NOT_SUPPORTED] LWIP not supported for this target
#endif

#include "mbed.h"
#include "EthernetInterface.h"
#include "TCPServer.h"
#include "TCPSocket.h"
uint8_t http[1024];
//static   uint8_t resp[1024];
static void SendWebPage(float temperature);
#define HTTP_STATUS_LINE "HTTP/1.0 200 OK"
#define HTTP_HEADER_FIELDS "Content-Type: text/html; charset=utf-8"
#define HTTP_MESSAGE_BODY ""                                     \
"<html>" "\r\n"                                                  \
"  <body style=\"display:flex;text-align:center\">" "\r\n"       \
"    <div style=\"margin:auto\">" "\r\n"                         \
"      <h1>Hello World</h1>" "\r\n"                              \
"      <p>It works !</p>" "\r\n"                                 \
"    </div>" "\r\n"                                              \
"  </body>" "\r\n"                                               \
"</html>"

#define HTTP_RESPONSE HTTP_STATUS_LINE "\r\n"   \
                      HTTP_HEADER_FIELDS "\r\n" \
                      "\r\n"                    \
                      HTTP_MESSAGE_BODY "\r\n"
                      
                     

int main()
{
    float v = 7;
    printf("Basic HTTP server example\n");
    
    
    EthernetInterface eth;
    eth.connect();
    
    printf("The target IP address is '%s'\n", eth.get_ip_address());
    
    TCPServer srv;
    TCPSocket clt_sock;
    SocketAddress clt_addr;
    
    /* Open the server on ethernet stack */
    srv.open(&eth);
    
    /* Bind the HTTP port (TCP 80) to the server */
    srv.bind(eth.get_ip_address(), 80);
    
    /* Can handle 5 simultaneous connections */
    srv.listen(5);
   
    while (true) {
        
        SendWebPage(v);
       srv.accept(&clt_sock, &clt_addr);
        printf("accept %s:%d\n", clt_addr.get_ip_address(), clt_addr.get_port());
        //clt_sock.send(HTTP_RESPONSE, strlen(HTTP_RESPONSE));
         clt_sock.send(http, strlen((char *)http));   
        v++;
       
    }
    
}

static void SendWebPage( float temperature)
{
  uint8_t  temp[50];
  //uint16_t SentDataLength;
  //WIFI_Status_t ret;
  
  /* construct web page content */
  strcpy((char *)http, (char *)"HTTP/1.0 200 OK\r\nContent-Type: text/html\r\nPragma: no-cache\r\n\r\n");
  strcat((char *)http, (char *)"<html>\r\n<body>\r\n");
   strcat((char *)http, (char *)"<head>\r\n<meta http-equiv=""refresh"" content=""30"">\r\n</head>\r\n");
  //strcat((char *)http, (char *));
  //strcat((char *)http, (char *)"</head>\r\n");
  strcat((char *)http, (char *)"<title>STM32 Web Server</title>\r\n");
  strcat((char *)http, (char *)"<h2>InventekSys : Web Server using Es-Wifi with STM32</h2>\r\n");
  strcat((char *)http, (char *)"<br /><hr>\r\n");
  strcat((char *)http, (char *)"<p><form method=\"POST\"><strong>Temp: <input type=\"text\" size=2 value=\"");
  sprintf((char *)temp, "%f", temperature);
  strcat((char *)http, (char *)temp);
  strcat((char *)http, (char *)"</body>\r\n</html>\r\n");
  
  //ret = WIFI_SendData(0, (uint8_t *)http, strlen((char *)http), &SentDataLength, WIFI_WRITE_TIMEOUT); 
  
 // if((ret == WIFI_STATUS_OK) && (SentDataLength != strlen((char *)http)))
  //{
   // ret = WIFI_STATUS_ERROR;
 // }
    
 // return 0;
}