/* * 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"); } //Настройки сухих контактов 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 ) ); } //Сетевые настройки 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, "Дата:\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 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); 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[20]; 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\t"); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\nВнутренняя температура:\t\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); strcat(( char * ) buf, "\r\nСтатус:\t\t\t\t\t"); GetAKBAlarmStr(str, &len); strncat(( char * ) buf, str, len); strcat(( char * ) buf, "\r\n"); } //Параметры сухих контактов 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"); }