| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 | 
							- #include "lwip/opt.h"
 
- #include "lwip/arch.h"
 
- #include "lwip/api.h"
 
- #include "lwip/tcp.h"
 
- #include "http_server.h"
 
- #include "settings_api.h"
 
- #include "common_config.h"
 
- #include "commands_api.h"
 
- #include "bt_6701_settings.h"
 
- #ifdef PRINTF_STDLIB
 
- #include <stdio.h>
 
- #endif
 
- #ifdef PRINTF_CUSTOM
 
- #include "tinystdio.h"
 
- #endif
 
- #include <string.h>
 
- #include <stdlib.h>
 
- /**
 
-   * @brief  Обработчик http запросов
 
-   */
 
- void TCP_ServerServe(struct netconn *conn)
 
- {
 
-   struct netbuf *inbuf;
 
-   char* buf;
 
-   u16_t buflen;
 
-   char value[20];
 
-   uint8_t valueLen;  
 
-   
 
-   netconn_recv(conn, &inbuf);
 
-   
 
-   if (inbuf != NULL)
 
-   {
 
-     if (netconn_err(conn) == ERR_OK) 
 
-     {
 
-       netbuf_data(inbuf, (void**)&buf, &buflen);
 
-       
 
-       if (strncmp((char const *)buf, "GET /setMac.cgi", 15) == 0)
 
-       {
 
- 		memset(value, 0, 20);
 
-         GetParamValue(buf, "mac=", value, &valueLen);  
 
- 		
 
- 		/* Проверяем флаг ожидания MAC адреса */
 
- 		if (macWaiting) {
 
- 		  SETTINGS_SetMac(value);
 
- 		  COM_SetTestState(T1OK);
 
- 		  netconn_write(conn, "HTTP/1.0 200 OK\r\nContent-Type:text/html\r\n\r\nTrue", 47, NETCONN_NOCOPY);
 
- 		  macIsInstalled = true;
 
- 		  printf("SERNO OK\r\n");
 
- 		}
 
- 		else
 
- 		  netconn_write(conn, "HTTP/1.0 200 OK\r\nContent-Type:text/html\r\n\r\nFalse", 48, NETCONN_NOCOPY);
 
- 		  
 
- 		//file = fs_open("/STM32F4x7_files/ST.gif"); 
 
-         //netconn_write(conn, (const unsigned char*)(file->data), (size_t)file->len, NETCONN_NOCOPY);
 
-         //fs_close(file);
 
-       }   
 
-     }
 
-   }
 
-   netconn_close(conn);
 
-   netbuf_delete(inbuf);
 
- }
 
- /**
 
-   * @brief  TCP сервер
 
-   */
 
- void vTaskTcpServer(void *param)
 
- {
 
-   struct netconn *conn, *newconn;
 
-   err_t err;
 
-   
 
-   conn = netconn_new(NETCONN_TCP);
 
-   
 
-   if (conn!= NULL)
 
-   {
 
-     err = netconn_bind(conn, NULL, 80);
 
-     
 
- 	if (err == ERR_OK) {
 
-       netconn_listen(conn);
 
-       while(1) {
 
-         netconn_accept(conn, &newconn);
 
-         TCP_ServerServe(newconn);
 
-         netconn_delete(newconn);
 
-       }
 
-     }
 
-   }
 
- }
 
- /**
 
-   * @brief  Поиск значения по имени параметра
 
-   * @retval None
 
-   */
 
- uint8_t GetParamValue(char *inStr, char *paramName, char *paramValue, uint8_t *paramLen)
 
- {
 
-   char *beginValue = 0;
 
-   char *endValue = 0;
 
-   int  len = 0;
 
-   char *strPtr = 0;
 
-   
 
-   strPtr = strstr(inStr, paramName);
 
-   
 
-   if (strPtr != 0)
 
-   {
 
-     beginValue = strpbrk(strPtr,"=");
 
-     endValue = strpbrk(strPtr,"&");
 
-     if (endValue == 0)
 
-       endValue = strpbrk(strPtr," ");
 
-     len = endValue - beginValue - 1;
 
-     strncpy(paramValue, beginValue + 1, len);
 
-     *endValue = '0';
 
-     *beginValue = '0';
 
- 	*paramLen = len;
 
- 	return 1;
 
-   }
 
-   else
 
-   {	
 
- 	*paramLen = 0;
 
- 	return 0;
 
-   }
 
- }
 
 
  |