| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 | 
							- /********************************* (C) РОТЕК ***********************************
 
-  * @module  init_task
 
-  * @file    init_task.c
 
-  * @version 1.0.0
 
-  * @date    XX.XX.XXXX
 
-  * $brief   Инициализация всех задач.
 
-  *******************************************************************************
 
-  * @history     Version  Author         Comment
 
-  * XX.XX.XXXX   1.0.0    Telenkov D.A.  First release.
 
-  *******************************************************************************
 
-  */
 
- #include "init_task.h"
 
- #include "common_config.h"   
 
- #include "wdg.h"
 
- #include "usart.h"
 
- //#include "port_microrl.h"
 
- #include "led.h"
 
- #include "rng.h"
 
- #include "buttons.h"
 
- #include "jumper.h"
 
- #include "rtc.h"
 
- #include "log.h"
 
- #include "stm32f4x7_eth_bsp.h"
 
- #include "netconf.h"
 
- #include "udp_netsetting.h"
 
- #include "snmp_api.h"
 
- #ifdef CLI_ENABLE
 
- #include "cli.h"
 
- #endif
 
- #ifdef TELNET_ENABLE
 
- #include "telnet_server.h"
 
- #endif
 
- #ifdef SSH_ENABLE
 
- #include "server.h"
 
- #endif
 
- #ifdef HTTP_SERVER_ENABLE
 
- #include "http_server.h"
 
- #elif defined SSL_SERVER_ENABLE
 
- #include "my_ssl_server.h"
 
- #endif
 
- #include "sntp_api.h"
 
- #include "settings_api.h"
 
- #include "main.h"
 
- #include "trap_api.h"
 
- #include "megatec.h"
 
- #include "testing.h"
 
- #include "ups_monitor.h"
 
- //#include "ups_params.h"
 
- //#include "ups_monitor.h"
 
- #include "lwip/stats.h"
 
- #ifdef RADIUS_SERVER_ENABLE
 
- #include "radius_user.h"
 
- #include "cert_req.h"
 
- #include "parse_rsa.h"
 
- #endif
 
- #ifdef PRINTF_STDLIB
 
- #include <stdio.h>
 
- #endif
 
- #ifdef PRINTF_CUSTOM
 
- #include "tinystdio.h"
 
- #endif
 
- #include "FreeRTOS.h"
 
- #include "task.h" 
 
- extern bool dhcp;	
 
- /**
 
-   * @brief  Общая структура настроек
 
-   */
 
- extern SETTINGS_t sSettings;
 
- #ifdef DEBUG_FREERTOS
 
- static void vTaskDebug(void *pvParameters);
 
- #endif
 
- /**
 
-   * @brief  Разовая синхронизация времени при старте контроллера
 
-   */
 
- TaskHandle_t xHandleSntpOnceSinhro = NULL;
 
- /**
 
-   * @brief  Задача инициализации. Запускает основные задачи девайса и умирает.
 
-   * @retval 
 
-   */
 
- void InitTask(void *params)
 
- {
 
- // -----------------------------------------------------------------------------    
 
-   InitUSART();
 
-   log_init(false);
 
-   ups_megatec_init();
 
- // -----------------------------------------------------------------------------    
 
-   //SETTINGS_SetAllDefault();
 
-   //SETTINGS_Save();
 
-   SETTINGS_Load();
 
-   if(set_mode_jumper()){
 
-     SETTINGS_SetServiceDef();
 
-     SETTINGS_Save();
 
-     log_event_data(LOG_PSW_CHANGE, "Сброс к заводскому");
 
-   }
 
- // -----------------------------------------------------------------------------    
 
-   
 
- // -----------------------------------------------------------------------------  
 
- #ifdef USART_DEBUG_ENABLE
 
-   InitUSART();
 
-  // MICRORL_Init();
 
- #endif  
 
- // -----------------------------------------------------------------------------    
 
- // -----------------------------------------------------------------------------  
 
- #ifdef LED_ENABLE
 
-   LED_Init();
 
-   /* Простая мигалка для подтверждения живучести контроллера */
 
-   xTaskCreate(vTaskLedBlink, "LED_Blink", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
 
- #endif  
 
- // -----------------------------------------------------------------------------    
 
-   
 
- // -----------------------------------------------------------------------------  
 
- #ifdef BUTTON_ENABLE  
 
-   BUTTON_Init();
 
-   xTaskCreate(vTaskButtons, "Buttons", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
 
- #endif
 
- // -----------------------------------------------------------------------------    
 
-   
 
- // -----------------------------------------------------------------------------    
 
- #ifdef RTC_ENABLE  
 
-   TM_RTC_Init(TM_RTC_ClockSource_External);  
 
- #endif
 
- // -----------------------------------------------------------------------------      
 
-   
 
- // -----------------------------------------------------------------------------
 
- #ifdef UPS_ENABLE
 
-   xTaskCreate(UPS_Monitor, "UPS_Monitor", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
 
- #endif
 
- // -----------------------------------------------------------------------------  
 
-   
 
- // -----------------------------------------------------------------------------    
 
- /* Random number generator */
 
-   RNG_Init();
 
- // -----------------------------------------------------------------------------  
 
- // -----------------------------------------------------------------------------
 
- #ifdef NET_ENABLE
 
-   ETH_BSP_Config();
 
-   LwIP_Init();
 
- #ifdef HTTP_SERVER_ENABLE
 
- 	  HTTP_Init();
 
- #ifdef SSL_SERVER_ENABLE
 
- 	   HTTPS_Init();
 
- //#define SSL_TASK_PRIO   ( configMAX_PRIORITIES - 3 )
 
- 	   xTaskCreate(ssl_server, "SSL", 24*configMINIMAL_STACK_SIZE, NULL, SSL_TASK_PRIO, NULL);
 
- #endif
 
- #endif
 
- 	   // UDP for net settings 
 
- 	   if(strncmp(sSettings.sFlags.testState, "T2OK", 4)){
 
- 		   xTaskCreate(vTaskTesting, "Testing", 2*configMINIMAL_STACK_SIZE,
 
-                 NULL, tskIDLE_PRIORITY, NULL);
 
- 	   }
 
- 	   else{
 
- 		   UDP_netsetting_init();
 
- 	   }
 
- #ifdef CLI_ENABLE
 
-     cli_init();
 
- #endif
 
- #if defined TELNET_ENABLE
 
- 	   telnet_server_init();
 
- #ifdef SSH_ENABLE
 
- 	   ssh_server_init();
 
- #endif
 
- #endif
 
-   
 
- #ifdef SNMP_ENABLE
 
-   SNMP_Init();
 
-   xTaskCreate(snmp_trap_tread, "snmpTrapTest", 4*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
 
- #endif	
 
- #endif
 
-   
 
- // -----------------------------------------------------------------------------      
 
- /* SNTP */
 
-   SNTP_Init();
 
-   xTaskCreate(vTaskOnceSynchro, "sntpOnceSinhro", 2*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandleSntpOnceSinhro);
 
-   xTaskCreate(vTaskPeriodicSynchro, "sntpPeriodicSinhro", 2*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
 
- // -----------------------------------------------------------------------------  
 
- // -----------------------------------------------------------------------------  
 
- // Тестирование
 
-     
 
-   // Тест таблицы трапов  
 
-   //xTaskCreate(vTestTrap, "Trap_test", 2*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
 
- // -----------------------------------------------------------------------------      
 
- // -----------------------------------------------------------------------------        
 
- #ifdef DEBUG_FREERTOS
 
-   xTaskCreate(vTaskDebug, "Debug", 800, NULL, tskIDLE_PRIORITY, NULL);
 
- #endif  
 
- // -----------------------------------------------------------------------------      
 
-   log_event_data(LOG_TURN_ON, " ");
 
-   /* Контроль успешной загрузки. Сброс флага bootry */
 
-   /* Сброс флага и сохранение нового значения во флеш памяти происходт после
 
-      некоторой задержки для запуска всех задач */
 
-   vTaskDelay(4000);
 
-  
 
-   SETTINGS_ResetBootTry();
 
-   
 
-   // Отправка трапа о перезагрузке в случае статического IP
 
-  /* if (!dhcp)
 
-     SNMP_SendUserTrap(DEVICE_REBOOTED);
 
-   
 
-   printf("Hello world\r\n");*/
 
-   
 
-   vTaskDelete(NULL);
 
-      taskYIELD();
 
- }
 
- #ifdef DEBUG_FREERTOS
 
- static void vTaskDebug(void *pvParameters) 
 
- {
 
-   char msg[700];
 
-   for(;;)
 
-   {
 
- 	/*vTaskList(msg);
 
- 	DBG printf(msg);
 
- 	DBG printf("\n\r\r\n");*/
 
- #if LWIP_STATS
 
- 	stats_display();
 
- 	DBG printf("\r\n\r\n");
 
- #endif
 
- 	vTaskDelay(5000);
 
-   }   
 
- }
 
- #endif
 
- /********************************* (C) РОТЕК **********************************/
 
 
  |