| 
					
				 | 
			
			
				@@ -30,11 +30,22 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 struct netif xnetif; 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/**
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * @brief  Флаг ининциализации Eth интерфейса
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+unsigned char eth_ready_flag = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /**
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   * @brief  Задача получения сетевый параметров по DHCP протоколу
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 TaskHandle_t xHandleDHCP = NULL;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/**
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * @brief  Общая структура настроек
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+extern SETTINGS_t sSettings;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 void LwIP_Init(void)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 {
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -62,6 +73,11 @@ void LwIP_Init(void) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 tskIDLE_PRIORITY + 2, &xHandleDHCP);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void init_get_ip_address_controller(void){
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 xTaskCreate(LwIP_DHCP_task, "DHCPClient", configMINIMAL_STACK_SIZE * 2, NULL,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	                tskIDLE_PRIORITY + 2, &xHandleDHCP);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /**
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   * @brief  LwIP_DHCP_Process_Handle
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   * @param  None
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -117,6 +133,11 @@ void LwIP_DHCP_task(void * pvParameters) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		  printf("ETH OK\r\n");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		  
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  /* Установлен динамический IP. *
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		   * Ждем инициализацию интерфейса и выставляем флаг готовности. */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  vTaskDelay(2000);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  eth_ready_flag = 1;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           vTaskDelete(xHandleDHCP);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         else
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -124,15 +145,38 @@ void LwIP_DHCP_task(void * pvParameters) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           /* DHCP timeout */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if (dhcpTry++ > MAX_DHCP_TRIES)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            DHCP_state = DHCP_TIMEOUT;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            /* Stop DHCP */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            dhcp_stop(&xnetif);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			/* Сообщение о неудачной попытке получить IP */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			printf("ETH FAIL\r\n");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			vTaskDelete(xHandleDHCP);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              DHCP_state = DHCP_TIMEOUT;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              /* Stop DHCP */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              dhcp_stop(&xnetif);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  		/*	if (sSettings.sFlags.netsettingsChanged == true)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  		    {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  			  ipaddr.addr = ipaddr_addr(sSettings.sWebTempParams.ip);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  	          netmask.addr = ipaddr_addr(sSettings.sWebTempParams.mask);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  	          gw.addr = ipaddr_addr(sSettings.sWebTempParams.gate);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  			}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  			else
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  			{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  			  ipaddr.addr = ipaddr_addr(sSettings.sWebParams.ip);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  	          netmask.addr = ipaddr_addr(sSettings.sWebParams.mask);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  	          gw.addr = ipaddr_addr(sSettings.sWebParams.gate);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  			}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              //Static address used
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              netif_set_addr(&xnetif, &ipaddr , &netmask, &gw);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              printf("DHCP timeout\n\r");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              printf("\n\rStatic IP address\n\r");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  			printf(ipaddr_ntoa(&ipaddr));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  		    printf("\n\r");*/
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  		    /* Установлен динамический IP. *
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  		    * Ждем инициализацию интерфейса и выставляем флаг готовности. */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  		    vTaskDelay(2000);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  		    eth_ready_flag = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  			vTaskDelete(xHandleDHCP);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -141,7 +185,7 @@ void LwIP_DHCP_task(void * pvParameters) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       default: break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    vTaskDelay(250);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    vTaskDelay(1250);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }   
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 |