CLI_Parameters.c 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761
  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 || DALLAS_SENSOR_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. #ifdef HARDWARE_BT6710
  63. const int8_t *const pcInOutsTableHeader = ( int8_t * )
  64. "\r\n***********Настройки Датчиков Контроллера**************\r\n";
  65. #else
  66. const int8_t *const pcInOutsTableHeader = ( int8_t * )
  67. "\r\n*********Настройки сухих контактов Контроллера*********\r\n";
  68. #endif
  69. const int8_t *const pcDryInsTableHeader = ( int8_t * ) "Дискретные входы\r\n";
  70. #ifdef HARDWARE_BT6710
  71. const int8_t *const pcDryInsTableHeader2 = ( int8_t * ) "\r\n№ Название\t\tНормальное состояние\r\n";
  72. #else
  73. const int8_t *const pcDryInsTableHeader2 = ( int8_t * ) "\r\n№\t\tНормальное состояние\r\n";
  74. #endif
  75. const int8_t *const pcTempSensorTableHeader = ( int8_t * ) "Датчики температуры\r\n";
  76. const int8_t *const pcTempSensorTableHeader2 = ( int8_t * ) "\r\n№\t\tНазначение\r\n";
  77. const int8_t *const pcRelaysTableHeader = ( int8_t * ) "Релейные выходы\r\n";
  78. const int8_t *const pcRelaysTableHeader2 = ( int8_t * ) "\r\n№\t\tИсточник\r\n";
  79. const int8_t *const pcSharedTableHeader = ( int8_t * ) "------------+--------------------------------------------\r\n";
  80. /* Return the next command help string, before moving the pointer on to
  81. the next command in the list. */
  82. strncpy( ( char * ) buf, ( const char * ) pcInOutsTableHeader, strlen( ( char * ) pcInOutsTableHeader ) );
  83. #ifdef DINS_ENABLE
  84. strncat( ( char * ) buf, ( const char * ) pcDryInsTableHeader, strlen( ( char * ) pcDryInsTableHeader ) );
  85. strncat( ( char * ) buf, ( const char * ) pcDryInsTableHeader2, strlen( ( char * ) pcDryInsTableHeader2 ) );
  86. strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) );
  87. for (uint8_t i = 0; i < INPUTS_TOTAL_COUNT; i ++) {
  88. memset(str_temp, 0, strlen(str_temp));
  89. sprintf(str_temp, "%d:\t\t", i);
  90. strcat(( char * ) buf, str_temp);
  91. #ifdef HARDWARE_BT6710
  92. GetDINNameStr(str, &len, i);
  93. strncat(( char * ) buf, str, len);
  94. #endif
  95. strcat(( char * ) buf, "\t\t");
  96. GetDINTypeActStr(str, &len, i);
  97. switch (str[0]) {
  98. case '0':
  99. strcat(( char * ) buf, "Разомкнут\r\n");
  100. break;
  101. case '1':
  102. strcat(( char * ) buf, "Замкнут\r\n");
  103. break;
  104. }
  105. }
  106. strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) );
  107. strcat(( char * ) buf, "\r\n");
  108. #endif
  109. #ifdef DALLAS_SENSOR_ENABLE
  110. strncat( ( char * ) buf, ( const char * ) pcTempSensorTableHeader, strlen( ( char * ) pcTempSensorTableHeader ) );
  111. strncat( ( char * ) buf, ( const char * ) pcDryInsTableHeader2, strlen( ( char * ) pcTempSensorTableHeader2 ) );
  112. strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) );
  113. for (uint8_t i =0; i < MAX_T_SENSORS; i ++) {
  114. memset(str_temp, 0, strlen(str_temp));
  115. sprintf(str_temp, "%d:\t\t", i);
  116. strcat(( char * ) buf, str_temp);
  117. GetTSlocationStr(str, &len, i);
  118. strncat(( char * ) buf, str, len);
  119. strcat(( char * ) buf, "\r\n");
  120. }
  121. strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) );
  122. strcat(( char * ) buf, "\r\n");
  123. #endif
  124. #ifdef DOUTS_ENABLE
  125. strncat( ( char * ) buf, ( const char * ) pcRelaysTableHeader, strlen( ( char * ) pcRelaysTableHeader ) );
  126. strncat( ( char * ) buf, ( const char * ) pcRelaysTableHeader2, strlen( ( char * ) pcRelaysTableHeader2 ) );
  127. strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) );
  128. for (uint8_t i = 0; i < OUTPUTS_TOTAL_COUNT; i++) {
  129. GetROTypeActStr(str, &len, i);
  130. memset(str_temp, 0, strlen(str_temp));
  131. sprintf(str_temp, "%d:\t\t", i);
  132. strncat(( char * ) buf, str_temp, strlen(str_temp));
  133. switch (str[0]) {
  134. case '0':
  135. strcat(( char * ) buf, "Наличие сети\r\n");
  136. break;
  137. case '1':
  138. strcat(( char * ) buf, "Наличие выходного напряжения\r\n");
  139. break;
  140. case '2':
  141. strcat(( char * ) buf, "Разряд АКБ\r\n");
  142. break;
  143. case '3':
  144. strcat(( char * ) buf, "Отключение АКБ\r\n");
  145. break;
  146. case '4':
  147. strcat(( char * ) buf, "SNMP SET\r\n");
  148. break;
  149. }
  150. strcat(( char * ) buf, "\r\n");
  151. }
  152. strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) );
  153. #endif
  154. }
  155. #endif
  156. //Сетевые настройки
  157. void net_config_param(int8_t *buf)
  158. {
  159. char str[20];
  160. uint8_t len = 0;
  161. const int8_t *const pcInfoTableHeader = ( int8_t * )
  162. "\r\n*********Сетевые настройки Контроллера*********\r\n";
  163. /* Return the next command help string, before moving the pointer on to
  164. the next command in the list. */
  165. strncpy( ( char * ) buf, ( const char * ) pcInfoTableHeader, strlen( ( char * ) pcInfoTableHeader ) );
  166. GetDhcpStateStrRu(str, &len);
  167. strcat(( char * ) buf, "DHCP:\t\t\t\t");
  168. strncat(( char * ) buf, str, len);
  169. strcat(( char * ) buf, "\r\nIP адрес:\t\t\t");
  170. GetIpStr(str, &len);
  171. strncat(( char * ) buf, str, len);
  172. strcat(( char * ) buf, "\r\nАдрес шлюза:\t\t\t");
  173. GetGatewayStr(str, &len);
  174. strncat(( char * ) buf, str, len);
  175. strcat(( char * ) buf, "\r\nАдрес маски подсети:\t\t");
  176. GetMaskStr(str, &len);
  177. strncat(( char * ) buf, str, len);
  178. strcat(( char * ) buf, "\r\n");
  179. }
  180. #ifdef SYSLOG_ENABLE
  181. void syslog_config_param(int8_t *buf)
  182. {
  183. char str[100];
  184. uint8_t len = 0;
  185. const int8_t *const pcInfoTableHeader = ( int8_t * )
  186. "\r\n****************SysLog настройки ******************\r\n";
  187. strncpy( ( char * ) buf, ( const char * ) pcInfoTableHeader, strlen( ( char * ) pcInfoTableHeader ) );
  188. GetSyslogEnableStrRU(str, &len);
  189. strcat(( char * ) buf, "Передача по SysLog:\t\t");
  190. strncat(( char * ) buf, str, len);
  191. strcat(( char * ) buf, "\r\nIP адрес сервера:\t\t");
  192. GetSyslogServer(str, &len);
  193. strncat(( char * ) buf, str, len);
  194. strcat(( char * ) buf, "\r\nПорт сервера:\t\t\t");
  195. GetSyslogPort(str, &len);
  196. strncat(( char * ) buf, str, len);
  197. strcat(( char * ) buf, "\r\n");
  198. }
  199. #endif
  200. #ifdef RADIUS_SERVER_ENABLE
  201. void radius_config_param(int8_t *buf)
  202. {
  203. char str[100];
  204. uint8_t len = 0;
  205. const int8_t *const pcInfoTableHeader = ( int8_t * )
  206. "\r\n***************RADIUS настройки***************\r\n";
  207. strncpy( ( char * ) buf, ( const char * ) pcInfoTableHeader, strlen( ( char * ) pcInfoTableHeader ) );
  208. GetRADIUSEnableStrRU(str, &len);
  209. strcat(( char * ) buf, "Аторизация по RADIUS:\t\t");
  210. strncat(( char * ) buf, str, len);
  211. strcat(( char * ) buf, "\r\nIP адрес сервера:\t\t");
  212. GetRDSIpStr(str, &len);
  213. strncat(( char * ) buf, str, len);
  214. strcat(( char * ) buf, "\r\nПорт сервера:\t\t\t");
  215. GetRDSPortStr(str, &len);
  216. strncat(( char * ) buf, str, len);
  217. strcat(( char * ) buf, "\r\nПароль сервера:\t\t\t");
  218. GetRDSPasswordkStr(str, &len);
  219. strncat(( char * ) buf, str, len);
  220. strcat(( char * ) buf, "\r\n");
  221. }
  222. #endif
  223. #ifdef PORTGW_ENABLE
  224. void pgw_config_param(int8_t *buf)
  225. {
  226. char str[100];
  227. uint8_t len = 0;
  228. const int8_t *const pcInfoTableHeader = ( int8_t * )
  229. "\r\n**********Настройки прозрачного канала**********\r\n";
  230. const int8_t *const pcPGWnetTableHeader = ( int8_t * ) "Сетевые настройки\r\n";
  231. const int8_t *const pcRS485TableHeader = ( int8_t * ) "Настройки RS-485 интерфейса\r\n";
  232. const int8_t *const pcSharedTableHeader = ( int8_t * ) "\r\n------------------+----------------------------\r\n";
  233. strncpy( ( char * ) buf, ( const char * ) pcInfoTableHeader, strlen( ( char * ) pcInfoTableHeader ) );
  234. GetPortGwEnabledRUStr(str, &len);
  235. strcat(( char * ) buf, "Работа по прозрачному порту:\t");
  236. strncat(( char * ) buf, str, len);
  237. strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) );
  238. strncat( ( char * ) buf, ( const char * ) pcPGWnetTableHeader, strlen( ( char * ) pcPGWnetTableHeader ) );
  239. strcat(( char * ) buf, "\r\nПорт:\t\t\t\t");
  240. GetPortGwPortnumStr(str, &len);
  241. strncat(( char * ) buf, str, len);
  242. strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) );
  243. strncat( ( char * ) buf, ( const char * ) pcRS485TableHeader, strlen( ( char * ) pcRS485TableHeader ) );
  244. strcat(( char * ) buf, "\r\nСкорость:\t\t\t");
  245. GetPortGwBaudStr(str, &len);
  246. strncat(( char * ) buf, str, len);
  247. strcat(( char * ) buf, "\r\nЧетность:\t\t\t");
  248. GetPortGwParityRUStr(str, &len);
  249. strncat(( char * ) buf, str, len);
  250. strcat(( char * ) buf, "\r\nБиты данных:\t\t\t");
  251. GetPortGwDatabitsStr(str, &len);
  252. strncat(( char * ) buf, str, len);
  253. strcat(( char * ) buf, "\r\nСтоповые биты:\t\t\t");
  254. GetPortGwStopbitsStr(str, &len);
  255. strncat(( char * ) buf, str, len);
  256. strcat(( char * ) buf, "\r\n");
  257. }
  258. #endif
  259. //Настройки времени
  260. void time_config_param(int8_t *buf)
  261. {
  262. char str[20];
  263. uint8_t len = 0;
  264. const int8_t *const pcTimeTableHeader = ( int8_t * )
  265. "\r\n*********Настройки времени Контроллера*********\r\n";
  266. /* Return the next command help string, before moving the pointer on to
  267. the next command in the list. */
  268. strncpy( ( char * ) buf, ( const char * ) pcTimeTableHeader, strlen( ( char * ) pcTimeTableHeader ) );
  269. GetSntpStateStrRU(str, &len);
  270. strcat(( char * ) buf, "Режим установки времени:\t");
  271. strncat(( char * ) buf, str, len);
  272. strcat(( char * ) buf, "\r\nЧасовой пояс:\t\t\t");
  273. GetSntpTimeZoneStr(str, &len);
  274. strncat(( char * ) buf, str, len);
  275. if (sSettings.sSNTP.sntpEnable) {
  276. strcat(( char * ) buf, "\r\nIP адрес NTP сервера:\t\t");
  277. GetSntpServerIpStr(str, &len);
  278. strncat(( char * ) buf, str, len);
  279. strcat(( char * ) buf, "\r\nПоследняя дата синхронизации:\t");
  280. GetSntpLastDataStr(str, &len);
  281. strncat(( char * ) buf, str, len);
  282. } else {
  283. GetDateStr(str, &len);
  284. strcat(( char * ) buf, "\r\nДата:\t\t\t");
  285. strncat(( char * ) buf, str, len);
  286. strcat(( char * ) buf, "\r\nВремя:\t\t\t");
  287. GetTimeStr(str, &len);
  288. strncat(( char * ) buf, str, len);
  289. }
  290. strcat(( char * ) buf, "\r\n");
  291. }
  292. //Настройки АКБ
  293. void akb_config_param(int8_t *buf)
  294. {
  295. char str[20];
  296. uint8_t len = 0;
  297. const int8_t *const pcAKBTableHeader = ( int8_t * )
  298. "\r\n*********Настройки аккумуляторов ИБП*********\r\n";
  299. /* Return the next command help string, before moving the pointer on to
  300. the next command in the list. */
  301. strncpy( ( char * ) buf, ( const char * ) pcAKBTableHeader, strlen( ( char * ) pcAKBTableHeader ) );
  302. GetUPSVoltCellMinStr(str, &len);
  303. strcat(( char * ) buf, "Мин. напряжение ячейки (В):\t\t");
  304. strncat(( char * ) buf, str, len);
  305. strcat(( char * ) buf, "\r\nМакс. напряжение ячейки (В):\t\t");
  306. GetUPSVoltCellMaxStr(str, &len);
  307. strncat(( char * ) buf, str, len);
  308. #if HARDWARE_BT6709 || HARDWARE_BT6709_MTS || HARDWARE_BT6711 || HARDWARE_BT6711_V1 || HARDWARE_BT6710
  309. GetVoltageAKBNominalStr(str, &len);
  310. strcat(( char * ) buf, "\r\nНоминальное напряжение (В):\t\t");
  311. strncat(( char * ) buf, str, len);
  312. strcat(( char * ) buf, "\r\nЁмкость (Ач):\t\t\t\t");
  313. GetCapacityNominalAKBStr(str, &len);
  314. strncat(( char * ) buf, str, len);
  315. GetUPSPowerStr(str, &len);
  316. strcat(( char * ) buf, "\r\nПолная мощность ИБП (ВА):\t\t");
  317. strncat(( char * ) buf, str, len);
  318. #endif
  319. #if HARDWARE_BT6709 || HARDWARE_BT6709_MTS || HARDWARE_BT6710
  320. GetLifeTimeAKBStr(str, &len);
  321. strcat(( char * ) buf, "\r\nСрок службы (лет):\t\t\t");
  322. strncat(( char * ) buf, str, len);
  323. strcat(( char * ) buf, "\r\nДата установки:\t\t\t\t");
  324. GetDataSetAKBStr(str, &len);
  325. strncat(( char * ) buf, str, len);
  326. #endif
  327. strcat(( char * ) buf, "\r\n");
  328. }
  329. //Настройки Аварий
  330. void alarm_config_param(int8_t *buf)
  331. {
  332. char str[20];
  333. uint8_t len = 0;
  334. const char *name_range_alarm[] = {
  335. "Нижняя граница:\t\t\t",
  336. "\r\nВерхняя граница:\t\t",
  337. "\r\nГистерезис:\t\t\t",
  338. };
  339. const int8_t *const pcAlarmTableHeader = ( int8_t * )
  340. "\r\n*********Настройки Аварийных границ*********\r\n";
  341. /* Return the next command help string, before moving the pointer on to
  342. the next command in the list. */
  343. strncpy( ( char * ) buf, ( const char * ) pcAlarmTableHeader, strlen( ( char * ) pcAlarmTableHeader ) );
  344. const int8_t *const pcAlarmTempTableHeader = ( int8_t * )
  345. "\r\n*************Температура (°C)************\r\n";
  346. /* Return the next command help string, before moving the pointer on to
  347. the next command in the list. */
  348. strncat( ( char * ) buf, ( const char * ) pcAlarmTempTableHeader, strlen( ( char * ) pcAlarmTempTableHeader ) );
  349. GetTemperatureAlarmLowRangeStr(str, &len);
  350. strcat(( char * ) buf, name_range_alarm[0]);
  351. strncat(( char * ) buf, str, len);
  352. strcat(( char * ) buf, name_range_alarm[1]);
  353. GetTemperatureAlarmHighRangeStr(str, &len);
  354. strncat(( char * ) buf, str, len);
  355. strcat(( char * ) buf, name_range_alarm[2]);
  356. GetTemperatureAlarmHisteStr(str, &len);
  357. strncat(( char * ) buf, str, len);
  358. strcat(( char * ) buf, "\r\n");
  359. #ifndef HARDWARE_BT6710
  360. const int8_t *const pcAlarmLoadTableHeader = ( int8_t * ) "\r\n***************Нагрузка (%)**************";
  361. /* Return the next command help string, before moving the pointer on to
  362. the next command in the list. */
  363. strncat( ( char * ) buf, ( const char * ) pcAlarmLoadTableHeader, strlen( ( char * ) pcAlarmLoadTableHeader ) );
  364. strcat(( char * ) buf, name_range_alarm[1]);
  365. GetLoadAlarmHighRangeStr(str, &len);
  366. strncat(( char * ) buf, str, len);
  367. strcat(( char * ) buf, name_range_alarm[2]);
  368. GetLoadAlarmHisteStr(str, &len);
  369. strncat(( char * ) buf, str, len);
  370. strcat(( char * ) buf, "\r\n");
  371. #endif
  372. const int8_t *const pcAlarmVoutTableHeader = ( int8_t * )
  373. "\r\n*********Выходное напряжение (В)*********\r\n";
  374. /* Return the next command help string, before moving the pointer on to
  375. the next command in the list. */
  376. strncat( ( char * ) buf, ( const char * ) pcAlarmVoutTableHeader, strlen( ( char * ) pcAlarmVoutTableHeader ) );
  377. GetVACAlarmLowRangeStr(str, &len);
  378. strcat(( char * ) buf, name_range_alarm[0]);
  379. strncat(( char * ) buf, str, len);
  380. strcat(( char * ) buf, name_range_alarm[1]);
  381. GetVACAlarmHighRangeStr(str, &len);
  382. strncat(( char * ) buf, str, len);
  383. strcat(( char * ) buf, name_range_alarm[2]);
  384. GetVACAlarmHisteStr(str, &len);
  385. strncat(( char * ) buf, str, len);
  386. strcat(( char * ) buf, "\r\n");
  387. #ifdef TEMP_CABINET_MONITOR
  388. const int8_t *const pcAlarmTempCabinetTableHeader = ( int8_t * )
  389. "\r\n********Температура Шкафа(°C)********\r\n";
  390. /* Return the next command help string, before moving the pointer on to
  391. the next command in the list. */
  392. strncat( ( char * ) buf, ( const char * ) pcAlarmTempCabinetTableHeader, strlen( ( char * ) pcAlarmTempCabinetTableHeader ) );
  393. GetTemperatureCabinetAlarmLowRangeStr(str, &len);
  394. strcat(( char * ) buf, name_range_alarm[0]);
  395. strncat(( char * ) buf, str, len);
  396. strcat(( char * ) buf, name_range_alarm[1]);
  397. GetTemperatureCabinetAlarmHighRangeStr(str, &len);
  398. strncat(( char * ) buf, str, len);
  399. strcat(( char * ) buf, name_range_alarm[2]);
  400. GetTemperatureCabinetAlarmHisteStr(str, &len);
  401. strncat(( char * ) buf, str, len);
  402. strcat(( char * ) buf, "\r\n");
  403. #endif
  404. #ifdef VAC_IN_MONITOR
  405. const int8_t *const pcAlarmVinTableHeader = ( int8_t * )
  406. "\r\n*********Входное напряжение (В)*********\r\n";
  407. /* Return the next command help string, before moving the pointer on to
  408. the next command in the list. */
  409. strncat( ( char * ) buf, ( const char * ) pcAlarmVinTableHeader, strlen( ( char * ) pcAlarmVinTableHeader ) );
  410. GetVACInputAlarmHighRangeStr(str, &len);
  411. strcat(( char * ) buf, name_range_alarm[0]);
  412. strncat(( char * ) buf, str, len);
  413. strcat(( char * ) buf, name_range_alarm[1]);
  414. GetVACInputAlarmLowRangeStr(str, &len);
  415. strncat(( char * ) buf, str, len);
  416. strcat(( char * ) buf, name_range_alarm[2]);
  417. GetVACInputAlarmLowRangeStr(str, &len);
  418. strncat(( char * ) buf, str, len);
  419. strcat(( char * ) buf, "\r\n");
  420. #endif
  421. }
  422. #ifdef NOTIFICATION_CONTROL_ENABLE
  423. //Список уведомлений и их состояние
  424. void notification_param(int8_t *buf)
  425. {
  426. char str[100];
  427. uint8_t len = 0;
  428. uint8_t i;
  429. const int8_t *const pcNotificationTableHeader = ( int8_t * )
  430. "\r\n*************Список уведомлений*******************\r\n";
  431. /* Return the next command help string, before moving the pointer on to
  432. the next command in the list. */
  433. strncpy( ( char * ) buf, ( const char * ) pcNotificationTableHeader, strlen( ( char * ) pcNotificationTableHeader ) );
  434. for (i = 1; i < ALL_TRAPS; i++) {
  435. sprintf(str, "%d. ", i);
  436. len = strlen(str);
  437. strncat(buf, str, len);
  438. GetTrapLongNameStr(str, &len, i);
  439. strncat(buf, str, len);
  440. if ( len < 25 ) {
  441. strcat(buf, "\t\t\t\t\t");
  442. } else if (len > 37 && len <= 47) {
  443. strcat(buf, "\t\t\t");
  444. } else if (len > 47) {
  445. strcat(buf, "\t\t");
  446. } else {
  447. strcat(buf, "\t\t\t\t");
  448. }
  449. GetNotificationTrapsStateStr2(str, &len, i);
  450. strncat(buf, str, len);
  451. strcat(( char * ) buf, "\r\n");
  452. }
  453. strcat(( char * ) buf, "\r\n");
  454. }
  455. #endif
  456. #ifdef WHITELIST_ENABLE
  457. //Белый список IP адресов контроллера
  458. void whitelist_config_param(int8_t *buf)
  459. {
  460. char str[20];
  461. uint8_t len = 0;
  462. uint8_t i;
  463. const char *name_range_ip[] = {
  464. "IP-адрес 1:\t\t\t",
  465. "\r\nIP-адрес 2:\t\t\t",
  466. "\r\nIP-адрес 3:\t\t\t",
  467. "\r\nIP-адрес 4:\t\t\t",
  468. "\r\nIP-адрес 5:\t\t\t",
  469. };
  470. const int8_t *const pcInfoTableHeader = ( int8_t * )
  471. "\r\n*******Белый список IP адресов Контроллера*******\r\n";
  472. /* Return the next command help string, before moving the pointer on to
  473. the next command in the list. */
  474. strncpy( ( char * ) buf, ( const char * ) pcInfoTableHeader, strlen( ( char * ) pcInfoTableHeader ) );
  475. for (uint8_t i = 0; i < MAX_WHITE_LIST; i++) {
  476. GetWhiteListSTR(str, &len, i);
  477. strcat(( char * ) buf, name_range_ip[i]);
  478. strncat(( char * ) buf, str, len);
  479. }
  480. strcat(( char * ) buf, "\r\n");
  481. }
  482. #endif
  483. //Параметры ИБП
  484. void ups_sensor_param(int8_t *buf)
  485. {
  486. char str[20];
  487. uint8_t len = 0;
  488. GetConnectUPSAlarmStr(str, &len);
  489. strcat(( char * ) buf, "\r\nСвязь с ИБП:\t\t\t\t");
  490. strncat(( char * ) buf, str, len);
  491. const int8_t *const pcUPSInfoTableHeader = ( int8_t * )
  492. "\r\n\r\n***********Параметры источника питания***********\r\n";
  493. /* Return the next command help string, before moving the pointer on to
  494. the next command in the list. */
  495. strncat( ( char * ) buf, ( const char * ) pcUPSInfoTableHeader, strlen( ( char * ) pcUPSInfoTableHeader ) );
  496. GetInputVoltageStr(str, &len);
  497. strcat(( char * ) buf, "Входное напряжение (VAC):\t\t");
  498. strncat(( char * ) buf, str, len);
  499. strcat(( char * ) buf, "\r\nВыходное напряжение (VAC):\t\t");
  500. GetOutputVoltageStr(str, &len);
  501. strncat(( char * ) buf, str, len);
  502. #if HARDWARE_BT6709 || HARDWARE_BT6709_MTS || HARDWARE_BT6711 || HARDWARE_BT6711_V1 || HARDWARE_BT6710
  503. GetInputCurrentStr(str, &len);
  504. strcat(( char * ) buf, "\r\nВходная сила тока (A):\t\t\t");
  505. strncat(( char * ) buf, str, len);
  506. strcat(( char * ) buf, "\r\nВыходная сила тока (A):\t\t\t");
  507. GetOutputCurrentStr(str, &len);
  508. strncat(( char * ) buf, str, len);
  509. #endif
  510. strcat(( char * ) buf, "\r\nВходная частота:\t\t\t");
  511. GetInputFreqStr(str, &len);
  512. strncat(( char * ) buf, str, len);
  513. strcat(( char * ) buf, "\r\nНагрузка:\t\t\t\t");
  514. GetPowerStr(str, &len);
  515. strncat(( char * ) buf, str, len);
  516. #if HARDWARE_BT6709 || HARDWARE_BT6711 || HARDWARE_BT6711_V1
  517. strcat(( char * ) buf, "\r\nНагрузка (Режим АКБ):\t\t\t");
  518. GetLoadAKBModeStr(str, &len);
  519. strncat(( char * ) buf, str, len);
  520. strcat(( char * ) buf, " (");
  521. GetDataFormatCheckLoadStr(str, &len);
  522. strncat(( char * ) buf, str, len);
  523. strcat(( char * ) buf, ")");
  524. #endif
  525. strcat(( char * ) buf, "\r\nТекущий режим:\t\t\t\t");
  526. str[0] = 0;
  527. GetModeStr(str, &len);
  528. strncat(( char * ) buf, str, len);
  529. strcat(( char * ) buf, "\r\nСтатус:\t\t\t\t\t");
  530. GetUPSAlarmStr(str, &len);
  531. strncat(( char * ) buf, str, len);
  532. strcat(( char * ) buf, "\r\n");
  533. }
  534. //Параметры аккумуляторных батарей
  535. void ups_sensor_akb_param(int8_t *buf)
  536. {
  537. char str[40];
  538. uint8_t len = 0;
  539. const int8_t *const pcAKBInfoTableHeader = ( int8_t * )
  540. "\r\n*********Параметры аккумуляторных батарей*********\r\n";
  541. /* Return the next command help string, before moving the pointer on to
  542. the next command in the list. */
  543. strncpy( ( char * ) buf, ( const char * ) pcAKBInfoTableHeader, strlen( ( char * ) pcAKBInfoTableHeader ) );
  544. GetBatCapacityStr(str, &len);
  545. strcat(( char * ) buf, "Оставшаяся емкость батареи (%):\t\t");
  546. strncat(( char * ) buf, str, len);
  547. strcat(( char * ) buf, "\r\nВнутренняя температура (°C):\t\t");
  548. GetInternalTempStr(str, &len);
  549. strncat(( char * ) buf, str, len);
  550. strcat(( char * ) buf, "\r\nОставшееся время работы (мин):\t\t");
  551. GetRuntimeStr(str, &len);
  552. strncat(( char * ) buf, str, len);
  553. #if HARDWARE_BT6709 || HARDWARE_BT6709_MTS || HARDWARE_BT6710 || HARDWARE_BT6711 || HARDWARE_BT6711_V1
  554. GetCapacityNominalAKBStr(str, &len);
  555. strcat(( char * ) buf, "\r\nЕмкость батареи (Ач):\t\t\t");
  556. strncat(( char * ) buf, str, len);
  557. strcat(( char * ) buf, "\r\nНапряжение батареи (В):\t\t\t");
  558. GetVoltageAKBtStr(str, &len);
  559. strncat(( char * ) buf, str, len);
  560. #endif
  561. #if HARDWARE_BT6709 || HARDWARE_BT6709_MTS || HARDWARE_BT6710
  562. strcat(( char * ) buf, "\r\nДата следующей замены:\t\t\t");
  563. GetDataNextChangeAKBStrRU(str, &len);
  564. strncat(( char * ) buf, str, len);
  565. #endif
  566. strcat(( char * ) buf, "\r\nСтатус:\t\t\t\t\t");
  567. GetAKBAlarmStr(str, &len);
  568. strncat(( char * ) buf, str, len);
  569. strcat(( char * ) buf, "\r\n");
  570. }
  571. #ifdef DINS_ENABLE || DOUTS_ENABLE
  572. //Параметры сухих контактов
  573. void inouts_sensor_param(int8_t *buf)
  574. {
  575. char str[20];
  576. uint8_t len = 0;
  577. #ifdef HARDWARE_BT6710
  578. const int8_t *const pcInOutsInfoTableHeader = ( int8_t * )
  579. "\r\n****************Датчики Контроллера***************\r\n";
  580. #else
  581. const int8_t *const pcInOutsInfoTableHeader = ( int8_t * )
  582. "\r\n************Параметры сухих контактов************\r\n";
  583. #endif
  584. /* Return the next command help string, before moving the pointer on to
  585. the next command in the list. */
  586. strncpy( ( char * ) buf, ( const char * ) pcInOutsInfoTableHeader, strlen( ( char * ) pcInOutsInfoTableHeader ) );
  587. #ifdef DINS_ENABLE
  588. #ifdef HARDWARE_BT6710
  589. for(uint8_t i = 0; i < INPUTS_TOTAL_COUNT; i ++) {
  590. GetDINNameStr(str, &len, i);
  591. strncat(( char * ) buf, str, len);
  592. strcat(( char * ) buf, "\t\t\t\t\t");
  593. GetDINStatusStrRU(str, &len, i);
  594. strncat(( char * ) buf, str, len);
  595. if(i != (INPUTS_TOTAL_COUNT - 1)) {
  596. strcat(( char * ) buf, "\r\n");
  597. }
  598. }
  599. #else
  600. GetDINStatusStrRU(str, &len, 0);
  601. strcat(( char * ) buf, "Дискретный вход:\t\t\t");
  602. strncat(( char * ) buf, str, len);
  603. #endif
  604. #endif
  605. #ifdef DOUTS_ENABLE
  606. strcat(( char * ) buf, "\r\nРелейный выход 1:\t\t\t");
  607. GetDOUTStatusStrRU(str, &len, 0);
  608. strncat(( char * ) buf, str, len);
  609. strcat(( char * ) buf, "\r\nРелейный выход 2:\t\t\t");
  610. GetDOUTStatusStrRU(str, &len, 1);
  611. strncat(( char * ) buf, str, len);
  612. strcat(( char * ) buf, "\r\nРелейный выход 3:\t\t\t");
  613. GetDOUTStatusStrRU(str, &len, 2);
  614. strncat(( char * ) buf, str, len);
  615. #endif
  616. #ifdef DALLAS_SENSOR_ENABLE
  617. GetTempCaseStr(str, &len);
  618. strcat(( char * ) buf, "\r\nТемпература в шкафу (°C):\t\t");
  619. strncat(( char * ) buf, str, len);
  620. #endif
  621. strcat(( char * ) buf, "\r\n");
  622. }
  623. #endif