CLI_Parameters.c 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487
  1. /*
  2. * CLI_Parameters.c
  3. *
  4. * Created on: 04.12.2017
  5. * Author: balbekova
  6. */
  7. #include <stdint.h>
  8. #include <string.h>
  9. #ifdef PRINTF_STDLIB
  10. #include <stdio.h>
  11. #endif
  12. #ifdef PRINTF_CUSTOM
  13. #include "tinystdio.h"
  14. #endif
  15. #include "CLI_Parameters.h"
  16. #include "parameters.h"
  17. #include "settings_api.h"
  18. /**
  19. * @brief Общая структура настроек
  20. */
  21. extern SETTINGS_t sSettings;
  22. //Настройки SNMP
  23. void snmp_config_param(int8_t *buf)
  24. {
  25. char str[20];
  26. uint8_t len = 0;
  27. const int8_t * const pcInfoTableHeader = ( int8_t * ) "\r\n***********SNMP настройки Контроллера***********\r\n";
  28. /* Return the next command help string, before moving the pointer on to
  29. the next command in the list. */
  30. strncpy( ( char * ) buf, ( const char * ) pcInfoTableHeader, strlen( ( char * ) pcInfoTableHeader ) );
  31. GetManagerIp(str, &len);
  32. strcat(( char * ) buf, "Ceрвер 1:\t\t\t");
  33. strncat(( char * ) buf, str, len);
  34. strcat(( char * ) buf, "\r\nСервер 2:\t\t\t");
  35. GetManagerIp2(str, &len);
  36. strncat(( char * ) buf, str, len);
  37. strcat(( char * ) buf, "\r\nСервер 3:\t\t\t");
  38. GetManagerIp3(str, &len);
  39. strncat(( char * ) buf, str, len);
  40. strcat(( char * ) buf, "\r\nСервер 4:\t\t\t");
  41. GetManagerIp4(str, &len);
  42. strncat(( char * ) buf, str, len);
  43. strcat(( char * ) buf, "\r\nСервер 5:\t\t\t");
  44. GetManagerIp5(str, &len);
  45. strncat(( char * ) buf, str, len);
  46. strcat(( char * ) buf, "\r\nRead community:\t\t\t");
  47. GetReadCommunity(str, &len);
  48. strncat(( char * ) buf, str, len);
  49. strcat(( char * ) buf, "\r\nWrite community:\t\t");
  50. GetWriteCommunity(str, &len);
  51. strncat(( char * ) buf, str, len);
  52. strcat(( char * ) buf, "\r\n");
  53. }
  54. #ifndef HARDWARE_BT6709
  55. //Настройки сухих контактов
  56. void inouts_config_param(int8_t *buf)
  57. {
  58. char str[20];
  59. char str_temp[20];
  60. uint8_t len = 0;
  61. const int8_t * const pcInOutsTableHeader = ( int8_t * ) "\r\n*********Настройки сухих контактов Контроллера*********\r\n";
  62. const int8_t * const pcDryInsTableHeader = ( int8_t * ) "Дискретные входы\r\n";
  63. const int8_t * const pcDryInsTableHeader2 = ( int8_t * ) "\r\nКонтакт\t\tНормальное состояние\r\n";
  64. const int8_t * const pcRelaysTableHeader = ( int8_t * ) "Релейные выходы\r\n";
  65. const int8_t * const pcRelaysTableHeader2 = ( int8_t * ) "\r\nКонтакт\t\tИсточник\r\n";
  66. const int8_t * const pcSharedTableHeader = ( int8_t * ) "------------+--------------------------------------------\r\n";
  67. /* Return the next command help string, before moving the pointer on to
  68. the next command in the list. */
  69. strncpy( ( char * ) buf, ( const char * ) pcInOutsTableHeader, strlen( ( char * ) pcInOutsTableHeader ) );
  70. strncat( ( char * ) buf, ( const char * ) pcDryInsTableHeader, strlen( ( char * ) pcDryInsTableHeader ) );
  71. strncat( ( char * ) buf, ( const char * ) pcDryInsTableHeader2, strlen( ( char * ) pcDryInsTableHeader2 ) );
  72. strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) );
  73. GetDINTypeActStr(str, &len, 0);
  74. strcat(( char * ) buf, "1:\t\t");
  75. switch(str[0]){
  76. case '0':
  77. strcat(( char * ) buf, "Разомкнут\r\n");
  78. break;
  79. case '1':
  80. strcat(( char * ) buf, "Замкнут\r\n");
  81. break;
  82. }
  83. strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) );
  84. strcat(( char * ) buf, "\r\n");
  85. strncat( ( char * ) buf, ( const char * ) pcRelaysTableHeader, strlen( ( char * ) pcRelaysTableHeader ) );
  86. strncat( ( char * ) buf, ( const char * ) pcRelaysTableHeader2, strlen( ( char * ) pcRelaysTableHeader2 ) );
  87. strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) );
  88. for(uint8_t i = 0; i < OUTPUTS_TOTAL_COUNT; i++){
  89. GetROTypeActStr(str, &len, i);
  90. memset(str_temp, 0, strlen(str_temp));
  91. sprintf(str_temp, "%d:\t\t", i);
  92. strncat(( char * ) buf, str_temp, strlen(str_temp));
  93. switch(str[0]){
  94. case '0':
  95. strcat(( char * ) buf, "Наличие сети\r\n");
  96. break;
  97. case '1':
  98. strcat(( char * ) buf, "Наличие выходного напряжения\r\n");
  99. break;
  100. case '2':
  101. strcat(( char * ) buf, "Разряд АКБ\r\n");
  102. break;
  103. case '3':
  104. strcat(( char * ) buf, "Отключение АКБ\r\n");
  105. break;
  106. case '4':
  107. strcat(( char * ) buf, "SNMP SET\r\n");
  108. break;
  109. }
  110. strcat(( char * ) buf, "\r\n");
  111. }
  112. strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) );
  113. }
  114. #endif
  115. //Сетевые настройки
  116. void net_config_param(int8_t *buf)
  117. {
  118. char str[20];
  119. uint8_t len = 0;
  120. const int8_t * const pcInfoTableHeader = ( int8_t * ) "\r\n*********Сетевые настройки Контроллера*********\r\n";
  121. /* Return the next command help string, before moving the pointer on to
  122. the next command in the list. */
  123. strncpy( ( char * ) buf, ( const char * ) pcInfoTableHeader, strlen( ( char * ) pcInfoTableHeader ) );
  124. GetDhcpStateStrRu(str, &len);
  125. strcat(( char * ) buf, "DHCP:\t\t\t\t");
  126. strncat(( char * ) buf, str, len);
  127. strcat(( char * ) buf, "\r\nIP адрес:\t\t\t");
  128. GetIpStr(str, &len);
  129. strncat(( char * ) buf, str, len);
  130. strcat(( char * ) buf, "\r\nАдрес шлюза:\t\t\t");
  131. GetGatewayStr(str, &len);
  132. strncat(( char * ) buf, str, len);
  133. strcat(( char * ) buf, "\r\nАдрес маски подсети:\t\t");
  134. GetMaskStr(str, &len);
  135. strncat(( char * ) buf, str, len);
  136. strcat(( char * ) buf, "\r\n");
  137. }
  138. //Настройки времени
  139. void time_config_param(int8_t *buf)
  140. {
  141. char str[20];
  142. uint8_t len = 0;
  143. const int8_t * const pcTimeTableHeader = ( int8_t * ) "\r\n*********Настройки времени Контроллера*********\r\n";
  144. /* Return the next command help string, before moving the pointer on to
  145. the next command in the list. */
  146. strncpy( ( char * ) buf, ( const char * ) pcTimeTableHeader, strlen( ( char * ) pcTimeTableHeader ) );
  147. GetSntpStateStrRU(str, &len);
  148. strcat(( char * ) buf, "Режим установки времени:\t");
  149. strncat(( char * ) buf, str, len);
  150. strcat(( char * ) buf, "\r\nЧасовой пояс:\t\t\t");
  151. GetSntpTimeZoneStr(str, &len);
  152. strncat(( char * ) buf, str, len);
  153. if(sSettings.sSNTP.sntpEnable){
  154. strcat(( char * ) buf, "\r\nIP адрес NTP сервера:\t\t");
  155. GetSntpServerIpStr(str, &len);
  156. strncat(( char * ) buf, str, len);
  157. strcat(( char * ) buf, "\r\nПоследняя дата синхронизации:\t");
  158. GetSntpLastDataStr(str, &len);
  159. strncat(( char * ) buf, str, len);
  160. }
  161. else{
  162. GetDateStr(str, &len);
  163. strcat(( char * ) buf, "\r\nДата:\t\t\t");
  164. strncat(( char * ) buf, str, len);
  165. strcat(( char * ) buf, "\r\nВремя:\t\t\t");
  166. GetTimeStr(str, &len);
  167. strncat(( char * ) buf, str, len);
  168. }
  169. strcat(( char * ) buf, "\r\n");
  170. }
  171. //Настройки АКБ
  172. void akb_config_param(int8_t *buf)
  173. {
  174. char str[20];
  175. uint8_t len = 0;
  176. const int8_t * const pcAKBTableHeader = ( int8_t * ) "\r\n*********Настройки аккумуляторов ИБП*********\r\n";
  177. /* Return the next command help string, before moving the pointer on to
  178. the next command in the list. */
  179. strncpy( ( char * ) buf, ( const char * ) pcAKBTableHeader, strlen( ( char * ) pcAKBTableHeader ) );
  180. GetUPSVoltCellMinStr(str, &len);
  181. strcat(( char * ) buf, "Мин. напряжение ячейки (В):\t\t");
  182. strncat(( char * ) buf, str, len);
  183. strcat(( char * ) buf, "\r\nМакс. напряжение ячейки (В):\t\t");
  184. GetUPSVoltCellMaxStr(str, &len);
  185. strncat(( char * ) buf, str, len);
  186. #ifdef HARDWARE_BT6709
  187. GetVoltageAKBNominalStr(str, &len);
  188. strcat(( char * ) buf, "\r\nНоминальное напряжение (В):\t\t");
  189. strncat(( char * ) buf, str, len);
  190. strcat(( char * ) buf, "\r\nЁмкость (Ач):\t\t\t\t");
  191. GetCapacityNominalAKBStr(str, &len);
  192. strncat(( char * ) buf, str, len);
  193. GetLifeTimeAKBStr(str, &len);
  194. strcat(( char * ) buf, "\r\nСрок службы (лет):\t\t\t");
  195. strncat(( char * ) buf, str, len);
  196. strcat(( char * ) buf, "\r\nДата установки:\t\t\t\t");
  197. GetDataSetAKBStr(str, &len);
  198. strncat(( char * ) buf, str, len);
  199. GetUPSPowerStr(str, &len);
  200. strcat(( char * ) buf, "\r\nПолная мощность ИБП (ВА):\t\t");
  201. strncat(( char * ) buf, str, len);
  202. #endif
  203. strcat(( char * ) buf, "\r\n");
  204. }
  205. //Настройки Аварий
  206. void alarm_config_param(int8_t *buf)
  207. {
  208. char str[20];
  209. uint8_t len = 0;
  210. const char *name_range_alarm[] = {
  211. "Нижняя граница:\t\t\t",
  212. "\r\nВерхняя граница:\t\t",
  213. "\r\nГистерезис:\t\t\t",
  214. };
  215. const int8_t * const pcAlarmTableHeader = ( int8_t * ) "\r\n*********Настройки Аварийных границ*********\r\n";
  216. /* Return the next command help string, before moving the pointer on to
  217. the next command in the list. */
  218. strncpy( ( char * ) buf, ( const char * ) pcAlarmTableHeader, strlen( ( char * ) pcAlarmTableHeader ) );
  219. const int8_t * const pcAlarmTempTableHeader = ( int8_t * ) "\r\n*************Температура (°C)************\r\n";
  220. /* Return the next command help string, before moving the pointer on to
  221. the next command in the list. */
  222. strncat( ( char * ) buf, ( const char * ) pcAlarmTempTableHeader, strlen( ( char * ) pcAlarmTempTableHeader ) );
  223. GetTemperatureAlarmLowRangeStr(str, &len);
  224. strcat(( char * ) buf, name_range_alarm[0]);
  225. strncat(( char * ) buf, str, len);
  226. strcat(( char * ) buf, name_range_alarm[1]);
  227. GetTemperatureAlarmHighRangeStr(str, &len);
  228. strncat(( char * ) buf, str, len);
  229. strcat(( char * ) buf, name_range_alarm[2]);
  230. GetTemperatureAlarmHisteStr(str, &len);
  231. strncat(( char * ) buf, str, len);
  232. strcat(( char * ) buf, "\r\n");
  233. const int8_t * const pcAlarmLoadTableHeader = ( int8_t * ) "\r\n***************Нагрузка (%)**************";
  234. /* Return the next command help string, before moving the pointer on to
  235. the next command in the list. */
  236. strncat( ( char * ) buf, ( const char * ) pcAlarmLoadTableHeader, strlen( ( char * ) pcAlarmLoadTableHeader ) );
  237. strcat(( char * ) buf, name_range_alarm[1]);
  238. GetLoadAlarmHighRangeStr(str, &len);
  239. strncat(( char * ) buf, str, len);
  240. strcat(( char * ) buf, name_range_alarm[2]);
  241. GetLoadAlarmHisteStr(str, &len);
  242. strncat(( char * ) buf, str, len);
  243. strcat(( char * ) buf, "\r\n");
  244. const int8_t * const pcAlarmVoutTableHeader = ( int8_t * ) "\r\n*********Выходное напряжение (В)*********\r\n";
  245. /* Return the next command help string, before moving the pointer on to
  246. the next command in the list. */
  247. strncat( ( char * ) buf, ( const char * ) pcAlarmVoutTableHeader, strlen( ( char * ) pcAlarmVoutTableHeader ) );
  248. GetVACAlarmLowRangeStr(str, &len);
  249. strcat(( char * ) buf, name_range_alarm[0]);
  250. strncat(( char * ) buf, str, len);
  251. strcat(( char * ) buf, name_range_alarm[1]);
  252. GetVACAlarmHighRangeStr(str, &len);
  253. strncat(( char * ) buf, str, len);
  254. strcat(( char * ) buf, name_range_alarm[2]);
  255. GetVACAlarmHisteStr(str, &len);
  256. strncat(( char * ) buf, str, len);
  257. strcat(( char * ) buf, "\r\n");
  258. }
  259. #ifdef HARDWARE_BT6709
  260. //Белый список IP адресов контроллера
  261. void whitelist_config_param(int8_t *buf)
  262. {
  263. char str[20];
  264. uint8_t len = 0;
  265. uint8_t i;
  266. const char *name_range_ip[] = {
  267. "IP-адрес 1:\t\t\t",
  268. "\r\nIP-адрес 2:\t\t\t",
  269. "\r\nIP-адрес 3:\t\t\t",
  270. "\r\nIP-адрес 4:\t\t\t",
  271. "\r\nIP-адрес 5:\t\t\t",
  272. };
  273. const int8_t * const pcInfoTableHeader = ( int8_t * ) "\r\n*******Белый список IP адресов Контроллера*******\r\n";
  274. /* Return the next command help string, before moving the pointer on to
  275. the next command in the list. */
  276. strncpy( ( char * ) buf, ( const char * ) pcInfoTableHeader, strlen( ( char * ) pcInfoTableHeader ) );
  277. for(uint8_t i = 0; i < MAX_WHITE_LIST; i++){
  278. GetWhiteListSTR(str, &len, i);
  279. strcat(( char * ) buf, name_range_ip[i]);
  280. strncat(( char * ) buf, str, len);
  281. }
  282. strcat(( char * ) buf, "\r\n");
  283. }
  284. #endif
  285. //Параметры ИБП
  286. void ups_sensor_param(int8_t *buf)
  287. {
  288. char str[20];
  289. uint8_t len = 0;
  290. GetConnectUPSAlarmStr(str, &len);
  291. strcat(( char * ) buf, "\r\nСвязь с ИБП:\t\t\t\t");
  292. strncat(( char * ) buf, str, len);
  293. const int8_t * const pcUPSInfoTableHeader = ( int8_t * ) "\r\n\r\n***********Параметры источника питания***********\r\n";
  294. /* Return the next command help string, before moving the pointer on to
  295. the next command in the list. */
  296. strncat( ( char * ) buf, ( const char * ) pcUPSInfoTableHeader, strlen( ( char * ) pcUPSInfoTableHeader ) );
  297. GetInputVoltageStr(str, &len);
  298. strcat(( char * ) buf, "Входное напряжение (VAC):\t\t");
  299. strncat(( char * ) buf, str, len);
  300. strcat(( char * ) buf, "\r\nВыходное напряжение (VAC):\t\t");
  301. GetOutputVoltageStr(str, &len);
  302. strncat(( char * ) buf, str, len);
  303. #ifdef HARDWARE_BT6709
  304. GetInputCurrentStr(str, &len);
  305. strcat(( char * ) buf, "\r\nВходная сила тока (A):\t\t\t");
  306. strncat(( char * ) buf, str, len);
  307. strcat(( char * ) buf, "\r\nВыходная сила тока (A):\t\t\t");
  308. GetOutputCurrentStr(str, &len);
  309. strncat(( char * ) buf, str, len);
  310. #endif
  311. strcat(( char * ) buf, "\r\nВходная частота:\t\t\t");
  312. GetInputFreqStr(str, &len);
  313. strncat(( char * ) buf, str, len);
  314. strcat(( char * ) buf, "\r\nНагрузка:\t\t\t\t");
  315. GetPowerStr(str, &len);
  316. strncat(( char * ) buf, str, len);
  317. strcat(( char * ) buf, "\r\nТекущий режим:\t\t\t\t");
  318. GetUPSModeStr(str, &len);
  319. strncat(( char * ) buf, str, len);
  320. strcat(( char * ) buf, "\r\nСтатус:\t\t\t\t\t");
  321. GetUPSAlarmStr(str, &len);
  322. strncat(( char * ) buf, str, len);
  323. strcat(( char * ) buf, "\r\n");
  324. }
  325. //Параметры аккумуляторных батарей
  326. void ups_sensor_akb_param(int8_t *buf)
  327. {
  328. char str[40];
  329. uint8_t len = 0;
  330. const int8_t * const pcAKBInfoTableHeader = ( int8_t * ) "\r\n*********Параметры аккумуляторных батарей*********\r\n";
  331. /* Return the next command help string, before moving the pointer on to
  332. the next command in the list. */
  333. strncpy( ( char * ) buf, ( const char * ) pcAKBInfoTableHeader, strlen( ( char * ) pcAKBInfoTableHeader ) );
  334. GetBatCapacityStr(str, &len);
  335. strcat(( char * ) buf, "Оставшаяся емкость батареи (%):\t\t");
  336. strncat(( char * ) buf, str, len);
  337. strcat(( char * ) buf, "\r\nВнутренняя температура (°C):\t\t");
  338. GetInternalTempStr(str, &len);
  339. strncat(( char * ) buf, str, len);
  340. strcat(( char * ) buf, "\r\nОставшееся время работы (мин):\t\t");
  341. GetRuntimeStr(str, &len);
  342. strncat(( char * ) buf, str, len);
  343. #ifdef HARDWARE_BT6709
  344. GetCapacityNominalAKBStr(str, &len);
  345. strcat(( char * ) buf, "\r\nЕмкость батареи (Ач):\t\t\t");
  346. strncat(( char * ) buf, str, len);
  347. strcat(( char * ) buf, "\r\nНапряжение батареи (В):\t\t\t");
  348. GetVoltageAKBtStr(str, &len);
  349. strncat(( char * ) buf, str, len);
  350. strcat(( char * ) buf, "\r\nДата следующей замены:\t\t\t");
  351. GetDataNextChangeAKBStrRU(str, &len);
  352. strncat(( char * ) buf, str, len);
  353. #endif
  354. strcat(( char * ) buf, "\r\nСтатус:\t\t\t\t\t");
  355. GetAKBAlarmStr(str, &len);
  356. strncat(( char * ) buf, str, len);
  357. strcat(( char * ) buf, "\r\n");
  358. }
  359. #ifndef HARDWARE_BT6709
  360. //Параметры сухих контактов
  361. void inouts_sensor_param(int8_t *buf)
  362. {
  363. char str[20];
  364. uint8_t len = 0;
  365. const int8_t * const pcInOutsInfoTableHeader = ( int8_t * ) "\r\n************Параметры сухих контактов************\r\n";
  366. /* Return the next command help string, before moving the pointer on to
  367. the next command in the list. */
  368. strncpy( ( char * ) buf, ( const char * ) pcInOutsInfoTableHeader, strlen( ( char * ) pcInOutsInfoTableHeader ) );
  369. GetDIN0StatusStrRU(str, &len);
  370. strcat(( char * ) buf, "Дискретный вход:\t\t\t");
  371. strncat(( char * ) buf, str, len);
  372. strcat(( char * ) buf, "\r\nРелейный выход 1:\t\t\t");
  373. GetDOUTStatusStrRU(str, &len, 0);
  374. strncat(( char * ) buf, str, len);
  375. strcat(( char * ) buf, "\r\nРелейный выход 2:\t\t\t");
  376. GetDOUTStatusStrRU(str, &len, 1);
  377. strncat(( char * ) buf, str, len);
  378. strcat(( char * ) buf, "\r\nРелейный выход 3:\t\t\t");
  379. GetDOUTStatusStrRU(str, &len, 2);
  380. strncat(( char * ) buf, str, len);
  381. strcat(( char * ) buf, "\r\n");
  382. }
  383. #endif