/* * 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 INOUTS_ENABLE //Настройки сухих контактов void inouts_config_param(int8_t *buf) { char str[20]; char str_temp[20]; uint8_t len = 0; const int8_t *const pcInOutsTableHeader = ( int8_t * ) "\r\n*********Настройки сухих контактов Контроллера*********\r\n"; const int8_t *const pcDryInsTableHeader = ( int8_t * ) "Дискретные входы\r\n"; const int8_t *const pcDryInsTableHeader2 = ( 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 ) ); 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 ) ); GetDINTypeActStr(str, &len, 0); strcat(( char * ) buf, "1:\t\t"); 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"); 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 //Сетевые настройки 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"); } //Настройки времени 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); #ifdef HARDWARE_BT6709 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); 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); GetUPSPowerStr(str, &len); strcat(( char * ) buf, "\r\nПолная мощность ИБП (ВА):\t\t"); 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"); 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"); 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 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"); } //Белый список 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); #ifdef HARDWARE_BT6709 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); strcat(( char * ) buf, "\r\nТекущий режим:\t\t\t\t"); GetUPSModeStr(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); #ifdef HARDWARE_BT6709 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); 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 INOUTS_ENABLE //Параметры сухих контактов void inouts_sensor_param(int8_t *buf) { char str[20]; uint8_t len = 0; const int8_t *const pcInOutsInfoTableHeader = ( 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 * ) pcInOutsInfoTableHeader, strlen( ( char * ) pcInOutsInfoTableHeader ) ); GetDIN0StatusStrRU(str, &len); strcat(( char * ) buf, "Дискретный вход:\t\t\t"); strncat(( char * ) buf, str, len); 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); strcat(( char * ) buf, "\r\n"); } #endif