Explorar o código

add macros add settings

balbekova %!s(int64=5) %!d(string=hai) anos
pai
achega
3daa1487f8

+ 9 - 283
modules/settings_api.c

@@ -87,28 +87,6 @@ void SETTINGS_SetTempWebParamsDef(void)
 	  sSettings.sWebTempParams.dhcpEnable = 0;
 }
 
-/**
-  * @brief  Установить параметры SNMP по умолчанию
-  */
-void SETTINGS_SetSnmpDef(void)
-{
-  strcpy(sSettings.sSnmp.sysDesc.description, "");
-  sSettings.sSnmp.sysDesc.len = 0;
-  strcpy(sSettings.sSnmp.readCommunity, "public");
-  strcpy(sSettings.sSnmp.writeCommunity, "public");
-  strcpy(sSettings.sSnmp.sysContact.contact, "");
-  sSettings.sSnmp.sysContact.len = 0;
-  strcpy(sSettings.sSnmp.sysName.name, "");
-  sSettings.sSnmp.sysName.len = 0;
-  strcpy(sSettings.sSnmp.sysLocation.location, "");
-  sSettings.sSnmp.sysLocation.len = 0;
-  strcpy(sSettings.sSnmp.managerIP, "0.0.0.0");
-  strcpy(sSettings.sSnmp.managerIP2, "0.0.0.0");
-  strcpy(sSettings.sSnmp.managerIP3, "0.0.0.0");
-  strcpy(sSettings.sSnmp.managerIP4, "0.0.0.0");
-  strcpy(sSettings.sSnmp.managerIP5, "0.0.0.0");
-}
-
 /**
   * @brief  Установить Информацию об устройстве по умолчанию
   */
@@ -135,41 +113,6 @@ void SETTINGS_SetInfoDef(void)
   strcpy(sSettings.sInfo.comments, "");
 }  
 
-/**
-  * @brief  Настройки ИБП по умолчанию
-  */
-void SETTINGS_SetUPSSettingsDef(void)
-{
-  sSettings.UPS_Setting.Ucellmin = 1.67;
-  sSettings.UPS_Setting.Ucellmax = 2.27;
-#ifdef HARDWARE_BT6709
-  sSettings.UPS_Setting.Uakb = 24;
-  sSettings.UPS_Setting.ups_power = 1000;
-  sSettings.UPS_Setting.set_data = 0;
-  sSettings.UPS_Setting.life_time = 5;
-  sSettings.UPS_Setting.common_capacity = 9;
-#endif
-  sSettings.UPS_Setting.type_ups = ups_kestar;
-}
-
-/**
-  * @brief  Установить наcтройки менеджера Аварий по умолчанию
-  */
-void SETTINGS_SetAlarmManagerDef(void)
-{
-	sSettings.sAlarmManager.load_range.high = 70.0;
-	sSettings.sAlarmManager.load_range.low = 0;
-	sSettings.sAlarmManager.load_range.hyst = 1;
-
-	sSettings.sAlarmManager.ac_output_range.high = 250.0;
-	sSettings.sAlarmManager.ac_output_range.low = 150.0;
-	sSettings.sAlarmManager.ac_output_range.hyst = 20.0;
-
-	sSettings.sAlarmManager.Temprature_range.high = 70.0;
-	sSettings.sAlarmManager.Temprature_range.low = -40.0;
-	sSettings.sAlarmManager.Temprature_range.hyst = 1;
-}
-
 /**
   * @brief  Установить флаги по умолчанию
   */
@@ -178,197 +121,16 @@ void SETTINGS_SetFlagsDef(void)
   sSettings.sFlags.netsettingsChanged = false;
 }
 
-/**
-  * @brief  Установить значение сервисных настроек по умолчанию
-  */
-void SETTINGS_SetServiceDef(void)
-{
-    uint8_t user_id;
-
-    for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
-        switch (user_id) {
-        /* First users in the system is always ADMIN.
-         * Others are USER */
-        case 0:
-            sSettings.sAuth[user_id].level = ADMIN;
-            strcpy(sSettings.sAuth[user_id].login, "admin");
-#if defined HARDWARE_BT6707 || HARDWARE_BT6709
-            strcpy(sSettings.sAuth[user_id].password, "12345");
-#elif HARDWARE_BT6703
-            strcpy(sSettings.sAuth[user_id].password, "R04ekR4MP2");
-#endif
-            break;
-        case 1:
-        default:
-        	sSettings.sAuth[user_id].level = USER;
-            strcpy(sSettings.sAuth[user_id].login, "user");
-#if defined HARDWARE_BT6707 || HARDWARE_BT6709
-            strcpy(sSettings.sAuth[user_id].password, "1234");
-#elif HARDWARE_BT6703
-            strcpy(sSettings.sAuth[user_id].password, "R03ekR4MP2");
-#endif
-            break;
-        }
-    }
-}
-
-/**
-  * @brief  Установить параметры SNTP по умолчанию
-  */
-void SETTINGS_SetSntpDef(void)
-{
-  sSettings.sSNTP.sntpEnable = true;
-  strcpy(sSettings.sSNTP.ip, "88.147.254.235");
-  sSettings.sSNTP.timeZone = 3.0;
-  strcpy(sSettings.sSNTP.data, "none");
-}
-
-#ifndef HARDWARE_BT6709
-/**
-  * @brief  Установить параметры настроек сухих контактов / реле по умолчанию
-  */
-void SETTINGS_SetINOUTSDef(void)
-{
-#if defined HARDWARE_BT6707
-	sSettings.sInOuts.ro_type_source[0] = AC_PRESENT;
-	sSettings.sInOuts.ro_type_source[1] = DC_PRESENT;
-	sSettings.sInOuts.ro_type_source[2] = CHARGE_AKB;
-#elif HARDWARE_BT6703
-	sSettings.sInOuts.ro_type_source[0] = CRITICAL;
-	sSettings.sInOuts.ro_type_source[1] = SNMP_SET;
-#endif
-
-	sSettings.sInOuts.din_type_act[0] = DI_CONN;
-}
-#endif
-
-#ifdef HARDWARE_BT6703
-/**
-  * @brief  Установить параметры RADIUS по умолчанию
-  */
-void SETTINGS_SetRADIUSDef(void)
-{
-  sSettings.sRADIUS.Auth_enable = true;
-  //sSettings.sRADIUS.RDSEnable = false;
-  // todo вернуть на значение false
-  sSettings.sRADIUS.RDSEnable = false;
-  strcpy(sSettings.sRADIUS.ServerIP, "0.0.0.0");
-  //strcpy(sSettings.sRADIUS.ServerIP, "192.168.14.234");
-  sSettings.sRADIUS.port = 1812;
-  sSettings.sRADIUS.key_access = 123;
-  strcpy(sSettings.sRADIUS.rds_password, "R02ekR4MP2");
-}
-
-/**
-  * @brief  Установить параметры сертификата сервера по умолчанию
-  */
-void SETTINGS_SetSSLcrtDef(void){
- 
-	memset(sSettings.our_srv_crt, 0, sizeof(sSettings.our_srv_crt));
-	memcpy(sSettings.our_srv_crt, (unsigned char *) mbedtls_test_srv_crt, mbedtls_test_srv_crt_len);
-	//memcpy(sSettings.our_srv_key, (unsigned char *) mbedtls_test_srv_key, mbedtls_test_srv_key_len);
-  
-}
-#endif
-
-#if defined HARDWARE_BT6707 || HARDWARE_BT6709
-/**
-  * @brief  Установить параметры Telnet
-  */
-void SETTINGS_SetTelnetDef(void){
-	sSettings.sTelnet.TelnetEnable = true;
-	sSettings.sTelnet.port = 23;
-}
-
-#endif
-
-#if defined HARDWARE_BT6709
-
-/**
-  * @brief  Установить параметры SSH
-  */
-void SETTINGS_SetSSHDef(void){
-	sSettings.sSSH.SSHEnable = true;
-	sSettings.sSSH.port = 22;
-}
-
-/**
-  * @brief  Установить параметры списка доверительных хостов
-  */
-void SETTINGS_SetWhiteListDef(void){
-	for(uint8_t i = 0; i < MAX_WHITE_LIST; i++){
-		strcpy(sSettings.sWhiteListTemp[i].ip_range, "");
-		SetWhiteListSTR(sSettings.sWhiteListTemp[i].ip_range, i);
-		strcpy(sSettings.sWhiteList[i].ip_range, sSettings.sWhiteListTemp[i].ip_range);
-		sSettings.sWhiteList[i].ip = sSettings.sWhiteListTemp[i].ip;
-		sSettings.sWhiteList[i].mask = sSettings.sWhiteListTemp[i].mask;
-	}
-}
-
-/**
-  * @brief  Установить параметры разрешения уведомлений по умолчанию
-  */
-void SETTINGS_SetFlagNotificationDef(void)
-{
-    uint8_t i;
-
-    for(i = 0; i < ALL_TRAPS; i++ ) {
-        sSettings.sFlagNotification[i] = 1;
-    }
-}
-
-#endif
-
-/**
-  * @brief  Сброс настроек в значения по умолчанию
-  */
-void SETTINGS_SetDefault(void)
-{
-  SETTINGS_SetWebParamsDef();
-  SETTINGS_SetTempWebParamsDef();
-  SETTINGS_SetSnmpDef();
-  SETTINGS_SetServiceDef();
-  SETTINGS_SetSntpDef();
-#ifndef HARDWARE_BT6709
-  SETTINGS_SetINOUTSDef();
-#endif
-  SETTINGS_SetUPSSettingsDef();
-#ifdef HARDWARE_BT6703
-  SETTINGS_SetRADIUSDef();
-  SETTINGS_SetSSLcrtDef();
-#endif
-#if defined HARDWARE_BT6707 || HARDWARE_BT6709
-  SETTINGS_SetTelnetDef();
-#endif
-#if defined HARDWARE_BT6709
-  SETTINGS_SetSSHDef();
-  SETTINGS_SetWhiteListDef();
-  SETTINGS_SetFlagNotificationDef();
-#endif
-
-  sSettings.CritSecCRC = SETTINGS_GetCritSecCRC();
-}
-
 /**
   * @brief  Сброс всех настроек в значения по умолчанию кроме сетевых настроек
   */
 void SETTINGS_SetPartDefault(void)
 {
   SETTINGS_SetBootParamsDef();
-  SETTINGS_SetSnmpDef();
   SETTINGS_SetFlagsDef();
-  SETTINGS_SetAlarmManagerDef();
-  SETTINGS_SetUPSSettingsDef();
- // SETTINGS_SetServiceDef();
-  SETTINGS_SetSntpDef();
-#ifndef HARDWARE_BT6709
-  SETTINGS_SetINOUTSDef();
-#endif
- // SETTINGS_SetRADIUSDef();
-#if defined HARDWARE_BT6709
-  SETTINGS_SetWhiteListDef();
-  SETTINGS_SetFlagNotificationDef();
-#endif
+#define XSETTING(type, name, setter, type_reset) if (type_reset == ALL_DEFAULT) setter();
+  SETTINGS_TABLE
+#undef XSETTING
   
   sSettings.CritSecCRC = SETTINGS_GetCritSecCRC();
 
@@ -383,29 +145,11 @@ void SETTINGS_SetAllDefault(void)
   SETTINGS_SetBootParamsDef();
   SETTINGS_SetWebParamsDef();
   SETTINGS_SetTempWebParamsDef();
-  SETTINGS_SetSnmpDef();
   SETTINGS_SetInfoDef();
   SETTINGS_SetFlagsDef();
-  SETTINGS_SetServiceDef();
-  SETTINGS_SetSntpDef();
-  SETTINGS_SetAlarmManagerDef();
-  SETTINGS_SetUPSSettingsDef();
-#ifndef HARDWARE_BT6709
-  SETTINGS_SetINOUTSDef();
-#endif
-#ifdef HARDWARE_BT6703
-  SETTINGS_SetRADIUSDef();
-  SETTINGS_SetSSLcrtDef();
-#endif
-#if defined HARDWARE_BT6707 || HARDWARE_BT6709
-  SETTINGS_SetTelnetDef();
-#endif
-
-#ifdef HARDWARE_BT6709
-  SETTINGS_SetSSHDef();
-  SETTINGS_SetWhiteListDef();
-  SETTINGS_SetFlagNotificationDef();
-#endif
+#define XSETTING(type, name, setter, type_reset) setter();
+  SETTINGS_TABLE
+#undef XSETTING
   
   sSettings.CritSecCRC = SETTINGS_GetCritSecCRC();
 
@@ -419,29 +163,11 @@ void SETTINGS_SetDefaultDebug(void)
 {
   SETTINGS_SetWebParamsDef();
   SETTINGS_SetTempWebParamsDef();
-  SETTINGS_SetSnmpDef();
   SETTINGS_SetBootParamsDef();
   SETTINGS_SetFlagsDef();
-  //SETTINGS_SetServiceDef();
-  SETTINGS_SetSntpDef();
-#ifndef HARDWARE_BT6709
-  SETTINGS_SetINOUTSDef();
-#endif
-  SETTINGS_SetUPSSettingsDef();
-  SETTINGS_SetAlarmManagerDef();
-  //SETTINGS_SetInfoDef();
-#ifdef HARDWARE_BT6703
-  SETTINGS_SetRADIUSDef();
-  SETTINGS_SetSSLcrtDef();
-#endif
-#if defined HARDWARE_BT6707 || HARDWARE_BT6709
-  SETTINGS_SetTelnetDef();
-#endif
-#if defined HARDWARE_BT6709
-  SETTINGS_SetSSHDef();
-  SETTINGS_SetWhiteListDef();
-  SETTINGS_SetFlagNotificationDef();
-#endif
+#define XSETTING(type, name, setter, type_reset) if (type_reset != PART_DEFAULT_2) setter();
+  SETTINGS_TABLE
+#undef XSETTING
   
   sSettings.CritSecCRC = SETTINGS_GetCritSecCRC();
 

+ 23 - 42
modules/settings_api.h

@@ -62,6 +62,17 @@
 
 #define MAX_WHITE_LIST                5
 
+/**
+  * @brief  Уровни пользователей Web.
+  */
+typedef enum
+{
+    ALL_DEFAULT = 0,
+    PART_DEFAULT_1,
+    PART_DEFAULT_2,
+    MAX_RESET_SETTINGS_TYPES
+} reset_settings_type_t;
+
 /**
 * @brief  Параметры обновления ПО
   */
@@ -265,17 +276,15 @@ typedef struct
 {
 	float Ucellmin;
 	float Ucellmax;
-#ifdef HARDWARE_BT6709
   float Uakb;
   float ups_power;
   uint32_t life_time;
   uint32_t set_data;
   uint32_t common_capacity;
-#endif
 	uint8_t type_ups;
 } UPS_Setting_t;
 
-#ifndef HARDWARE_BT6709
+#ifdef INOUTS_ENABLE
 /**
   * @brief  Настройки входов/выходов.
   */
@@ -285,6 +294,7 @@ typedef struct
 	din_type_act_t din_type_act[INPUTS_TOTAL_COUNT];
 } INOUTS_t;
 #endif
+
 /**
   * @brief  Параметры RADIUS
   */
@@ -296,7 +306,6 @@ typedef struct
   bool RDSEnable;  // 0 - отключен, 1 - включен
   uint32_t port;
   uint32_t key_access;
-
 } RADIUS_t;
 
 /**
@@ -316,7 +325,6 @@ typedef struct
 {
   bool SSHEnable;  // 0 - отключен, 1 - включен
   uint32_t port;
-
 } SSH_t;
 
 /**
@@ -335,29 +343,10 @@ typedef struct
 * т.к. контроль целостности всей структуры не имеет смысла
 * (структура настроек всегда будет отличаться внутри основного ПО).
 * В случае повреждения критического сектора, загружаются параметры по умолчанию. */
-  FLAGS_t       sFlags;
-  SNMP_t        sSnmp;
-  AUTH_t		    sAuth[MAX_WEB_USERS];
-  SNTP_t        sSNTP;
-#ifndef HARDWARE_BT6709
-  INOUTS_t		sInOuts;
-#endif
-  UPS_Setting_t UPS_Setting;
-  ALARM_MNGR_t  sAlarmManager;
-#ifdef HARDWARE_BT6703
-  RADIUS_t		sRADIUS;
-  //char			our_srv_crt[1205];
-  char			our_srv_crt[1705];
-#endif
-#if defined HARDWARE_BT6707 || HARDWARE_BT6709
-  TELNET_t		sTelnet;
-#endif
-#ifdef HARDWARE_BT6709
-  WHITE_LIST_t sWhiteList[MAX_WHITE_LIST];
-  WHITE_LIST_t sWhiteListTemp[MAX_WHITE_LIST];
-  SSH_t sSSH;
-  uint8_t       sFlagNotification[ALL_TRAPS];
-#endif
+  FLAGS_t  sFlags;
+#define XSETTING(type, name, setter, type_reset) type name;
+	SETTINGS_TABLE
+#undef XSETTING
   uint32_t      controlWorld;  // Слово для контроля целостности структуры настроек
   
 } SETTINGS_t;
@@ -389,6 +378,11 @@ void SETTINGS_SetTempWebParamsDef(void);
   */
 void SETTINGS_SetSnmpDef(void);
 
+/**
+  * @brief  Настройки ИБП по умолчанию
+  */
+void SETTINGS_SetUPSSettingsDef(void);
+
 /**
   * @brief  Установить Информацию об устройстве по умолчанию
   */
@@ -412,10 +406,8 @@ void SETTINGS_SetSntpDef(void);
 /**
   * @brief  Установить параметры настроек сухих контактов / реле по умолчанию
   */
-#ifndef HARDWARE_BT6709
 void SETTINGS_SetINOUTSDef(void);
-#endif
-#ifdef HARDWARE_BT6703
+
 /**
   * @brief  Установить параметры RADIUS по умолчанию
   */
@@ -425,16 +417,12 @@ void SETTINGS_SetRADIUSDef(void);
   * @brief  Установить параметры сертификата сервера по умолчанию
   */
 void SETTINGS_SetSSLcrtDef(void);
-#endif
 
-#if defined HARDWARE_BT6707 || HARDWARE_BT6709
 /**
   * @brief  Установить параметры Telnet
   */
 void SETTINGS_SetTelnetDef(void);
-#endif
 
-#if defined HARDWARE_BT6709
 /**
   * @brief  Установить параметры SSH
   */
@@ -450,8 +438,6 @@ void SETTINGS_SetWhiteListDef(void);
   */
 void SETTINGS_SetFlagNotificationDef(void);
 
-#endif
-
 /**
   * @brief  Установить значение сервисных настроек по умолчанию
   */
@@ -462,11 +448,6 @@ void SETTINGS_SetServiceDef(void);
   */
 void SETTINGS_EraseFlashSector(void);
 
-/**
-  * @brief  Сброс настроек в значения по умолчанию
-  */
-void SETTINGS_SetDefault(void);
-
 /**
   * @brief  Сброс всех настроек в значения по умолчанию кроме сетевых настроек
   */

+ 198 - 0
modules/settings_api_bt6703.c

@@ -0,0 +1,198 @@
+/********************************* (C) ROTEK ***********************************
+ * @module  settings_api
+ * @file    settings_api.c
+ * @version 1.0.0
+ * @date    XX.XX.XXXX
+ * $brief   Settings
+ *******************************************************************************
+ * @history     Version  Author         Comment
+ * XX.XX.XXXX   1.0.0    Telenkov D.A.  First release.
+ *******************************************************************************
+ */
+#ifdef HARDWARE_BT6703
+#include "stm32f4xx.h"  
+#include "settings_api.h"
+#include "common_config.h"
+#ifndef BT6702_SERVICE
+#include "snmp_api.h"
+#include "trap_api.h"
+#include "log.h"
+#endif
+#include "sys_api.h"
+
+#include "main.h"
+#include "parameters.h"
+
+#include "mbedtls/certs.h"
+
+#include <string.h>
+#include <stdlib.h>
+#ifdef PRINTF_STDLIB
+#include <stdio.h>
+#endif
+#ifdef PRINTF_CUSTOM
+#include "tinystdio.h"
+#endif
+
+//#define DBG if(0)
+
+
+/**
+  * @brief  Установить параметры SNMP по умолчанию
+  */
+void SETTINGS_SetSnmpDef(void)
+{
+  strcpy(sSettings.sSnmp.sysDesc.description, "");
+  sSettings.sSnmp.sysDesc.len = 0;
+  strcpy(sSettings.sSnmp.readCommunity, "public");
+  strcpy(sSettings.sSnmp.writeCommunity, "public");
+  strcpy(sSettings.sSnmp.sysContact.contact, "");
+  sSettings.sSnmp.sysContact.len = 0;
+  strcpy(sSettings.sSnmp.sysName.name, "");
+  sSettings.sSnmp.sysName.len = 0;
+  strcpy(sSettings.sSnmp.sysLocation.location, "");
+  sSettings.sSnmp.sysLocation.len = 0;
+  strcpy(sSettings.sSnmp.managerIP, "0.0.0.0");
+  strcpy(sSettings.sSnmp.managerIP2, "0.0.0.0");
+  strcpy(sSettings.sSnmp.managerIP3, "0.0.0.0");
+  strcpy(sSettings.sSnmp.managerIP4, "0.0.0.0");
+  strcpy(sSettings.sSnmp.managerIP5, "0.0.0.0");
+}
+
+/**
+  * @brief  Настройки ИБП по умолчанию
+  */
+void SETTINGS_SetUPSSettingsDef(void)
+{
+  sSettings.UPS_Setting.Ucellmin = 1.67;
+  sSettings.UPS_Setting.Ucellmax = 2.27;
+  sSettings.UPS_Setting.Uakb = 24;
+  sSettings.UPS_Setting.ups_power = 1000;
+  sSettings.UPS_Setting.set_data = 0;
+  sSettings.UPS_Setting.life_time = 5;
+  sSettings.UPS_Setting.common_capacity = 9;
+  sSettings.UPS_Setting.type_ups = ups_kestar;
+}
+
+/**
+  * @brief  Установить наcтройки менеджера Аварий по умолчанию
+  */
+void SETTINGS_SetAlarmManagerDef(void)
+{
+	sSettings.sAlarmManager.load_range.high = 70.0;
+	sSettings.sAlarmManager.load_range.low = 0;
+	sSettings.sAlarmManager.load_range.hyst = 1;
+
+	sSettings.sAlarmManager.ac_output_range.high = 250.0;
+	sSettings.sAlarmManager.ac_output_range.low = 150.0;
+	sSettings.sAlarmManager.ac_output_range.hyst = 20.0;
+
+	sSettings.sAlarmManager.Temprature_range.high = 70.0;
+	sSettings.sAlarmManager.Temprature_range.low = -40.0;
+	sSettings.sAlarmManager.Temprature_range.hyst = 1;
+}
+
+/**
+  * @brief  Установить значение сервисных настроек по умолчанию
+  */
+void SETTINGS_SetServiceDef(void)
+{
+    uint8_t user_id;
+
+    for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
+        switch (user_id) {
+        /* First users in the system is always ADMIN.
+         * Others are USER */
+        case 0:
+            sSettings.sAuth[user_id].level = ADMIN;
+            strcpy(sSettings.sAuth[user_id].login, "admin");
+            strcpy(sSettings.sAuth[user_id].password, "R04ekR4MP2");
+            break;
+        case 1:
+        default:
+        	sSettings.sAuth[user_id].level = USER;
+            strcpy(sSettings.sAuth[user_id].login, "user");
+            strcpy(sSettings.sAuth[user_id].password, "R03ekR4MP2");
+            break;
+        }
+    }
+}
+
+/**
+  * @brief  Установить параметры SNTP по умолчанию
+  */
+void SETTINGS_SetSntpDef(void)
+{
+  sSettings.sSNTP.sntpEnable = true;
+  strcpy(sSettings.sSNTP.ip, "88.147.254.235");
+  sSettings.sSNTP.timeZone = 3.0;
+  strcpy(sSettings.sSNTP.data, "none");
+}
+
+/**
+  * @brief  Установить параметры настроек сухих контактов / реле по умолчанию
+  */
+void SETTINGS_SetINOUTSDef(void)
+{
+	sSettings.sInOuts.ro_type_source[0] = CRITICAL;
+	sSettings.sInOuts.ro_type_source[1] = SNMP_SET;
+
+	sSettings.sInOuts.din_type_act[0] = DI_CONN;
+}
+
+/**
+  * @brief  Установить параметры RADIUS по умолчанию
+  */
+void SETTINGS_SetRADIUSDef(void)
+{
+  sSettings.sRADIUS.Auth_enable = true;
+  //sSettings.sRADIUS.RDSEnable = false;
+  // todo вернуть на значение false
+  sSettings.sRADIUS.RDSEnable = false;
+  strcpy(sSettings.sRADIUS.ServerIP, "0.0.0.0");
+  //strcpy(sSettings.sRADIUS.ServerIP, "192.168.14.234");
+  sSettings.sRADIUS.port = 1812;
+  sSettings.sRADIUS.key_access = 123;
+  strcpy(sSettings.sRADIUS.rds_password, "R02ekR4MP2");
+}
+
+/**
+  * @brief  Установить параметры сертификата сервера по умолчанию
+  */
+void SETTINGS_SetSSLcrtDef(void){
+	memset(sSettings.our_srv_crt, 0, sizeof(sSettings.our_srv_crt));
+	memcpy(sSettings.our_srv_crt, (unsigned char *) mbedtls_test_srv_crt, mbedtls_test_srv_crt_len);
+	//memcpy(sSettings.our_srv_key, (unsigned char *) mbedtls_test_srv_key, mbedtls_test_srv_key_len);
+}
+
+/**
+  * @brief  Установить параметры Telnet
+  */
+void SETTINGS_SetTelnetDef(void){
+
+}
+
+/**
+  * @brief  Установить параметры SSH
+  */
+void SETTINGS_SetSSHDef(void){
+
+}
+
+/**
+  * @brief  Установить параметры списка доверительных хостов
+  */
+void SETTINGS_SetWhiteListDef(void){
+
+}
+
+/**
+  * @brief  Установить параметры разрешения уведомлений по умолчанию
+  */
+void SETTINGS_SetFlagNotificationDef(void)
+{
+  
+}
+
+#endif
+/********************************* (C) ROTEK **********************************/

+ 188 - 0
modules/settings_api_bt6707.c

@@ -0,0 +1,188 @@
+/********************************* (C) ROTEK ***********************************
+ * @module  settings_api
+ * @file    settings_api.c
+ * @version 1.0.0
+ * @date    XX.XX.XXXX
+ * $brief   Settings
+ *******************************************************************************
+ * @history     Version  Author         Comment
+ * XX.XX.XXXX   1.0.0    Telenkov D.A.  First release.
+ *******************************************************************************
+ */
+#ifdef HARDWARE_BT6707
+#include "stm32f4xx.h"  
+#include "settings_api.h"
+#include "common_config.h"
+#ifndef BT6702_SERVICE
+#include "snmp_api.h"
+#include "trap_api.h"
+#include "log.h"
+#endif
+#include "sys_api.h"
+
+#include "main.h"
+#include "parameters.h"
+
+#include <string.h>
+#include <stdlib.h>
+#ifdef PRINTF_STDLIB
+#include <stdio.h>
+#endif
+#ifdef PRINTF_CUSTOM
+#include "tinystdio.h"
+#endif
+
+//#define DBG if(0)
+
+/**
+  * @brief  Установить параметры SNMP по умолчанию
+  */
+void SETTINGS_SetSnmpDef(void)
+{
+  strcpy(sSettings.sSnmp.sysDesc.description, "");
+  sSettings.sSnmp.sysDesc.len = 0;
+  strcpy(sSettings.sSnmp.readCommunity, "public");
+  strcpy(sSettings.sSnmp.writeCommunity, "public");
+  strcpy(sSettings.sSnmp.sysContact.contact, "");
+  sSettings.sSnmp.sysContact.len = 0;
+  strcpy(sSettings.sSnmp.sysName.name, "");
+  sSettings.sSnmp.sysName.len = 0;
+  strcpy(sSettings.sSnmp.sysLocation.location, "");
+  sSettings.sSnmp.sysLocation.len = 0;
+  strcpy(sSettings.sSnmp.managerIP, "0.0.0.0");
+  strcpy(sSettings.sSnmp.managerIP2, "0.0.0.0");
+  strcpy(sSettings.sSnmp.managerIP3, "0.0.0.0");
+  strcpy(sSettings.sSnmp.managerIP4, "0.0.0.0");
+  strcpy(sSettings.sSnmp.managerIP5, "0.0.0.0");
+}
+
+/**
+  * @brief  Настройки ИБП по умолчанию
+  */
+void SETTINGS_SetUPSSettingsDef(void)
+{
+  sSettings.UPS_Setting.Ucellmin = 1.67;
+  sSettings.UPS_Setting.Ucellmax = 2.27;
+  sSettings.UPS_Setting.Uakb = 24;
+  sSettings.UPS_Setting.ups_power = 1000;
+  sSettings.UPS_Setting.set_data = 0;
+  sSettings.UPS_Setting.life_time = 5;
+  sSettings.UPS_Setting.common_capacity = 9;
+  sSettings.UPS_Setting.type_ups = ups_kestar;
+}
+
+/**
+  * @brief  Установить наcтройки менеджера Аварий по умолчанию
+  */
+void SETTINGS_SetAlarmManagerDef(void)
+{
+	sSettings.sAlarmManager.load_range.high = 70.0;
+	sSettings.sAlarmManager.load_range.low = 0;
+	sSettings.sAlarmManager.load_range.hyst = 1;
+
+	sSettings.sAlarmManager.ac_output_range.high = 250.0;
+	sSettings.sAlarmManager.ac_output_range.low = 150.0;
+	sSettings.sAlarmManager.ac_output_range.hyst = 20.0;
+
+	sSettings.sAlarmManager.Temprature_range.high = 70.0;
+	sSettings.sAlarmManager.Temprature_range.low = -40.0;
+	sSettings.sAlarmManager.Temprature_range.hyst = 1;
+}
+
+
+/**
+  * @brief  Установить значение сервисных настроек по умолчанию
+  */
+void SETTINGS_SetServiceDef(void)
+{
+    uint8_t user_id;
+
+    for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
+        switch (user_id) {
+        /* First users in the system is always ADMIN.
+         * Others are USER */
+        case 0:
+            sSettings.sAuth[user_id].level = ADMIN;
+            strcpy(sSettings.sAuth[user_id].login, "admin");
+            strcpy(sSettings.sAuth[user_id].password, "12345");
+            break;
+        case 1:
+        default:
+        	sSettings.sAuth[user_id].level = USER;
+            strcpy(sSettings.sAuth[user_id].login, "user");
+            strcpy(sSettings.sAuth[user_id].password, "1234");
+            break;
+        }
+    }
+}
+
+/**
+  * @brief  Установить параметры SNTP по умолчанию
+  */
+void SETTINGS_SetSntpDef(void)
+{
+  sSettings.sSNTP.sntpEnable = true;
+  strcpy(sSettings.sSNTP.ip, "88.147.254.235");
+  sSettings.sSNTP.timeZone = 3.0;
+  strcpy(sSettings.sSNTP.data, "none");
+}
+
+/**
+  * @brief  Установить параметры настроек сухих контактов / реле по умолчанию
+  */
+void SETTINGS_SetINOUTSDef(void)
+{
+	sSettings.sInOuts.ro_type_source[0] = AC_PRESENT;
+	sSettings.sInOuts.ro_type_source[1] = DC_PRESENT;
+	sSettings.sInOuts.ro_type_source[2] = CHARGE_AKB;
+
+	sSettings.sInOuts.din_type_act[0] = DI_CONN;
+}
+
+/**
+  * @brief  Установить параметры RADIUS по умолчанию
+  */
+void SETTINGS_SetRADIUSDef(void)
+{
+
+}
+
+/**
+  * @brief  Установить параметры сертификата сервера по умолчанию
+  */
+void SETTINGS_SetSSLcrtDef(void){
+
+}
+
+/**
+  * @brief  Установить параметры Telnet
+  */
+void SETTINGS_SetTelnetDef(void){
+	sSettings.sTelnet.TelnetEnable = true;
+	sSettings.sTelnet.port = 23;
+}
+
+/**
+  * @brief  Установить параметры SSH
+  */
+void SETTINGS_SetSSHDef(void){
+
+}
+
+/**
+  * @brief  Установить параметры списка доверительных хостов
+  */
+void SETTINGS_SetWhiteListDef(void){
+
+}
+
+/**
+  * @brief  Установить параметры разрешения уведомлений по умолчанию
+  */
+void SETTINGS_SetFlagNotificationDef(void)
+{
+
+}
+
+#endif
+/********************************* (C) ROTEK **********************************/

+ 194 - 0
modules/settings_api_bt6709.c

@@ -0,0 +1,194 @@
+/********************************* (C) ROTEK ***********************************
+ * @module  settings_api
+ * @file    settings_api.c
+ * @version 1.0.0
+ * @date    XX.XX.XXXX
+ * $brief   Settings
+ *******************************************************************************
+ * @history     Version  Author         Comment
+ * XX.XX.XXXX   1.0.0    Telenkov D.A.  First release.
+ *******************************************************************************
+ */
+#ifdef HARDWARE_BT6709
+#include "stm32f4xx.h"  
+#include "settings_api.h"
+#include "common_config.h"
+#ifndef BT6702_SERVICE
+#include "snmp_api.h"
+#include "trap_api.h"
+#include "log.h"
+#endif
+#include "sys_api.h"
+
+#include "main.h"
+#include "parameters.h"
+
+#include <string.h>
+#include <stdlib.h>
+#ifdef PRINTF_STDLIB
+#include <stdio.h>
+#endif
+#ifdef PRINTF_CUSTOM
+#include "tinystdio.h"
+#endif
+
+//#define DBG if(0)
+
+/**
+  * @brief  Установить параметры SNMP по умолчанию
+  */
+void SETTINGS_SetSnmpDef(void)
+{
+  strcpy(sSettings.sSnmp.sysDesc.description, "");
+  sSettings.sSnmp.sysDesc.len = 0;
+  strcpy(sSettings.sSnmp.readCommunity, "public");
+  strcpy(sSettings.sSnmp.writeCommunity, "public");
+  strcpy(sSettings.sSnmp.sysContact.contact, "");
+  sSettings.sSnmp.sysContact.len = 0;
+  strcpy(sSettings.sSnmp.sysName.name, "");
+  sSettings.sSnmp.sysName.len = 0;
+  strcpy(sSettings.sSnmp.sysLocation.location, "");
+  sSettings.sSnmp.sysLocation.len = 0;
+  strcpy(sSettings.sSnmp.managerIP, "0.0.0.0");
+  strcpy(sSettings.sSnmp.managerIP2, "0.0.0.0");
+  strcpy(sSettings.sSnmp.managerIP3, "0.0.0.0");
+  strcpy(sSettings.sSnmp.managerIP4, "0.0.0.0");
+  strcpy(sSettings.sSnmp.managerIP5, "0.0.0.0");
+}
+
+/**
+  * @brief  Настройки ИБП по умолчанию
+  */
+void SETTINGS_SetUPSSettingsDef(void)
+{
+  sSettings.UPS_Setting.Ucellmin = 1.67;
+  sSettings.UPS_Setting.Ucellmax = 2.27;
+  sSettings.UPS_Setting.Uakb = 24;
+  sSettings.UPS_Setting.ups_power = 1000;
+  sSettings.UPS_Setting.set_data = 0;
+  sSettings.UPS_Setting.life_time = 5;
+  sSettings.UPS_Setting.common_capacity = 9;
+  sSettings.UPS_Setting.type_ups = ups_kestar;
+}
+
+/**
+  * @brief  Установить наcтройки менеджера Аварий по умолчанию
+  */
+void SETTINGS_SetAlarmManagerDef(void)
+{
+	sSettings.sAlarmManager.load_range.high = 70.0;
+	sSettings.sAlarmManager.load_range.low = 0;
+	sSettings.sAlarmManager.load_range.hyst = 1;
+
+	sSettings.sAlarmManager.ac_output_range.high = 250.0;
+	sSettings.sAlarmManager.ac_output_range.low = 150.0;
+	sSettings.sAlarmManager.ac_output_range.hyst = 20.0;
+
+	sSettings.sAlarmManager.Temprature_range.high = 70.0;
+	sSettings.sAlarmManager.Temprature_range.low = -40.0;
+	sSettings.sAlarmManager.Temprature_range.hyst = 1;
+}
+
+/**
+  * @brief  Установить значение сервисных настроек по умолчанию
+  */
+void SETTINGS_SetServiceDef(void)
+{
+    uint8_t user_id;
+
+    for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
+        switch (user_id) {
+        /* First users in the system is always ADMIN.
+         * Others are USER */
+        case 0:
+            sSettings.sAuth[user_id].level = ADMIN;
+            strcpy(sSettings.sAuth[user_id].login, "admin");
+            strcpy(sSettings.sAuth[user_id].password, "12345");
+            break;
+        case 1:
+        default:
+        	sSettings.sAuth[user_id].level = USER;
+            strcpy(sSettings.sAuth[user_id].login, "user");
+            strcpy(sSettings.sAuth[user_id].password, "1234");
+            break;
+        }
+    }
+}
+
+/**
+  * @brief  Установить параметры SNTP по умолчанию
+  */
+void SETTINGS_SetSntpDef(void)
+{
+  sSettings.sSNTP.sntpEnable = true;
+  strcpy(sSettings.sSNTP.ip, "88.147.254.235");
+  sSettings.sSNTP.timeZone = 3.0;
+  strcpy(sSettings.sSNTP.data, "none");
+}
+
+/**
+  * @brief  Установить параметры настроек сухих контактов / реле по умолчанию
+  */
+void SETTINGS_SetINOUTSDef(void)
+{
+
+}
+
+/**
+  * @brief  Установить параметры RADIUS по умолчанию
+  */
+void SETTINGS_SetRADIUSDef(void)
+{
+
+}
+
+/**
+  * @brief  Установить параметры сертификата сервера по умолчанию
+  */
+void SETTINGS_SetSSLcrtDef(void){
+
+}
+
+/**
+  * @brief  Установить параметры Telnet
+  */
+void SETTINGS_SetTelnetDef(void){
+	sSettings.sTelnet.TelnetEnable = true;
+	sSettings.sTelnet.port = 23;
+}
+
+/**
+  * @brief  Установить параметры SSH
+  */
+void SETTINGS_SetSSHDef(void){
+	sSettings.sSSH.SSHEnable = true;
+	sSettings.sSSH.port = 22;
+}
+
+/**
+  * @brief  Установить параметры списка доверительных хостов
+  */
+void SETTINGS_SetWhiteListDef(void){
+	for(uint8_t i = 0; i < MAX_WHITE_LIST; i++){
+		strcpy(sSettings.sWhiteListTemp[i].ip_range, "");
+		SetWhiteListSTR(sSettings.sWhiteListTemp[i].ip_range, i);
+		strcpy(sSettings.sWhiteList[i].ip_range, sSettings.sWhiteListTemp[i].ip_range);
+		sSettings.sWhiteList[i].ip = sSettings.sWhiteListTemp[i].ip;
+		sSettings.sWhiteList[i].mask = sSettings.sWhiteListTemp[i].mask;
+	}
+}
+
+/**
+  * @brief  Установить параметры разрешения уведомлений по умолчанию
+  */
+void SETTINGS_SetFlagNotificationDef(void)
+{
+    uint8_t i;
+
+    for(i = 0; i < ALL_TRAPS; i++ ) {
+        sSettings.sFlagNotification[i] = 1;
+    }
+}
+
+#endif
+/********************************* (C) ROTEK **********************************/