Преглед изворни кода

Добавили задержку перед стартом testing. Увеличил стек задачи vTaskTesting

TelenkovDmitry пре 7 година
родитељ
комит
6cc2b88216
3 измењених фајлова са 22 додато и 5 уклоњено
  1. 10 0
      modules/Ethernet/netconf.c
  2. 10 3
      modules/testing/testing.c
  3. 2 2
      user/init_task.c

+ 10 - 0
modules/Ethernet/netconf.c

@@ -55,6 +55,8 @@ TaskHandle_t xHandleWebReinit = NULL;
 
 bool dhcp = false;	
 
+bool isIpReceived = false;
+
 void LwIP_Init(void)
 {
   struct ip_addr ipaddr;
@@ -90,6 +92,8 @@ void LwIP_Init(void)
       netif_add(&xnetif, &ipaddr, &netmask, &gw, NULL, &ethernetif_init, &tcpip_input);
       netif_set_default(&xnetif);
       netif_set_up(&xnetif); 
+      
+      isIpReceived = true;
     }
   
 	if (sSettings.sWebTempParams.dhcpEnable) {
@@ -130,6 +134,8 @@ void LwIP_Init(void)
       netif_add(&xnetif, &ipaddr, &netmask, &gw, NULL, &ethernetif_init, &tcpip_input);
       netif_set_default(&xnetif);
       netif_set_up(&xnetif); 
+      
+      isIpReceived = true;
     }
   
 	if (sSettings.sWebParams.dhcpEnable) {
@@ -216,6 +222,8 @@ void LwIP_DHCP_task(void * pvParameters)
 		  PRINT_USART(ipaddr_ntoa(&gw));
 		  PRINT_USART("\n\r");
           
+          isIpReceived = true;
+          
 		  vTaskDelay(50);
 		  /* Установлен динамический IP, можно отправить трап о перезагрузке устройства */
 		//  SNMP_SendUserTrap(DEVICE_REBOOTED);
@@ -253,6 +261,8 @@ void LwIP_DHCP_task(void * pvParameters)
 			PRINT_USART(ipaddr_ntoa(&ipaddr));
 		    PRINT_USART("\n\r");
 
+            isIpReceived = true;
+            
 			vTaskDelay(50);
 			/* Установлен статический IP, можно отправить трап о перезагрузке устройства */
 		   // SNMP_SendUserTrap(DEVICE_REBOOTED);

+ 10 - 3
modules/testing/testing.c

@@ -47,6 +47,7 @@ bool fServer = false;
 char ID[33];
 
 extern SETTINGS_t   sSettings;       // Общая структура настроек
+extern bool isIpReceived;
 
 /**
   * @brief  Тестирование
@@ -54,15 +55,21 @@ extern SETTINGS_t   sSettings;       // Общая структура настр
 // TODO Убрать заглушки
 void vTaskTesting(void *params)
 {
-	uint8_t len;
+  uint8_t len;
+  
+  while (!isIpReceived) {
+    vTaskDelay(100);
+  }    
+  
   for (;;)
-  {
+  {    
 	  //printf("Start testing task\r\n");
 	  memset(ID, 0, 33);
 	  /* Читаем ID */
 	  GetSTM32IDStr(ID, &len);
 	  
 	  /* Отправляем запрос */
+      vTaskDelay(3000);
 	  TEST_SendData();
 	  
 	  /* Ждем timeout и высылаем ответ на тестер */
@@ -99,7 +106,7 @@ void TEST_SendData(void)
    
   /* Отправляем сообщение на сервер по UDP */
   memset(msg, 0, MSG_LEN);
-  
+ 
   conn = netconn_new( NETCONN_UDP );
   
   if (conn!= NULL)

+ 2 - 2
user/init_task.c

@@ -142,7 +142,7 @@ void InitTask(void *params)
   if(strncmp(sSettings.sFlags.testState, "T2OK", 4)){
 
 	  HTTP_Init();
-  	  xTaskCreate(vTaskTesting, "Testing", configMINIMAL_STACK_SIZE,
+  	  xTaskCreate(vTaskTesting, "Testing", 2*configMINIMAL_STACK_SIZE,
                 NULL, tskIDLE_PRIORITY, NULL);
     }
   else{
@@ -150,7 +150,7 @@ void InitTask(void *params)
 #define SSL_TASK_PRIO   ( configMAX_PRIORITIES - 3 )
 	   xTaskCreate(ssl_server, "SSL", 10*configMINIMAL_STACK_SIZE, NULL, SSL_TASK_PRIO, NULL);
 #endif
-	   /* UDP for net settings */
+	   // UDP for net settings 
 	  	  UDP_netsetting_init();
   }