settings_api_bt6711.c 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  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. #if HARDWARE_BT6711 || HARDWARE_BT6711_V1
  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 <string.h>
  25. #include <stdlib.h>
  26. #ifdef PRINTF_STDLIB
  27. #include <stdio.h>
  28. #endif
  29. #ifdef PRINTF_CUSTOM
  30. #include "tinystdio.h"
  31. #endif
  32. //#define DBG if(0)
  33. const char* logsStrShortRu[] =
  34. {
  35. "Перезагрузка контроллера",
  36. "Сброс настроек",
  37. "Обновление ПО",
  38. "Включение",
  39. "Смена пароля",
  40. "Сохранение настроек",
  41. "Авторизация (Telnet)",
  42. "Авторизация",
  43. "Режим работы ИБП",
  44. "Тест ИБП",
  45. "Откл. нагрузки ИБП",
  46. "Низкое вых. напряжение",
  47. "Высокое вых. напряжение",
  48. "Высокая температура",
  49. "Низкая температура",
  50. "Авария вх. напряжения",
  51. "Низкий заряд АКБ",
  52. "Авария нагрузки",
  53. "Авария связи с ИБП",
  54. "Авария отключения АКБ",
  55. "Ёмкость АКБ",
  56. "Ош. подкл. вх. напряжения",
  57. };
  58. const char* name_traps[] =
  59. {
  60. "",
  61. "Начало обновл. ПО",
  62. "Успешное обновл. ПО",
  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. "Норм. соединения с ИБП",
  88. };
  89. /**
  90. * @brief Установить параметры SNMP по умолчанию
  91. */
  92. void SETTINGS_SetSnmpDef(void)
  93. {
  94. strcpy(sSettings.sSnmp.sysDesc.description, "");
  95. sSettings.sSnmp.sysDesc.len = 0;
  96. strcpy(sSettings.sSnmp.readCommunity, "public");
  97. strcpy(sSettings.sSnmp.writeCommunity, "public");
  98. strcpy(sSettings.sSnmp.sysContact.contact, "");
  99. sSettings.sSnmp.sysContact.len = 0;
  100. strcpy(sSettings.sSnmp.sysName.name, "");
  101. sSettings.sSnmp.sysName.len = 0;
  102. strcpy(sSettings.sSnmp.sysLocation.location, "");
  103. sSettings.sSnmp.sysLocation.len = 0;
  104. strcpy(sSettings.sSnmp.managerIP, "0.0.0.0");
  105. strcpy(sSettings.sSnmp.managerIP2, "0.0.0.0");
  106. strcpy(sSettings.sSnmp.managerIP3, "0.0.0.0");
  107. strcpy(sSettings.sSnmp.managerIP4, "0.0.0.0");
  108. strcpy(sSettings.sSnmp.managerIP5, "0.0.0.0");
  109. }
  110. /**
  111. * @brief Настройки ИБП по умолчанию
  112. */
  113. void SETTINGS_SetUPSSettingsDef(void)
  114. {
  115. sSettings.UPS_Setting.Ucellmin = 1.67;
  116. sSettings.UPS_Setting.Ucellmax = 2.27;
  117. sSettings.UPS_Setting.Uakb = 36;
  118. sSettings.UPS_Setting.common_capacity = 40;
  119. sSettings.UPS_Setting.ups_power = 1000;
  120. sSettings.UPS_Setting.set_data = 0;
  121. sSettings.UPS_Setting.life_time = 5;
  122. sSettings.UPS_Setting.type_ups = ups_kestar;
  123. }
  124. /**
  125. * @brief Настройки серийного номера ИБП по умолчанию
  126. */
  127. void SETTINGS_SetUPSSerialSettingsDef(void)
  128. {
  129. sSettings.UPS_Setting.serial = 0;
  130. }
  131. /**
  132. * @brief Установить наcтройки менеджера Аварий по умолчанию
  133. */
  134. void SETTINGS_SetAlarmManagerDef(void)
  135. {
  136. sSettings.sAlarmManager.load_range.high = 70.0;
  137. sSettings.sAlarmManager.load_range.low = 0;
  138. sSettings.sAlarmManager.load_range.hyst = 1;
  139. sSettings.sAlarmManager.ac_input_range.high = 250.0;
  140. sSettings.sAlarmManager.ac_input_range.low = 150.0;
  141. sSettings.sAlarmManager.ac_input_range.hyst = 20.0;
  142. sSettings.sAlarmManager.ac_output_range.high = 250.0;
  143. sSettings.sAlarmManager.ac_output_range.low = 150.0;
  144. sSettings.sAlarmManager.ac_output_range.hyst = 20.0;
  145. sSettings.sAlarmManager.Temprature_range.high = 70.0;
  146. sSettings.sAlarmManager.Temprature_range.low = -40.0;
  147. sSettings.sAlarmManager.Temprature_range.hyst = 1;
  148. }
  149. /**
  150. * @brief Установить значение сервисных настроек по умолчанию
  151. */
  152. void SETTINGS_SetServiceDef(void)
  153. {
  154. uint8_t user_id;
  155. for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
  156. switch (user_id) {
  157. /* First users in the system is always ADMIN.
  158. * Others are USER */
  159. case 0:
  160. sSettings.sAuth[user_id].level = ADMIN;
  161. strcpy(sSettings.sAuth[user_id].login, "admin");
  162. strcpy(sSettings.sAuth[user_id].password, "12345");
  163. break;
  164. case 1:
  165. default:
  166. sSettings.sAuth[user_id].level = USER;
  167. strcpy(sSettings.sAuth[user_id].login, "user");
  168. strcpy(sSettings.sAuth[user_id].password, "1234");
  169. break;
  170. }
  171. }
  172. }
  173. /**
  174. * @brief Установить параметры SNTP по умолчанию
  175. */
  176. void SETTINGS_SetSntpDef(void)
  177. {
  178. sSettings.sSNTP.sntpEnable = true;
  179. strcpy(sSettings.sSNTP.ip, "88.147.254.235");
  180. sSettings.sSNTP.timeZone = 3.0;
  181. strcpy(sSettings.sSNTP.data, "none");
  182. }
  183. /**
  184. * @brief Установить параметры настроек реле по умолчанию
  185. */
  186. void SETTINGS_SetRelaysDef(void)
  187. {
  188. }
  189. /**
  190. * @brief Установить параметры настроек сухих контактов по умолчанию
  191. */
  192. void SETTINGS_SetDINSDef(void)
  193. {
  194. }
  195. /**
  196. * @brief Установить параметры RADIUS по умолчанию
  197. */
  198. void SETTINGS_SetRADIUSDef(void)
  199. {
  200. sSettings.sRADIUS.Auth_enable = true;
  201. //sSettings.sRADIUS.RDSEnable = false;
  202. // todo вернуть на значение false
  203. sSettings.sRADIUS.RDSEnable = false;
  204. strcpy(sSettings.sRADIUS.ServerIP, "0.0.0.0");
  205. //strcpy(sSettings.sRADIUS.ServerIP, "192.168.14.234");
  206. sSettings.sRADIUS.port = 1812;
  207. sSettings.sRADIUS.key_access = 123;
  208. strcpy(sSettings.sRADIUS.rds_password, "R02ekR4MP2");
  209. }
  210. /**
  211. * @brief Установить параметры сертификата сервера по умолчанию
  212. */
  213. void SETTINGS_SetSSLcrtDef(void){
  214. }
  215. /**
  216. * @brief Установить параметры Telnet
  217. */
  218. void SETTINGS_SetTelnetDef(void){
  219. sSettings.sTelnet.TelnetEnable = true;
  220. sSettings.sTelnet.port = 23;
  221. }
  222. /**
  223. * @brief Установить параметры SSH
  224. */
  225. void SETTINGS_SetSSHDef(void){
  226. }
  227. /**
  228. * @brief Установить параметры списка доверительных хостов
  229. */
  230. void SETTINGS_SetWhiteListDef(void){
  231. for(uint8_t i = 0; i < MAX_WHITE_LIST; i++){
  232. strcpy(sSettings.sWhiteListTemp[i].ip_range, "");
  233. SetWhiteListSTR(sSettings.sWhiteListTemp[i].ip_range, i);
  234. strcpy(sSettings.sWhiteList[i].ip_range, sSettings.sWhiteListTemp[i].ip_range);
  235. sSettings.sWhiteList[i].ip = sSettings.sWhiteListTemp[i].ip;
  236. sSettings.sWhiteList[i].mask = sSettings.sWhiteListTemp[i].mask;
  237. }
  238. }
  239. /**
  240. * @brief Установить параметры разрешения уведомлений по умолчанию
  241. */
  242. void SETTINGS_SetFlagNotificationDef(void)
  243. {
  244. uint8_t i;
  245. for(i = 0; i < ALL_TRAPS; i++ ) {
  246. sSettings.sFlagNotification[i] = 1;
  247. }
  248. }
  249. void SETTINGS_SetFTPUpdateDef(void)
  250. {
  251. IP4_ADDR(&sSettings.sFTPUpdate.server_ip, 192,168,0,253);
  252. sSettings.sFTPUpdate.server_port = 21;
  253. strcpy(&sSettings.sFTPUpdate.remote_path, "BT_6711xx.bin");
  254. strcpy(&sSettings.sFTPUpdate.user, "anonymous");
  255. strcpy(&sSettings.sFTPUpdate.pass, "guest");
  256. }
  257. void SETTINGS_SetSyslogDef(void)
  258. {
  259. sSettings.sSyslog.enabled = false;
  260. IP4_ADDR(&sSettings.sSyslog.server_ip, 192,168,0,253);
  261. sSettings.sSyslog.server_port = 514;
  262. }
  263. /**
  264. * @brief Установить значение настроек прозрачного порта по умолчанию
  265. */
  266. void SETTINGS_SetPortGwDef(void)
  267. {
  268. }
  269. /**
  270. * @brief Установить параметры датчиков температуры
  271. */
  272. void SETTINGS_SetTempControlDef(void)
  273. {
  274. }
  275. #endif
  276. /********************************* (C) ROTEK **********************************/