/* * CLI_Parameters.c * * Created on: 04.12.2017 * Author: balbekova */ #include #include #ifdef PRINTF_STDLIB #include #endif #ifdef PRINTF_CUSTOM #include "tinystdio.h" #endif #include "CLI_Parameters.h" #include "parameters.h" #include "settings_api.h" /** * @brief Общая структура настроек */ extern SETTINGS_t sSettings; //Настройки SNMP void snmp_config_param(int8_t *buf) { char str[20]; uint8_t len = 0; const int8_t *const pcInfoTableHeader = ( int8_t * ) "\r\n***********SNMP настройки Контроллера***********\r\n"; /* Return the next command help string, before moving the pointer on to the next command in the list. */ strncpy( ( char * ) buf, ( const char * ) pcInfoTableHeader, strlen( ( char * ) pcInfoTableHeader ) ); GetManagerIp(str, &len); strcat(( char * ) buf, "Ceрвер 1:\t\t\t"); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nСервер 2:\t\t\t"); GetManagerIp2(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nСервер 3:\t\t\t"); GetManagerIp3(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nСервер 4:\t\t\t"); GetManagerIp4(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nСервер 5:\t\t\t"); GetManagerIp5(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nRead community:\t\t\t"); GetReadCommunity(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nWrite community:\t\t"); GetWriteCommunity(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\n"); } #ifdef DINS_ENABLE || DOUTS_ENABLE || DALLAS_SENSOR_ENABLE || AM2301_SENSOR_ENABLE //Настройки сухих контактов void inouts_config_param(int8_t *buf) { char str[20]; char str_temp[20]; uint8_t len = 0; #ifdef HARDWARE_BT6710 const int8_t *const pcInOutsTableHeader = ( int8_t * ) "\r\n***********Настройки Датчиков Контроллера**************\r\n"; #else const int8_t *const pcInOutsTableHeader = ( int8_t * ) "\r\n*********Настройки сухих контактов Контроллера*********\r\n"; #endif const int8_t *const pcDryInsTableHeader = ( int8_t * ) "Дискретные входы\r\n"; #ifdef HARDWARE_BT6710 const int8_t *const pcDryInsTableHeader2 = ( int8_t * ) "\r\n№ Название\t\tНормальное состояние\r\n"; #else const int8_t *const pcDryInsTableHeader2 = ( int8_t * ) "\r\n№\t\tНормальное состояние\r\n"; #endif const int8_t *const pcTempSensorTableHeader = ( int8_t * ) "Датчики температуры\r\n"; const int8_t *const pcTempSensorTableHeader2 = ( int8_t * ) "\r\n№\t\tНазначение\r\n"; const int8_t *const pcRelaysTableHeader = ( int8_t * ) "Релейные выходы\r\n"; const int8_t *const pcRelaysTableHeader2 = ( int8_t * ) "\r\n№\t\tИсточник\r\n"; const int8_t *const pcSharedTableHeader = ( int8_t * ) "------------+--------------------------------------------\r\n"; /* Return the next command help string, before moving the pointer on to the next command in the list. */ strncpy( ( char * ) buf, ( const char * ) pcInOutsTableHeader, strlen( ( char * ) pcInOutsTableHeader ) ); #ifdef DINS_ENABLE strncat( ( char * ) buf, ( const char * ) pcDryInsTableHeader, strlen( ( char * ) pcDryInsTableHeader ) ); strncat( ( char * ) buf, ( const char * ) pcDryInsTableHeader2, strlen( ( char * ) pcDryInsTableHeader2 ) ); strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) ); for (uint8_t i = 0; i < INPUTS_TOTAL_COUNT; i ++) { memset(str_temp, 0, strlen(str_temp)); sprintf(str_temp, "%d: ", i); strcat(( char * ) buf, str_temp); #ifdef HARDWARE_BT6710 GetDINNameStr(str, &len, i); strncat(( char * ) buf, str, len); #endif strcat(( char * ) buf, "\t\t"); GetDINTypeActStr(str, &len, i); switch (str[0]) { case '0': strcat(( char * ) buf, "Разомкнут\r\n"); break; case '1': strcat(( char * ) buf, "Замкнут\r\n"); break; } } strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) ); strcat(( char * ) buf, "\r\n"); #endif #if defined(DALLAS_SENSOR_ENABLE) || defined(AM2301_SENSOR_ENABLE) strncat( ( char * ) buf, ( const char * ) pcTempSensorTableHeader, strlen( ( char * ) pcTempSensorTableHeader ) ); strncat( ( char * ) buf, ( const char * ) pcTempSensorTableHeader2, strlen( ( char * ) pcTempSensorTableHeader2 ) ); strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) ); for (uint8_t i =0; i < MAX_T_SENSORS; i ++) { memset(str_temp, 0, strlen(str_temp)); memset(str, 0, strlen(str)); sprintf(str_temp, "%d:\t\t", i); strcat(( char * ) buf, str_temp); GetTSlocationStr(str, &len, i); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\n"); } strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) ); strcat(( char * ) buf, "\r\n"); #endif #ifdef DOUTS_ENABLE strncat( ( char * ) buf, ( const char * ) pcRelaysTableHeader, strlen( ( char * ) pcRelaysTableHeader ) ); strncat( ( char * ) buf, ( const char * ) pcRelaysTableHeader2, strlen( ( char * ) pcRelaysTableHeader2 ) ); strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) ); for (uint8_t i = 0; i < OUTPUTS_TOTAL_COUNT; i++) { GetROTypeActStr(str, &len, i); memset(str_temp, 0, strlen(str_temp)); sprintf(str_temp, "%d:\t\t", i); strncat(( char * ) buf, str_temp, strlen(str_temp)); switch (str[0]) { case '0': strcat(( char * ) buf, "Наличие сети\r\n"); break; case '1': strcat(( char * ) buf, "Наличие выходного напряжения\r\n"); break; case '2': strcat(( char * ) buf, "Разряд АКБ\r\n"); break; case '3': strcat(( char * ) buf, "Отключение АКБ\r\n"); break; case '4': strcat(( char * ) buf, "SNMP SET\r\n"); break; } strcat(( char * ) buf, "\r\n"); } strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) ); #endif } #endif //Сетевые настройки void net_config_param(int8_t *buf) { char str[20]; uint8_t len = 0; const int8_t *const pcInfoTableHeader = ( int8_t * ) "\r\n*********Сетевые настройки Контроллера*********\r\n"; /* Return the next command help string, before moving the pointer on to the next command in the list. */ strncpy( ( char * ) buf, ( const char * ) pcInfoTableHeader, strlen( ( char * ) pcInfoTableHeader ) ); GetDhcpStateStrRu(str, &len); strcat(( char * ) buf, "DHCP:\t\t\t\t"); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nIP адрес:\t\t\t"); GetIpStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nАдрес шлюза:\t\t\t"); GetGatewayStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nАдрес маски подсети:\t\t"); GetMaskStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\n"); } #ifdef SYSLOG_ENABLE void syslog_config_param(int8_t *buf) { char str[100]; uint8_t len = 0; const int8_t *const pcInfoTableHeader = ( int8_t * ) "\r\n****************SysLog настройки ******************\r\n"; strncpy( ( char * ) buf, ( const char * ) pcInfoTableHeader, strlen( ( char * ) pcInfoTableHeader ) ); GetSyslogEnableStrRU(str, &len); strcat(( char * ) buf, "Передача по SysLog:\t\t"); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nIP адрес сервера:\t\t"); GetSyslogServer(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nПорт сервера:\t\t\t"); GetSyslogPort(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\n"); } #endif #ifdef RADIUS_SERVER_ENABLE void radius_config_param(int8_t *buf) { char str[100]; uint8_t len = 0; const int8_t *const pcInfoTableHeader = ( int8_t * ) "\r\n***************RADIUS настройки***************\r\n"; strncpy( ( char * ) buf, ( const char * ) pcInfoTableHeader, strlen( ( char * ) pcInfoTableHeader ) ); GetRADIUSEnableStrRU(str, &len); strcat(( char * ) buf, "Аторизация по RADIUS:\t\t"); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nIP адрес сервера:\t\t"); GetRDSIpStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nПорт сервера:\t\t\t"); GetRDSPortStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nПароль сервера:\t\t\t"); GetRDSPasswordkStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\n"); } #endif #ifdef PORTGW_ENABLE void pgw_config_param(int8_t *buf) { char str[100]; uint8_t len = 0; const int8_t *const pcInfoTableHeader = ( int8_t * ) "\r\n**********Настройки прозрачного канала**********\r\n"; const int8_t *const pcPGWnetTableHeader = ( int8_t * ) "Сетевые настройки\r\n"; const int8_t *const pcRS485TableHeader = ( int8_t * ) "Настройки RS-485 интерфейса\r\n"; const int8_t *const pcSharedTableHeader = ( int8_t * ) "\r\n------------------+----------------------------\r\n"; strncpy( ( char * ) buf, ( const char * ) pcInfoTableHeader, strlen( ( char * ) pcInfoTableHeader ) ); GetPortGwEnabledRUStr(str, &len); strcat(( char * ) buf, "Работа по прозрачному порту:\t"); strncat(( char * ) buf, str, len); strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) ); strncat( ( char * ) buf, ( const char * ) pcPGWnetTableHeader, strlen( ( char * ) pcPGWnetTableHeader ) ); strcat(( char * ) buf, "\r\nПорт:\t\t\t\t"); GetPortGwPortnumStr(str, &len); strncat(( char * ) buf, str, len); strncat( ( char * ) buf, ( const char * ) pcSharedTableHeader, strlen( ( char * ) pcSharedTableHeader ) ); strncat( ( char * ) buf, ( const char * ) pcRS485TableHeader, strlen( ( char * ) pcRS485TableHeader ) ); strcat(( char * ) buf, "\r\nСкорость:\t\t\t"); GetPortGwBaudStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nЧетность:\t\t\t"); GetPortGwParityRUStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nБиты данных:\t\t\t"); GetPortGwDatabitsStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nСтоповые биты:\t\t\t"); GetPortGwStopbitsStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\n"); } #endif //Настройки времени void time_config_param(int8_t *buf) { char str[20]; uint8_t len = 0; const int8_t *const pcTimeTableHeader = ( int8_t * ) "\r\n*********Настройки времени Контроллера*********\r\n"; /* Return the next command help string, before moving the pointer on to the next command in the list. */ strncpy( ( char * ) buf, ( const char * ) pcTimeTableHeader, strlen( ( char * ) pcTimeTableHeader ) ); GetSntpStateStrRU(str, &len); strcat(( char * ) buf, "Режим установки времени:\t"); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nЧасовой пояс:\t\t\t"); GetSntpTimeZoneStr(str, &len); strncat(( char * ) buf, str, len); if (sSettings.sSNTP.sntpEnable) { strcat(( char * ) buf, "\r\nIP адрес NTP сервера:\t\t"); GetSntpServerIpStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nПоследняя дата синхронизации:\t"); GetSntpLastDataStr(str, &len); strncat(( char * ) buf, str, len); } else { GetDateStr(str, &len); strcat(( char * ) buf, "\r\nДата:\t\t\t"); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nВремя:\t\t\t"); GetTimeStr(str, &len); strncat(( char * ) buf, str, len); } strcat(( char * ) buf, "\r\n"); } //Настройки АКБ void akb_config_param(int8_t *buf) { char str[20]; uint8_t len = 0; const int8_t *const pcAKBTableHeader = ( int8_t * ) "\r\n*********Настройки аккумуляторов ИБП*********\r\n"; /* Return the next command help string, before moving the pointer on to the next command in the list. */ strncpy( ( char * ) buf, ( const char * ) pcAKBTableHeader, strlen( ( char * ) pcAKBTableHeader ) ); GetUPSVoltCellMinStr(str, &len); strcat(( char * ) buf, "Мин. напряжение ячейки (В):\t\t"); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nМакс. напряжение ячейки (В):\t\t"); GetUPSVoltCellMaxStr(str, &len); strncat(( char * ) buf, str, len); #if HARDWARE_BT6709 || HARDWARE_BT6709_MTS || HARDWARE_BT6711 || HARDWARE_BT6711_V1 || HARDWARE_BT6710 || HARDWARE_BT6721 GetVoltageAKBNominalStr(str, &len); strcat(( char * ) buf, "\r\nНоминальное напряжение (В):\t\t"); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nЁмкость (Ач):\t\t\t\t"); GetCapacityNominalAKBStr(str, &len); strncat(( char * ) buf, str, len); GetUPSPowerStr(str, &len); strcat(( char * ) buf, "\r\nПолная мощность ИБП (ВА):\t\t"); strncat(( char * ) buf, str, len); #endif #if HARDWARE_BT6709 || HARDWARE_BT6709_MTS || HARDWARE_BT6710 GetLifeTimeAKBStr(str, &len); strcat(( char * ) buf, "\r\nСрок службы (лет):\t\t\t"); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nДата установки:\t\t\t\t"); GetDataSetAKBStr(str, &len); strncat(( char * ) buf, str, len); #endif strcat(( char * ) buf, "\r\n"); } //Настройки Аварий void alarm_config_param(int8_t *buf) { char str[20]; uint8_t len = 0; const char *name_range_alarm[] = { "Нижняя граница:\t\t\t", "\r\nВерхняя граница:\t\t", "\r\nГистерезис:\t\t\t", }; const int8_t *const pcAlarmTableHeader = ( int8_t * ) "\r\n*********Настройки Аварийных границ*********\r\n"; /* Return the next command help string, before moving the pointer on to the next command in the list. */ strncpy( ( char * ) buf, ( const char * ) pcAlarmTableHeader, strlen( ( char * ) pcAlarmTableHeader ) ); const int8_t *const pcAlarmTempTableHeader = ( int8_t * ) "\r\n*************Температура (°C)************\r\n"; /* Return the next command help string, before moving the pointer on to the next command in the list. */ strncat( ( char * ) buf, ( const char * ) pcAlarmTempTableHeader, strlen( ( char * ) pcAlarmTempTableHeader ) ); GetTemperatureAlarmLowRangeStr(str, &len); strcat(( char * ) buf, name_range_alarm[0]); strncat(( char * ) buf, str, len); strcat(( char * ) buf, name_range_alarm[1]); GetTemperatureAlarmHighRangeStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, name_range_alarm[2]); GetTemperatureAlarmHisteStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\n"); #ifndef HARDWARE_BT6710 const int8_t *const pcAlarmLoadTableHeader = ( int8_t * ) "\r\n***************Нагрузка (%)**************"; /* Return the next command help string, before moving the pointer on to the next command in the list. */ strncat( ( char * ) buf, ( const char * ) pcAlarmLoadTableHeader, strlen( ( char * ) pcAlarmLoadTableHeader ) ); strcat(( char * ) buf, name_range_alarm[1]); GetLoadAlarmHighRangeStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, name_range_alarm[2]); GetLoadAlarmHisteStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\n"); #endif const int8_t *const pcAlarmVoutTableHeader = ( int8_t * ) "\r\n*********Выходное напряжение (В)*********\r\n"; /* Return the next command help string, before moving the pointer on to the next command in the list. */ strncat( ( char * ) buf, ( const char * ) pcAlarmVoutTableHeader, strlen( ( char * ) pcAlarmVoutTableHeader ) ); GetVACAlarmLowRangeStr(str, &len); strcat(( char * ) buf, name_range_alarm[0]); strncat(( char * ) buf, str, len); strcat(( char * ) buf, name_range_alarm[1]); GetVACAlarmHighRangeStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, name_range_alarm[2]); GetVACAlarmHisteStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\n"); #ifdef TEMP_CABINET_MONITOR const int8_t *const pcAlarmTempCabinetTableHeader = ( int8_t * ) "\r\n********Температура Шкафа(°C)********\r\n"; /* Return the next command help string, before moving the pointer on to the next command in the list. */ strncat( ( char * ) buf, ( const char * ) pcAlarmTempCabinetTableHeader, strlen( ( char * ) pcAlarmTempCabinetTableHeader ) ); GetTemperatureCabinetAlarmLowRangeStr(str, &len); strcat(( char * ) buf, name_range_alarm[0]); strncat(( char * ) buf, str, len); strcat(( char * ) buf, name_range_alarm[1]); GetTemperatureCabinetAlarmHighRangeStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, name_range_alarm[2]); GetTemperatureCabinetAlarmHisteStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\n"); #endif #ifdef VAC_IN_MONITOR const int8_t *const pcAlarmVinTableHeader = ( int8_t * ) "\r\n*********Входное напряжение (В)*********\r\n"; /* Return the next command help string, before moving the pointer on to the next command in the list. */ strncat( ( char * ) buf, ( const char * ) pcAlarmVinTableHeader, strlen( ( char * ) pcAlarmVinTableHeader ) ); GetVACInputAlarmHighRangeStr(str, &len); strcat(( char * ) buf, name_range_alarm[0]); strncat(( char * ) buf, str, len); strcat(( char * ) buf, name_range_alarm[1]); GetVACInputAlarmLowRangeStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, name_range_alarm[2]); GetVACinputAlarmHisteStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\n"); #endif } #ifdef NOTIFICATION_CONTROL_ENABLE //Список уведомлений и их состояние void notification_param(int8_t *buf) { char str[100]; uint8_t len = 0; uint8_t i; const int8_t *const pcNotificationTableHeader = ( int8_t * ) "\r\n*************Список уведомлений*******************\r\n"; /* Return the next command help string, before moving the pointer on to the next command in the list. */ strncpy( ( char * ) buf, ( const char * ) pcNotificationTableHeader, strlen( ( char * ) pcNotificationTableHeader ) ); for (i = 1; i < ALL_TRAPS; i++) { sprintf(str, "%d. ", i); len = strlen(str); strncat(buf, str, len); GetTrapLongNameStr(str, &len, i); strncat(buf, str, len); if ( len < 25 ) { strcat(buf, "\t\t\t\t\t"); } else if (len > 37 && len <= 47) { strcat(buf, "\t\t\t"); } else if (len > 47) { strcat(buf, "\t\t"); } else { strcat(buf, "\t\t\t\t"); } GetNotificationTrapsStateStr2(str, &len, i); strncat(buf, str, len); strcat(( char * ) buf, "\r\n"); } strcat(( char * ) buf, "\r\n"); } #endif #ifdef WHITELIST_ENABLE //Белый список IP адресов контроллера void whitelist_config_param(int8_t *buf) { char str[20]; uint8_t len = 0; uint8_t i; const char *name_range_ip[] = { "IP-адрес 1:\t\t\t", "\r\nIP-адрес 2:\t\t\t", "\r\nIP-адрес 3:\t\t\t", "\r\nIP-адрес 4:\t\t\t", "\r\nIP-адрес 5:\t\t\t", }; const int8_t *const pcInfoTableHeader = ( int8_t * ) "\r\n*******Белый список IP адресов Контроллера*******\r\n"; /* Return the next command help string, before moving the pointer on to the next command in the list. */ strncpy( ( char * ) buf, ( const char * ) pcInfoTableHeader, strlen( ( char * ) pcInfoTableHeader ) ); for (uint8_t i = 0; i < MAX_WHITE_LIST; i++) { GetWhiteListSTR(str, &len, i); strcat(( char * ) buf, name_range_ip[i]); strncat(( char * ) buf, str, len); } strcat(( char * ) buf, "\r\n"); } #endif //Параметры ИБП void ups_sensor_param(int8_t *buf) { char str[20]; uint8_t len = 0; GetConnectUPSAlarmStr(str, &len); strcat(( char * ) buf, "\r\nСвязь с ИБП:\t\t\t\t"); strncat(( char * ) buf, str, len); const int8_t *const pcUPSInfoTableHeader = ( int8_t * ) "\r\n\r\n***********Параметры источника питания***********\r\n"; /* Return the next command help string, before moving the pointer on to the next command in the list. */ strncat( ( char * ) buf, ( const char * ) pcUPSInfoTableHeader, strlen( ( char * ) pcUPSInfoTableHeader ) ); GetInputVoltageStr(str, &len); strcat(( char * ) buf, "Входное напряжение (VAC):\t\t"); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nВыходное напряжение (VAC):\t\t"); GetOutputVoltageStr(str, &len); strncat(( char * ) buf, str, len); #if HARDWARE_BT6709 || HARDWARE_BT6709_MTS || HARDWARE_BT6711 || HARDWARE_BT6711_V1 || HARDWARE_BT6710 || HARDWARE_BT6721 GetInputCurrentStr(str, &len); strcat(( char * ) buf, "\r\nВходная сила тока (A):\t\t\t"); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nВыходная сила тока (A):\t\t\t"); GetOutputCurrentStr(str, &len); strncat(( char * ) buf, str, len); #endif strcat(( char * ) buf, "\r\nВходная частота:\t\t\t"); GetInputFreqStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nНагрузка:\t\t\t\t"); GetPowerStr(str, &len); strncat(( char * ) buf, str, len); #if HARDWARE_BT6709 || HARDWARE_BT6711 || HARDWARE_BT6711_V1 || HARDWARE_BT6721 strcat(( char * ) buf, "\r\nНагрузка (Режим АКБ):\t\t\t"); GetLoadAKBModeStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, " ("); GetDataFormatCheckLoadStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, ")"); #endif strcat(( char * ) buf, "\r\nТекущий режим:\t\t\t\t"); str[0] = 0; GetModeStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nСтатус:\t\t\t\t\t"); GetUPSAlarmStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\n"); } //Параметры аккумуляторных батарей void ups_sensor_akb_param(int8_t *buf) { char str[40]; uint8_t len = 0; const int8_t *const pcAKBInfoTableHeader = ( int8_t * ) "\r\n*********Параметры аккумуляторных батарей*********\r\n"; /* Return the next command help string, before moving the pointer on to the next command in the list. */ strncpy( ( char * ) buf, ( const char * ) pcAKBInfoTableHeader, strlen( ( char * ) pcAKBInfoTableHeader ) ); GetBatCapacityStr(str, &len); strcat(( char * ) buf, "Оставшаяся емкость батареи (%):\t\t"); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nВнутренняя температура (°C):\t\t"); GetInternalTempStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nОставшееся время работы (мин):\t\t"); GetRuntimeStr(str, &len); strncat(( char * ) buf, str, len); #if HARDWARE_BT6709 || HARDWARE_BT6709_MTS || HARDWARE_BT6710 || HARDWARE_BT6711 || HARDWARE_BT6711_V1 || HARDWARE_BT6721 GetCapacityNominalAKBStr(str, &len); strcat(( char * ) buf, "\r\nЕмкость батареи (Ач):\t\t\t"); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nНапряжение батареи (В):\t\t\t"); GetVoltageAKBtStr(str, &len); strncat(( char * ) buf, str, len); #endif #if HARDWARE_BT6709 || HARDWARE_BT6709_MTS || HARDWARE_BT6710 strcat(( char * ) buf, "\r\nДата следующей замены:\t\t\t"); GetDataNextChangeAKBStrRU(str, &len); strncat(( char * ) buf, str, len); #endif strcat(( char * ) buf, "\r\nСтатус:\t\t\t\t\t"); GetAKBAlarmStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\n"); } #ifdef DINS_ENABLE || DOUTS_ENABLE //Параметры сухих контактов void inouts_sensor_param(int8_t *buf) { char str[20]; uint8_t len = 0; #ifdef HARDWARE_BT6710 const int8_t *const pcInOutsInfoTableHeader = ( int8_t * ) "\r\n****************Датчики Контроллера***************\r\n"; #else const int8_t *const pcInOutsInfoTableHeader = ( int8_t * ) "\r\n************Параметры сухих контактов************\r\n"; #endif /* Return the next command help string, before moving the pointer on to the next command in the list. */ strncpy( ( char * ) buf, ( const char * ) pcInOutsInfoTableHeader, strlen( ( char * ) pcInOutsInfoTableHeader ) ); #ifdef DINS_ENABLE #ifdef HARDWARE_BT6710 for(uint8_t i = 0; i < INPUTS_TOTAL_COUNT; i ++) { GetDINNameStr(str, &len, i); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\t\t\t\t\t"); GetDINStatusStrRU(str, &len, i); strncat(( char * ) buf, str, len); if(i != (INPUTS_TOTAL_COUNT - 1)) { strcat(( char * ) buf, "\r\n"); } } #else GetDINStatusStrRU(str, &len, 0); strcat(( char * ) buf, "Дискретный вход:\t\t\t"); strncat(( char * ) buf, str, len); #endif #endif #ifdef DOUTS_ENABLE strcat(( char * ) buf, "\r\nРелейный выход 1:\t\t\t"); GetDOUTStatusStrRU(str, &len, 0); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nРелейный выход 2:\t\t\t"); GetDOUTStatusStrRU(str, &len, 1); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nРелейный выход 3:\t\t\t"); GetDOUTStatusStrRU(str, &len, 2); strncat(( char * ) buf, str, len); #endif #if defined(DALLAS_SENSOR_ENABLE) || defined(AM2301_SENSOR_ENABLE) GetTempCaseStr(str, &len); strcat(( char * ) buf, "\r\nТемпература в шкафу (°C):\t\t"); strncat(( char * ) buf, str, len); #endif #ifdef AM2301_SENSOR_ENABLE GetHumidityCaseStr(str, &len); strcat(( char * ) buf, "\r\nОтносительная влажность в шкафу (%):\t"); strncat(( char * ) buf, str, len); #endif strcat(( char * ) buf, "\r\n"); } #endif