settings_api_bt6710.c 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  1. /********************************* (C) ROTEK ***********************************
  2. * @module settings_api
  3. * @file settings_api.c
  4. * @version 1.0.0
  5. * @date XX.XX.XXXX
  6. * $brief Settings
  7. *******************************************************************************
  8. * @history Version Author Comment
  9. * XX.XX.XXXX 1.0.0 Telenkov D.A. First release.
  10. *******************************************************************************
  11. */
  12. #ifdef HARDWARE_BT6710
  13. #include "stm32f4xx.h"
  14. #include "settings_api.h"
  15. #include "common_config.h"
  16. #ifndef BT6702_SERVICE
  17. #include "snmp_api.h"
  18. #include "trap_api.h"
  19. #include "log.h"
  20. #endif
  21. #include "sys_api.h"
  22. #include "main.h"
  23. #include "parameters.h"
  24. #include "mbedtls/certs.h"
  25. #include <string.h>
  26. #include <stdlib.h>
  27. #ifdef PRINTF_STDLIB
  28. #include <stdio.h>
  29. #endif
  30. #ifdef PRINTF_CUSTOM
  31. #include "tinystdio.h"
  32. #endif
  33. //#define DBG if(0)
  34. const char *logsStrShortRu[] = {
  35. "Перезагрузка контроллера",
  36. "Сброс настроек",
  37. "Обновление ПО",
  38. "Включение",
  39. "Смена пароля",
  40. "Сохранение настроек",
  41. "Авторизация (Telnet)",
  42. "Авторизация (SSH)",
  43. "Авторизация",
  44. "Тест ИБП",
  45. "Откл. нагрузки ИБП",
  46. "Авария дискр. входа 1",
  47. "Авария дискр. входа 2",
  48. "Низкое вых. напряжение",
  49. "Высокое вых. напряжение",
  50. "Высокая температура АКБ",
  51. "Низкая температура АКБ",
  52. "Высокая температура Шкафа",
  53. "Низкая температура Шкафа",
  54. "Авария вх. напряжения",
  55. "Низкий заряд АКБ",
  56. "Авария связи с ИБП",
  57. "Авария отключения АКБ",
  58. "Авария датч. темп. АКБ",
  59. "Авария датч. темп. Шкафа",
  60. "Замена АКБ",
  61. };
  62. const char* name_traps[] =
  63. {
  64. "",
  65. "Начало обновл. ПО",
  66. "Успешное обновл. ПО",
  67. "Сброс настроек",
  68. "Перезагрузка",
  69. "Норм. темп. АКБ по верх. границы",
  70. "Авария темп. АКБ по верх. границы",
  71. "Авария на линии",
  72. "Нормализация линии",
  73. "Низкий заряд АКБ",
  74. "Нормализация заряда АКБ",
  75. "Нагрузка в норме",
  76. "Авария нагрузки",
  77. "Авария соединения с ИБП",
  78. "Норм. соединения с ИБП",
  79. "Отключение АКБ",
  80. "Подключение АКБ",
  81. "Норм. темп. АКБ по ниж. границы",
  82. "Авария темп. АКБ по ниж. границы",
  83. "Предупр. о замене АКБ",
  84. "Норм. предупрежд. о замене АКБ",
  85. };
  86. /**
  87. * @brief Установить параметры SNMP по умолчанию
  88. */
  89. void SETTINGS_SetSnmpDef(void)
  90. {
  91. strcpy(sSettings.sSnmp.sysDesc.description, "");
  92. sSettings.sSnmp.sysDesc.len = 0;
  93. strcpy(sSettings.sSnmp.readCommunity, "public");
  94. strcpy(sSettings.sSnmp.writeCommunity, "public");
  95. strcpy(sSettings.sSnmp.sysContact.contact, "");
  96. sSettings.sSnmp.sysContact.len = 0;
  97. strcpy(sSettings.sSnmp.sysName.name, "");
  98. sSettings.sSnmp.sysName.len = 0;
  99. strcpy(sSettings.sSnmp.sysLocation.location, "");
  100. sSettings.sSnmp.sysLocation.len = 0;
  101. strcpy(sSettings.sSnmp.managerIP, "0.0.0.0");
  102. strcpy(sSettings.sSnmp.managerIP2, "0.0.0.0");
  103. strcpy(sSettings.sSnmp.managerIP3, "0.0.0.0");
  104. strcpy(sSettings.sSnmp.managerIP4, "0.0.0.0");
  105. strcpy(sSettings.sSnmp.managerIP5, "0.0.0.0");
  106. }
  107. /**
  108. * @brief Настройки ИБП по умолчанию
  109. */
  110. void SETTINGS_SetUPSSettingsDef(void)
  111. {
  112. sSettings.UPS_Setting.Ucellmin = 1.67;
  113. sSettings.UPS_Setting.Ucellmax = 2.27;
  114. sSettings.UPS_Setting.Uakb = 24;
  115. sSettings.UPS_Setting.ups_power = 1000;
  116. sSettings.UPS_Setting.set_data = 0;
  117. sSettings.UPS_Setting.life_time = 5;
  118. sSettings.UPS_Setting.common_capacity = 9;
  119. sSettings.UPS_Setting.type_ups = ups_kestar;
  120. }
  121. /**
  122. * @brief Настройки серийного номера ИБП по умолчанию
  123. */
  124. void SETTINGS_SetUPSSerialSettingsDef(void)
  125. {
  126. sSettings.UPS_Setting.serial = 0;
  127. }
  128. /**
  129. * @brief Установить наcтройки менеджера Аварий по умолчанию
  130. */
  131. void SETTINGS_SetAlarmManagerDef(void)
  132. {
  133. sSettings.sAlarmManager.load_range.high = 70.0;
  134. sSettings.sAlarmManager.load_range.low = 0;
  135. sSettings.sAlarmManager.load_range.hyst = 1;
  136. sSettings.sAlarmManager.ac_output_range.high = 250.0;
  137. sSettings.sAlarmManager.ac_output_range.low = 150.0;
  138. sSettings.sAlarmManager.ac_output_range.hyst = 20.0;
  139. sSettings.sAlarmManager.Temprature_range.high = 70.0;
  140. sSettings.sAlarmManager.Temprature_range.low = -40.0;
  141. sSettings.sAlarmManager.Temprature_range.hyst = 1;
  142. sSettings.sAlarmManager.Temprature_cabinet_range.high = 70.0;
  143. sSettings.sAlarmManager.Temprature_cabinet_range.low = -40.0;
  144. sSettings.sAlarmManager.Temprature_cabinet_range.hyst = 1;
  145. }
  146. /**
  147. * @brief Установить значение сервисных настроек по умолчанию
  148. */
  149. void SETTINGS_SetServiceDef(void)
  150. {
  151. uint8_t user_id;
  152. for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
  153. switch (user_id) {
  154. /* First users in the system is always ADMIN.
  155. * Others are USER */
  156. case 0:
  157. sSettings.sAuth[user_id].level = ADMIN;
  158. strcpy(sSettings.sAuth[user_id].login, "admin");
  159. strcpy(sSettings.sAuth[user_id].password, "12345");
  160. break;
  161. case 1:
  162. default:
  163. sSettings.sAuth[user_id].level = USER;
  164. strcpy(sSettings.sAuth[user_id].login, "user");
  165. strcpy(sSettings.sAuth[user_id].password, "1234");
  166. break;
  167. }
  168. }
  169. }
  170. /**
  171. * @brief Установить параметры SNTP по умолчанию
  172. */
  173. void SETTINGS_SetSntpDef(void)
  174. {
  175. sSettings.sSNTP.sntpEnable = true;
  176. strcpy(sSettings.sSNTP.ip, "88.147.254.235");
  177. sSettings.sSNTP.timeZone = 3.0;
  178. strcpy(sSettings.sSNTP.data, "none");
  179. }
  180. /**
  181. * @brief Установить параметры настроек сухих контактов по умолчанию
  182. */
  183. void SETTINGS_SetDINSDef(void)
  184. {
  185. for(uint8_t i = 0; i < INPUTS_TOTAL_COUNT; i ++) {
  186. sSettings.sDINs[i].din_type_act = DI_CONN;
  187. memset(sSettings.sDINs[i].name, 0, sizeof(sSettings.sDINs[i].name));
  188. sprintf( sSettings.sDINs[i].name, "Door_%d", (i + 1));
  189. }
  190. }
  191. /**
  192. * @brief Установить значение настроек прозрачного порта по умолчанию
  193. */
  194. void SETTINGS_SetPortGwDef(void)
  195. {
  196. sSettings.sPortGw.enabled = true;
  197. sSettings.sPortGw.transtype = GW_TCP;
  198. sSettings.sPortGw.mode = GW_SERVER;
  199. strcpy(sSettings.sPortGw.ip, "192.168.1.2");
  200. sSettings.sPortGw.port = 1001;
  201. sSettings.sPortGw.baud = 9600;
  202. sSettings.sPortGw.parity = GW_EVEN_PAR;
  203. sSettings.sPortGw.databits = 7;
  204. sSettings.sPortGw.stopbits = 1;
  205. sSettings.sPortGw.timeout = 3;
  206. sSettings.sPortGw.quota = 60;
  207. }
  208. /**
  209. * @brief Установить параметры датчиков температуры
  210. */
  211. void SETTINGS_SetTempControlDef(void)
  212. {
  213. sSettings.sTempControl[0].type_sensor = TS_AKB;
  214. sSettings.sTempControl[1].type_sensor = TS_CABINET;
  215. }
  216. /**
  217. * @brief Установить параметры настроек реле по умолчанию
  218. */
  219. void SETTINGS_SetRelaysDef(void)
  220. {
  221. }
  222. /**
  223. * @brief Установить параметры RADIUS по умолчанию
  224. */
  225. void SETTINGS_SetRADIUSDef(void)
  226. {
  227. }
  228. /**
  229. * @brief Установить параметры сертификата сервера по умолчанию
  230. */
  231. void SETTINGS_SetSSLcrtDef(void)
  232. {
  233. }
  234. /**
  235. * @brief Установить параметры Telnet
  236. */
  237. void SETTINGS_SetTelnetDef(void)
  238. {
  239. sSettings.sTelnet.TelnetEnable = true;
  240. sSettings.sTelnet.port = 23;
  241. }
  242. /**
  243. * @brief Установить параметры SSH
  244. */
  245. void SETTINGS_SetSSHDef(void)
  246. {
  247. sSettings.sSSH.SSHEnable = true;
  248. sSettings.sSSH.port = 22;
  249. }
  250. /**
  251. * @brief Установить параметры списка доверительных хостов
  252. */
  253. void SETTINGS_SetWhiteListDef(void)
  254. {
  255. }
  256. /**
  257. * @brief Установить параметры разрешения уведомлений по умолчанию
  258. */
  259. void SETTINGS_SetFlagNotificationDef(void)
  260. {
  261. uint8_t i;
  262. for(i = 0; i < ALL_TRAPS; i++ ) {
  263. sSettings.sFlagNotification[i] = 1;
  264. }
  265. }
  266. #endif
  267. /********************************* (C) ROTEK **********************************/