CLI_Parameters.c 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622
  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 * )
  28. "\r\n***********SNMP настройки Контроллера***********\r\n";
  29. /* Return the next command help string, before moving the pointer on to
  30. the next command in the list. */
  31. strncpy( ( char * ) buf, ( const char * ) pcInfoTableHeader, strlen( ( char * ) pcInfoTableHeader ) );
  32. GetManagerIp(str, &len);
  33. strcat(( char * ) buf, "Ceрвер 1:\t\t\t");
  34. strncat(( char * ) buf, str, len);
  35. strcat(( char * ) buf, "\r\nСервер 2:\t\t\t");
  36. GetManagerIp2(str, &len);
  37. strncat(( char * ) buf, str, len);
  38. strcat(( char * ) buf, "\r\nСервер 3:\t\t\t");
  39. GetManagerIp3(str, &len);
  40. strncat(( char * ) buf, str, len);
  41. strcat(( char * ) buf, "\r\nСервер 4:\t\t\t");
  42. GetManagerIp4(str, &len);
  43. strncat(( char * ) buf, str, len);
  44. strcat(( char * ) buf, "\r\nСервер 5:\t\t\t");
  45. GetManagerIp5(str, &len);
  46. strncat(( char * ) buf, str, len);
  47. strcat(( char * ) buf, "\r\nRead community:\t\t\t");
  48. GetReadCommunity(str, &len);
  49. strncat(( char * ) buf, str, len);
  50. strcat(( char * ) buf, "\r\nWrite community:\t\t");
  51. GetWriteCommunity(str, &len);
  52. strncat(( char * ) buf, str, len);
  53. strcat(( char * ) buf, "\r\n");
  54. }
  55. #ifdef DINS_ENABLE || DOUTS_ENABLE
  56. //Настройки сухих контактов
  57. void inouts_config_param(int8_t *buf)
  58. {
  59. char str[20];
  60. char str_temp[20];
  61. uint8_t len = 0;
  62. const int8_t *const pcInOutsTableHeader = ( int8_t * )
  63. "\r\n*********Настройки сухих контактов Контроллера*********\r\n";
  64. const int8_t *const pcDryInsTableHeader = ( int8_t * ) "Дискретные входы\r\n";
  65. const int8_t *const pcDryInsTableHeader2 = ( int8_t * )
  66. "\r\n№\t\tНормальное состояние\r\n";
  67. const int8_t *const pcRelaysTableHeader = ( int8_t * ) "Релейные выходы\r\n";
  68. const int8_t *const pcRelaysTableHeader2 = ( int8_t * ) "\r\n№\t\tИсточник\r\n";
  69. const int8_t *const pcSharedTableHeader = ( int8_t * ) "------------+--------------------------------------------\r\n";
  70. /* Return the next command help string, before moving the pointer on to
  71. the next command in the list. */
  72. strncpy( ( char * ) buf, ( const char * ) pcInOutsTableHeader, strlen( ( char * ) pcInOutsTableHeader ) );
  73. #ifdef DINS_ENABLE
  74. strncat( ( char * ) buf, ( const char * ) pcDryInsTableHeader, strlen( ( char * ) pcDryInsTableHeader ) );
  75. strncat( ( char * ) buf, ( const char * ) pcDryInsTableHeader2, strlen( ( char * ) pcDryInsTableHeader2 ) );
  76. strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) );
  77. GetDINTypeActStr(str, &len, 0);
  78. strcat(( char * ) buf, "1:\t\t");
  79. switch (str[0]) {
  80. case '0':
  81. strcat(( char * ) buf, "Разомкнут\r\n");
  82. break;
  83. case '1':
  84. strcat(( char * ) buf, "Замкнут\r\n");
  85. break;
  86. }
  87. strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) );
  88. strcat(( char * ) buf, "\r\n");
  89. #endif
  90. #ifdef DOUTS_ENABLE
  91. strncat( ( char * ) buf, ( const char * ) pcRelaysTableHeader, strlen( ( char * ) pcRelaysTableHeader ) );
  92. strncat( ( char * ) buf, ( const char * ) pcRelaysTableHeader2, strlen( ( char * ) pcRelaysTableHeader2 ) );
  93. strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) );
  94. for (uint8_t i = 0; i < OUTPUTS_TOTAL_COUNT; i++) {
  95. GetROTypeActStr(str, &len, i);
  96. memset(str_temp, 0, strlen(str_temp));
  97. sprintf(str_temp, "%d:\t\t", i);
  98. strncat(( char * ) buf, str_temp, strlen(str_temp));
  99. switch (str[0]) {
  100. case '0':
  101. strcat(( char * ) buf, "Наличие сети\r\n");
  102. break;
  103. case '1':
  104. strcat(( char * ) buf, "Наличие выходного напряжения\r\n");
  105. break;
  106. case '2':
  107. strcat(( char * ) buf, "Разряд АКБ\r\n");
  108. break;
  109. case '3':
  110. strcat(( char * ) buf, "Отключение АКБ\r\n");
  111. break;
  112. case '4':
  113. strcat(( char * ) buf, "SNMP SET\r\n");
  114. break;
  115. }
  116. strcat(( char * ) buf, "\r\n");
  117. }
  118. strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) );
  119. #endif
  120. }
  121. #endif
  122. //Сетевые настройки
  123. void net_config_param(int8_t *buf)
  124. {
  125. char str[20];
  126. uint8_t len = 0;
  127. const int8_t *const pcInfoTableHeader = ( int8_t * )
  128. "\r\n*********Сетевые настройки Контроллера*********\r\n";
  129. /* Return the next command help string, before moving the pointer on to
  130. the next command in the list. */
  131. strncpy( ( char * ) buf, ( const char * ) pcInfoTableHeader, strlen( ( char * ) pcInfoTableHeader ) );
  132. GetDhcpStateStrRu(str, &len);
  133. strcat(( char * ) buf, "DHCP:\t\t\t\t");
  134. strncat(( char * ) buf, str, len);
  135. strcat(( char * ) buf, "\r\nIP адрес:\t\t\t");
  136. GetIpStr(str, &len);
  137. strncat(( char * ) buf, str, len);
  138. strcat(( char * ) buf, "\r\nАдрес шлюза:\t\t\t");
  139. GetGatewayStr(str, &len);
  140. strncat(( char * ) buf, str, len);
  141. strcat(( char * ) buf, "\r\nАдрес маски подсети:\t\t");
  142. GetMaskStr(str, &len);
  143. strncat(( char * ) buf, str, len);
  144. strcat(( char * ) buf, "\r\n");
  145. }
  146. #ifdef SYSLOG_ENABLE
  147. void syslog_config_param(int8_t *buf)
  148. {
  149. char str[100];
  150. uint8_t len = 0;
  151. const int8_t *const pcInfoTableHeader = ( int8_t * )
  152. "\r\n****************SysLog настройки ******************\r\n";
  153. strncpy( ( char * ) buf, ( const char * ) pcInfoTableHeader, strlen( ( char * ) pcInfoTableHeader ) );
  154. GetSyslogEnableStrRU(str, &len);
  155. strcat(( char * ) buf, "Передача по SysLog:\t\t");
  156. strncat(( char * ) buf, str, len);
  157. strcat(( char * ) buf, "\r\nIP адрес сервера:\t\t");
  158. GetSyslogServer(str, &len);
  159. strncat(( char * ) buf, str, len);
  160. strcat(( char * ) buf, "\r\nПорт сервера:\t\t\t");
  161. GetSyslogPort(str, &len);
  162. strncat(( char * ) buf, str, len);
  163. strcat(( char * ) buf, "\r\n");
  164. }
  165. #endif
  166. #ifdef RADIUS_SERVER_ENABLE
  167. void radius_config_param(int8_t *buf)
  168. {
  169. char str[100];
  170. uint8_t len = 0;
  171. const int8_t *const pcInfoTableHeader = ( int8_t * )
  172. "\r\n***************RADIUS настройки***************\r\n";
  173. strncpy( ( char * ) buf, ( const char * ) pcInfoTableHeader, strlen( ( char * ) pcInfoTableHeader ) );
  174. GetRADIUSEnableStrRU(str, &len);
  175. strcat(( char * ) buf, "Аторизация по RADIUS:\t\t");
  176. strncat(( char * ) buf, str, len);
  177. strcat(( char * ) buf, "\r\nIP адрес сервера:\t\t");
  178. GetRDSIpStr(str, &len);
  179. strncat(( char * ) buf, str, len);
  180. strcat(( char * ) buf, "\r\nПорт сервера:\t\t\t");
  181. GetRDSPortStr(str, &len);
  182. strncat(( char * ) buf, str, len);
  183. strcat(( char * ) buf, "\r\nПароль сервера:\t\t\t");
  184. GetRDSPasswordkStr(str, &len);
  185. strncat(( char * ) buf, str, len);
  186. strcat(( char * ) buf, "\r\n");
  187. }
  188. #endif
  189. //Настройки времени
  190. void time_config_param(int8_t *buf)
  191. {
  192. char str[20];
  193. uint8_t len = 0;
  194. const int8_t *const pcTimeTableHeader = ( int8_t * )
  195. "\r\n*********Настройки времени Контроллера*********\r\n";
  196. /* Return the next command help string, before moving the pointer on to
  197. the next command in the list. */
  198. strncpy( ( char * ) buf, ( const char * ) pcTimeTableHeader, strlen( ( char * ) pcTimeTableHeader ) );
  199. GetSntpStateStrRU(str, &len);
  200. strcat(( char * ) buf, "Режим установки времени:\t");
  201. strncat(( char * ) buf, str, len);
  202. strcat(( char * ) buf, "\r\nЧасовой пояс:\t\t\t");
  203. GetSntpTimeZoneStr(str, &len);
  204. strncat(( char * ) buf, str, len);
  205. if (sSettings.sSNTP.sntpEnable) {
  206. strcat(( char * ) buf, "\r\nIP адрес NTP сервера:\t\t");
  207. GetSntpServerIpStr(str, &len);
  208. strncat(( char * ) buf, str, len);
  209. strcat(( char * ) buf, "\r\nПоследняя дата синхронизации:\t");
  210. GetSntpLastDataStr(str, &len);
  211. strncat(( char * ) buf, str, len);
  212. } else {
  213. GetDateStr(str, &len);
  214. strcat(( char * ) buf, "\r\nДата:\t\t\t");
  215. strncat(( char * ) buf, str, len);
  216. strcat(( char * ) buf, "\r\nВремя:\t\t\t");
  217. GetTimeStr(str, &len);
  218. strncat(( char * ) buf, str, len);
  219. }
  220. strcat(( char * ) buf, "\r\n");
  221. }
  222. //Настройки АКБ
  223. void akb_config_param(int8_t *buf)
  224. {
  225. char str[20];
  226. uint8_t len = 0;
  227. const int8_t *const pcAKBTableHeader = ( int8_t * )
  228. "\r\n*********Настройки аккумуляторов ИБП*********\r\n";
  229. /* Return the next command help string, before moving the pointer on to
  230. the next command in the list. */
  231. strncpy( ( char * ) buf, ( const char * ) pcAKBTableHeader, strlen( ( char * ) pcAKBTableHeader ) );
  232. GetUPSVoltCellMinStr(str, &len);
  233. strcat(( char * ) buf, "Мин. напряжение ячейки (В):\t\t");
  234. strncat(( char * ) buf, str, len);
  235. strcat(( char * ) buf, "\r\nМакс. напряжение ячейки (В):\t\t");
  236. GetUPSVoltCellMaxStr(str, &len);
  237. strncat(( char * ) buf, str, len);
  238. #if HARDWARE_BT6709 || HARDWARE_BT6709_MTS || HARDWARE_BT6711
  239. GetVoltageAKBNominalStr(str, &len);
  240. strcat(( char * ) buf, "\r\nНоминальное напряжение (В):\t\t");
  241. strncat(( char * ) buf, str, len);
  242. strcat(( char * ) buf, "\r\nЁмкость (Ач):\t\t\t\t");
  243. GetCapacityNominalAKBStr(str, &len);
  244. strncat(( char * ) buf, str, len);
  245. GetUPSPowerStr(str, &len);
  246. strcat(( char * ) buf, "\r\nПолная мощность ИБП (ВА):\t\t");
  247. strncat(( char * ) buf, str, len);
  248. #endif
  249. #if HARDWARE_BT6709 || HARDWARE_BT6709_MTS
  250. GetLifeTimeAKBStr(str, &len);
  251. strcat(( char * ) buf, "\r\nСрок службы (лет):\t\t\t");
  252. strncat(( char * ) buf, str, len);
  253. strcat(( char * ) buf, "\r\nДата установки:\t\t\t\t");
  254. GetDataSetAKBStr(str, &len);
  255. strncat(( char * ) buf, str, len);
  256. #endif
  257. strcat(( char * ) buf, "\r\n");
  258. }
  259. //Настройки Аварий
  260. void alarm_config_param(int8_t *buf)
  261. {
  262. char str[20];
  263. uint8_t len = 0;
  264. const char *name_range_alarm[] = {
  265. "Нижняя граница:\t\t\t",
  266. "\r\nВерхняя граница:\t\t",
  267. "\r\nГистерезис:\t\t\t",
  268. };
  269. const int8_t *const pcAlarmTableHeader = ( int8_t * )
  270. "\r\n*********Настройки Аварийных границ*********\r\n";
  271. /* Return the next command help string, before moving the pointer on to
  272. the next command in the list. */
  273. strncpy( ( char * ) buf, ( const char * ) pcAlarmTableHeader, strlen( ( char * ) pcAlarmTableHeader ) );
  274. const int8_t *const pcAlarmTempTableHeader = ( int8_t * )
  275. "\r\n*************Температура (°C)************\r\n";
  276. /* Return the next command help string, before moving the pointer on to
  277. the next command in the list. */
  278. strncat( ( char * ) buf, ( const char * ) pcAlarmTempTableHeader, strlen( ( char * ) pcAlarmTempTableHeader ) );
  279. GetTemperatureAlarmLowRangeStr(str, &len);
  280. strcat(( char * ) buf, name_range_alarm[0]);
  281. strncat(( char * ) buf, str, len);
  282. strcat(( char * ) buf, name_range_alarm[1]);
  283. GetTemperatureAlarmHighRangeStr(str, &len);
  284. strncat(( char * ) buf, str, len);
  285. strcat(( char * ) buf, name_range_alarm[2]);
  286. GetTemperatureAlarmHisteStr(str, &len);
  287. strncat(( char * ) buf, str, len);
  288. strcat(( char * ) buf, "\r\n");
  289. const int8_t *const pcAlarmLoadTableHeader = ( int8_t * ) "\r\n***************Нагрузка (%)**************";
  290. /* Return the next command help string, before moving the pointer on to
  291. the next command in the list. */
  292. strncat( ( char * ) buf, ( const char * ) pcAlarmLoadTableHeader, strlen( ( char * ) pcAlarmLoadTableHeader ) );
  293. strcat(( char * ) buf, name_range_alarm[1]);
  294. GetLoadAlarmHighRangeStr(str, &len);
  295. strncat(( char * ) buf, str, len);
  296. strcat(( char * ) buf, name_range_alarm[2]);
  297. GetLoadAlarmHisteStr(str, &len);
  298. strncat(( char * ) buf, str, len);
  299. strcat(( char * ) buf, "\r\n");
  300. const int8_t *const pcAlarmVoutTableHeader = ( int8_t * )
  301. "\r\n*********Выходное напряжение (В)*********\r\n";
  302. /* Return the next command help string, before moving the pointer on to
  303. the next command in the list. */
  304. strncat( ( char * ) buf, ( const char * ) pcAlarmVoutTableHeader, strlen( ( char * ) pcAlarmVoutTableHeader ) );
  305. GetVACAlarmLowRangeStr(str, &len);
  306. strcat(( char * ) buf, name_range_alarm[0]);
  307. strncat(( char * ) buf, str, len);
  308. strcat(( char * ) buf, name_range_alarm[1]);
  309. GetVACAlarmHighRangeStr(str, &len);
  310. strncat(( char * ) buf, str, len);
  311. strcat(( char * ) buf, name_range_alarm[2]);
  312. GetVACAlarmHisteStr(str, &len);
  313. strncat(( char * ) buf, str, len);
  314. strcat(( char * ) buf, "\r\n");
  315. #ifdef VAC_IN_MONITOR
  316. const int8_t *const pcAlarmVinTableHeader = ( int8_t * )
  317. "\r\n*********Входное напряжение (В)*********\r\n";
  318. /* Return the next command help string, before moving the pointer on to
  319. the next command in the list. */
  320. strncat( ( char * ) buf, ( const char * ) pcAlarmVinTableHeader, strlen( ( char * ) pcAlarmVinTableHeader ) );
  321. GetVACInputAlarmHighRangeStr(str, &len);
  322. strcat(( char * ) buf, name_range_alarm[0]);
  323. strncat(( char * ) buf, str, len);
  324. strcat(( char * ) buf, name_range_alarm[1]);
  325. GetVACInputAlarmLowRangeStr(str, &len);
  326. strncat(( char * ) buf, str, len);
  327. strcat(( char * ) buf, name_range_alarm[2]);
  328. GetVACInputAlarmLowRangeStr(str, &len);
  329. strncat(( char * ) buf, str, len);
  330. strcat(( char * ) buf, "\r\n");
  331. #endif
  332. }
  333. #ifdef NOTIFICATION_CONTROL_ENABLE
  334. //Список уведомлений и их состояние
  335. void notification_param(int8_t *buf)
  336. {
  337. char str[100];
  338. uint8_t len = 0;
  339. uint8_t i;
  340. const int8_t *const pcNotificationTableHeader = ( int8_t * )
  341. "\r\n*************Список уведомлений*******************\r\n";
  342. /* Return the next command help string, before moving the pointer on to
  343. the next command in the list. */
  344. strncpy( ( char * ) buf, ( const char * ) pcNotificationTableHeader, strlen( ( char * ) pcNotificationTableHeader ) );
  345. for (i = 1; i < ALL_TRAPS; i++) {
  346. sprintf(str, "%d. ", i);
  347. len = strlen(str);
  348. strncat(buf, str, len);
  349. GetTrapLongNameStr(str, &len, i);
  350. strncat(buf, str, len);
  351. if ( len < 25 ) {
  352. strcat(buf, "\t\t\t\t\t");
  353. } else if (len > 37 && len <= 47) {
  354. strcat(buf, "\t\t\t");
  355. } else if (len > 47) {
  356. strcat(buf, "\t\t");
  357. } else {
  358. strcat(buf, "\t\t\t\t");
  359. }
  360. GetNotificationTrapsStateStr2(str, &len, i);
  361. strncat(buf, str, len);
  362. strcat(( char * ) buf, "\r\n");
  363. }
  364. strcat(( char * ) buf, "\r\n");
  365. }
  366. //Белый список IP адресов контроллера
  367. void whitelist_config_param(int8_t *buf)
  368. {
  369. char str[20];
  370. uint8_t len = 0;
  371. uint8_t i;
  372. const char *name_range_ip[] = {
  373. "IP-адрес 1:\t\t\t",
  374. "\r\nIP-адрес 2:\t\t\t",
  375. "\r\nIP-адрес 3:\t\t\t",
  376. "\r\nIP-адрес 4:\t\t\t",
  377. "\r\nIP-адрес 5:\t\t\t",
  378. };
  379. const int8_t *const pcInfoTableHeader = ( int8_t * )
  380. "\r\n*******Белый список IP адресов Контроллера*******\r\n";
  381. /* Return the next command help string, before moving the pointer on to
  382. the next command in the list. */
  383. strncpy( ( char * ) buf, ( const char * ) pcInfoTableHeader, strlen( ( char * ) pcInfoTableHeader ) );
  384. for (uint8_t i = 0; i < MAX_WHITE_LIST; i++) {
  385. GetWhiteListSTR(str, &len, i);
  386. strcat(( char * ) buf, name_range_ip[i]);
  387. strncat(( char * ) buf, str, len);
  388. }
  389. strcat(( char * ) buf, "\r\n");
  390. }
  391. #endif
  392. //Параметры ИБП
  393. void ups_sensor_param(int8_t *buf)
  394. {
  395. char str[20];
  396. uint8_t len = 0;
  397. GetConnectUPSAlarmStr(str, &len);
  398. strcat(( char * ) buf, "\r\nСвязь с ИБП:\t\t\t\t");
  399. strncat(( char * ) buf, str, len);
  400. const int8_t *const pcUPSInfoTableHeader = ( int8_t * )
  401. "\r\n\r\n***********Параметры источника питания***********\r\n";
  402. /* Return the next command help string, before moving the pointer on to
  403. the next command in the list. */
  404. strncat( ( char * ) buf, ( const char * ) pcUPSInfoTableHeader, strlen( ( char * ) pcUPSInfoTableHeader ) );
  405. GetInputVoltageStr(str, &len);
  406. strcat(( char * ) buf, "Входное напряжение (VAC):\t\t");
  407. strncat(( char * ) buf, str, len);
  408. strcat(( char * ) buf, "\r\nВыходное напряжение (VAC):\t\t");
  409. GetOutputVoltageStr(str, &len);
  410. strncat(( char * ) buf, str, len);
  411. #if HARDWARE_BT6709 || HARDWARE_BT6709_MTS || HARDWARE_BT6711
  412. GetInputCurrentStr(str, &len);
  413. strcat(( char * ) buf, "\r\nВходная сила тока (A):\t\t\t");
  414. strncat(( char * ) buf, str, len);
  415. strcat(( char * ) buf, "\r\nВыходная сила тока (A):\t\t\t");
  416. GetOutputCurrentStr(str, &len);
  417. strncat(( char * ) buf, str, len);
  418. #endif
  419. strcat(( char * ) buf, "\r\nВходная частота:\t\t\t");
  420. GetInputFreqStr(str, &len);
  421. strncat(( char * ) buf, str, len);
  422. strcat(( char * ) buf, "\r\nНагрузка:\t\t\t\t");
  423. GetPowerStr(str, &len);
  424. strncat(( char * ) buf, str, len);
  425. strcat(( char * ) buf, "\r\nТекущий режим:\t\t\t\t");
  426. str[0] = 0;
  427. GetModeStr(str, &len);
  428. strncat(( char * ) buf, str, len);
  429. strcat(( char * ) buf, "\r\nСтатус:\t\t\t\t\t");
  430. GetUPSAlarmStr(str, &len);
  431. strncat(( char * ) buf, str, len);
  432. strcat(( char * ) buf, "\r\n");
  433. }
  434. //Параметры аккумуляторных батарей
  435. void ups_sensor_akb_param(int8_t *buf)
  436. {
  437. char str[40];
  438. uint8_t len = 0;
  439. const int8_t *const pcAKBInfoTableHeader = ( int8_t * )
  440. "\r\n*********Параметры аккумуляторных батарей*********\r\n";
  441. /* Return the next command help string, before moving the pointer on to
  442. the next command in the list. */
  443. strncpy( ( char * ) buf, ( const char * ) pcAKBInfoTableHeader, strlen( ( char * ) pcAKBInfoTableHeader ) );
  444. GetBatCapacityStr(str, &len);
  445. strcat(( char * ) buf, "Оставшаяся емкость батареи (%):\t\t");
  446. strncat(( char * ) buf, str, len);
  447. strcat(( char * ) buf, "\r\nВнутренняя температура (°C):\t\t");
  448. GetInternalTempStr(str, &len);
  449. strncat(( char * ) buf, str, len);
  450. strcat(( char * ) buf, "\r\nОставшееся время работы (мин):\t\t");
  451. GetRuntimeStr(str, &len);
  452. strncat(( char * ) buf, str, len);
  453. #if HARDWARE_BT6709 || HARDWARE_BT6709_MTS || HARDWARE_BT6711
  454. GetCapacityNominalAKBStr(str, &len);
  455. strcat(( char * ) buf, "\r\nЕмкость батареи (Ач):\t\t\t");
  456. strncat(( char * ) buf, str, len);
  457. strcat(( char * ) buf, "\r\nНапряжение батареи (В):\t\t\t");
  458. GetVoltageAKBtStr(str, &len);
  459. strncat(( char * ) buf, str, len);
  460. #endif
  461. #if HARDWARE_BT6709 || HARDWARE_BT6709_MTS
  462. strcat(( char * ) buf, "\r\nДата следующей замены:\t\t\t");
  463. GetDataNextChangeAKBStrRU(str, &len);
  464. strncat(( char * ) buf, str, len);
  465. #endif
  466. strcat(( char * ) buf, "\r\nСтатус:\t\t\t\t\t");
  467. GetAKBAlarmStr(str, &len);
  468. strncat(( char * ) buf, str, len);
  469. strcat(( char * ) buf, "\r\n");
  470. }
  471. #ifdef DINS_ENABLE || DOUTS_ENABLE
  472. //Параметры сухих контактов
  473. void inouts_sensor_param(int8_t *buf)
  474. {
  475. char str[20];
  476. uint8_t len = 0;
  477. const int8_t *const pcInOutsInfoTableHeader = ( int8_t * )
  478. "\r\n************Параметры сухих контактов************\r\n";
  479. /* Return the next command help string, before moving the pointer on to
  480. the next command in the list. */
  481. strncpy( ( char * ) buf, ( const char * ) pcInOutsInfoTableHeader, strlen( ( char * ) pcInOutsInfoTableHeader ) );
  482. #ifdef DINS_ENABLE
  483. GetDIN0StatusStrRU(str, &len);
  484. strcat(( char * ) buf, "Дискретный вход:\t\t\t");
  485. strncat(( char * ) buf, str, len);
  486. #endif
  487. #ifdef DOUTS_ENABLE
  488. strcat(( char * ) buf, "\r\nРелейный выход 1:\t\t\t");
  489. GetDOUTStatusStrRU(str, &len, 0);
  490. strncat(( char * ) buf, str, len);
  491. strcat(( char * ) buf, "\r\nРелейный выход 2:\t\t\t");
  492. GetDOUTStatusStrRU(str, &len, 1);
  493. strncat(( char * ) buf, str, len);
  494. strcat(( char * ) buf, "\r\nРелейный выход 3:\t\t\t");
  495. GetDOUTStatusStrRU(str, &len, 2);
  496. strncat(( char * ) buf, str, len);
  497. #endif
  498. strcat(( char * ) buf, "\r\n");
  499. }
  500. #endif