|
@@ -48,8 +48,9 @@ extern state_telnet_server_t telnetState;
|
|
|
extern uint8_t id_change_pwd;
|
|
|
|
|
|
|
|
|
-const int8_t * const pcInvalidCommand = ( int8_t * ) "Command invalid. Enter \"help\" to view a list of available commands.\r\n\r\n";
|
|
|
-const int8_t * const pcPermissionDenied = ( int8_t * ) "Permission denied!\r\n\r\n";
|
|
|
+const int8_t * const pcInvalidCommand = ( int8_t * ) "Неправильно введены параметры команды. Введите \"help\" для просмотра списка поддерживаемых команд.\r\n\r\n";
|
|
|
+const int8_t * const pcPermissionDenied = ( int8_t * ) "Отказ в доступе!\r\n\r\n";
|
|
|
+
|
|
|
|
|
|
const char* info_args_list[] =
|
|
|
{
|
|
@@ -98,6 +99,10 @@ const char* config_args_list[] =
|
|
|
{
|
|
|
"info",
|
|
|
"load",
|
|
|
+};
|
|
|
+
|
|
|
+const char* netconfig_args_list[] =
|
|
|
+{
|
|
|
"apply",
|
|
|
"confirm",
|
|
|
};
|
|
@@ -111,6 +116,7 @@ const char* history_args_list[] =
|
|
|
const char* sensor_args_list[] =
|
|
|
{
|
|
|
"info",
|
|
|
+ "setup",
|
|
|
};
|
|
|
|
|
|
const char* user_args_list[] =
|
|
@@ -165,6 +171,11 @@ static portBASE_TYPE prvTaskUserCommand( int8_t *pcWriteBuffer, size_t xWriteBuf
|
|
|
*/
|
|
|
static portBASE_TYPE prvTaskConfigCommand( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t *pcCommandString );
|
|
|
|
|
|
+/*
|
|
|
+ * Implements the netconfig command.
|
|
|
+ */
|
|
|
+static portBASE_TYPE prvTaskNetConfigCommand( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t *pcCommandString );
|
|
|
+
|
|
|
/*
|
|
|
* Implements the history command.
|
|
|
*/
|
|
@@ -277,13 +288,22 @@ static const CLI_Command_Definition_t prvConfigCommandDefinition =
|
|
|
{
|
|
|
( const int8_t * const ) "config", /* The command string to type. */
|
|
|
( const int8_t * const ) "\tconfig info: вывод информации о состоянии конфигураций\r\n"
|
|
|
- "\tconfig load default: загрузка конфигурации по умолчанию\r\n"
|
|
|
- "\tconfig apply: применение конфигурации\r\n"
|
|
|
- "\tconfig confirm: подтверждение конфигурации\r\n",
|
|
|
+ "\tconfig load default: загрузка конфигурации по умолчанию\r\n",
|
|
|
prvTaskConfigCommand, /* The function to run. */
|
|
|
-1 /* Two parameters are expected, which can take any value. */
|
|
|
};
|
|
|
|
|
|
+/* Structure that defines the "config" command line command. This
|
|
|
+generates a table that shows how much run time each task has */
|
|
|
+static const CLI_Command_Definition_t prvNetConfigCommandDefinition =
|
|
|
+{
|
|
|
+ ( const int8_t * const ) "netconfig", /* The command string to type. */
|
|
|
+ ( const int8_t * const ) "\tnetconfig apply: применение конфигурации сетевых настроек\r\n"
|
|
|
+ "\tnetconfig confirm: подтверждение конфигурации сетевых настроек\r\n",
|
|
|
+ prvTaskNetConfigCommand, /* The function to run. */
|
|
|
+ 1 /* Two parameters are expected, which can take any value. */
|
|
|
+};
|
|
|
+
|
|
|
/* Structure that defines the "history" command line command. This
|
|
|
generates a table that shows how much run time each task has */
|
|
|
static const CLI_Command_Definition_t prvHistoryCommandDefinition =
|
|
@@ -298,10 +318,19 @@ static const CLI_Command_Definition_t prvHistoryCommandDefinition =
|
|
|
generates a table that shows how much run time each task has */
|
|
|
static const CLI_Command_Definition_t prvSensorCommandDefinition =
|
|
|
{
|
|
|
- ( const int8_t * const ) "sensor info", /* The command string to type. */
|
|
|
- ( const int8_t * const ) "\tsensor info: вывод параметров системы\r\n",
|
|
|
+ ( const int8_t * const ) "sensor", /* The command string to type. */
|
|
|
+ ( const int8_t * const ) "\tsensor info: вывод параметров системы\r\n"
|
|
|
+ "\tsensor setup DI <num> <state>: установка нормального состояния сухого контакта:\r\n"
|
|
|
+ "\t\t\t\t0 - разомкнутое состояние\r\n"
|
|
|
+ "\t\t\t\t1 - замкнутое состояние\r\n"
|
|
|
+ "\tsensor setup DO <num> <issue>: установка источника срабатывания реле:\r\n"
|
|
|
+ "\t\t\t\t1 - Наличие сети\r\n"
|
|
|
+ "\t\t\t\t2 - Наличие выходного напряжения\r\n"
|
|
|
+ "\t\t\t\t3 - Разряд АКБ\r\n"
|
|
|
+ "\t\t\t\t4 - Отклбчение АКБ\r\n"
|
|
|
+ "\t\t\t\t5 - SNMP SET\r\n",
|
|
|
prvTaskSensorCommand, /* The function to run. */
|
|
|
- 1 /* No parameters are expected. */
|
|
|
+ -1 /* No parameters are expected. */
|
|
|
};
|
|
|
|
|
|
/* Structure that defines the "firmware dowmload http" command line command. This
|
|
@@ -345,6 +374,7 @@ void vRegisterCLICommands( void )
|
|
|
FreeRTOS_CLIRegisterCommand( &prvSNMPCommandDefinition );
|
|
|
FreeRTOS_CLIRegisterCommand( &prvUserCommandDefinition );
|
|
|
FreeRTOS_CLIRegisterCommand( &prvConfigCommandDefinition );
|
|
|
+ FreeRTOS_CLIRegisterCommand( &prvNetConfigCommandDefinition );
|
|
|
FreeRTOS_CLIRegisterCommand( &prvHistoryCommandDefinition );
|
|
|
FreeRTOS_CLIRegisterCommand( &prvSensorCommandDefinition );
|
|
|
FreeRTOS_CLIRegisterCommand( &prvUploadCommandDefinition );
|
|
@@ -361,6 +391,7 @@ static portBASE_TYPE prvTaskInfoCommand( int8_t *pcWriteBuffer, size_t xWriteBuf
|
|
|
uint8_t len;
|
|
|
int8_t num_arg = 0;
|
|
|
uint8_t i;
|
|
|
+ static uint8_t page = 0;
|
|
|
|
|
|
( void ) pcCommandString;
|
|
|
( void ) xWriteBufferLen;
|
|
@@ -370,51 +401,72 @@ static portBASE_TYPE prvTaskInfoCommand( int8_t *pcWriteBuffer, size_t xWriteBuf
|
|
|
memset(pcWriteBuffer, 0, configCOMMAND_INT_MAX_OUTPUT_SIZE);
|
|
|
if(num_arg == 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 * ) pcWriteBuffer, ( const char * ) pcInfoTableHeader, strlen( ( char * ) pcInfoTableHeader ) );
|
|
|
+ const int8_t * const pcUPSInfoTableHeader = ( int8_t * ) "\r\n*****************Информация об ИБП******************\r\n";
|
|
|
+ if(!page){
|
|
|
+ /* Return the next command help string, before moving the pointer on to
|
|
|
+ the next command in the list. */
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInfoTableHeader, strlen( ( char * ) pcInfoTableHeader ) );
|
|
|
|
|
|
- GetWorkTimeStr(str, &len);
|
|
|
- strcat(( char * ) pcWriteBuffer, "Время работы:\t\t\t");
|
|
|
- strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
+ GetWorkTimeStr(str, &len);
|
|
|
+ strcat(( char * ) pcWriteBuffer, "Время работы:\t\t\t");
|
|
|
+ strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
|
|
|
- strcat(( char * ) pcWriteBuffer, "\r\nМодель:\t\t\t\t");
|
|
|
- GetModelStr(str, &len);
|
|
|
- strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
+ strcat(( char * ) pcWriteBuffer, "\r\nМодель:\t\t\t\t");
|
|
|
+ GetModelStr(str, &len);
|
|
|
+ strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
|
|
|
- strcat(( char * ) pcWriteBuffer, "\r\nДата производства:\t\t");
|
|
|
- GetProductionDataStr(str, &len);
|
|
|
- strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
+ strcat(( char * ) pcWriteBuffer, "\r\nДата производства:\t\t");
|
|
|
+ GetProductionDataStr(str, &len);
|
|
|
+ strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
|
|
|
- strcat(( char * ) pcWriteBuffer, "\r\nВерсия ПО:\t\t\t");
|
|
|
- GetVersionStr(str, &len);
|
|
|
- strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
+ strcat(( char * ) pcWriteBuffer, "\r\nВерсия ПО:\t\t\t");
|
|
|
+ GetVersionStr(str, &len);
|
|
|
+ strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
|
|
|
- strcat(( char * ) pcWriteBuffer, "\r\nMAC адрес:\t\t\t");
|
|
|
- GetMacStr(str, &len);
|
|
|
- strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
+ strcat(( char * ) pcWriteBuffer, "\r\nMAC адрес:\t\t\t");
|
|
|
+ GetMacStr(str, &len);
|
|
|
+ strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
|
|
|
- strcat(( char * ) pcWriteBuffer, "\r\nСерийный номер:\t\t\t");
|
|
|
- GetSerialNumberStr(str, &len);
|
|
|
- strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
+ strcat(( char * ) pcWriteBuffer, "\r\nСерийный номер:\t\t\t");
|
|
|
+ GetSerialNumberStr(str, &len);
|
|
|
+ strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
|
|
|
- strcat(( char * ) pcWriteBuffer, "\r\nВладелец:\t\t\t");
|
|
|
- GetOwnerStr(str, &len);
|
|
|
- strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
+ strcat(( char * ) pcWriteBuffer, "\r\nВладелец:\t\t\t");
|
|
|
+ GetOwnerStr(str, &len);
|
|
|
+ strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
|
|
|
- strcat(( char * ) pcWriteBuffer, "\r\nМестоположение:\t\t\t");
|
|
|
- GetLocationStr(str, &len);
|
|
|
- strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
+ strcat(( char * ) pcWriteBuffer, "\r\nМестоположение:\t\t\t");
|
|
|
+ GetLocationStr(str, &len);
|
|
|
+ strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
|
|
|
- strcat(( char * ) pcWriteBuffer, "\r\nКомментарии:\t\t\t");
|
|
|
- GetCommentsStr(str, &len);
|
|
|
- strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
+ strcat(( char * ) pcWriteBuffer, "\r\nКомментарии:\t\t\t");
|
|
|
+ GetCommentsStr(str, &len);
|
|
|
+ strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
|
|
|
- strcat(( char * ) pcWriteBuffer, "\r\n");
|
|
|
+ page = 1;
|
|
|
+ xReturn = pdTRUE;
|
|
|
+ }
|
|
|
+ else{
|
|
|
|
|
|
- /* There are no more commands in the list, so there will be no more
|
|
|
- strings to return after this one and pdFALSE should be returned. */
|
|
|
- xReturn = pdFALSE;
|
|
|
+ strncat( ( char * ) pcWriteBuffer, ( const char * ) pcUPSInfoTableHeader, strlen( ( char * ) pcUPSInfoTableHeader ) );
|
|
|
+
|
|
|
+ strcat(( char * ) pcWriteBuffer, "\r\nКомпания:\t\t\tАО\"НПК РоТеК\"");
|
|
|
+
|
|
|
+ strcat(( char * ) pcWriteBuffer, "\r\nМодель:\t\t\t\t");
|
|
|
+ GetUPSModelStr(str, &len);
|
|
|
+ strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
+
|
|
|
+ strcat(( char * ) pcWriteBuffer, "\r\nВерсия ПО:\t\t\t");
|
|
|
+ GetUPSVersionStr(str, &len);
|
|
|
+ strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
+
|
|
|
+ strcat(( char * ) pcWriteBuffer, "\r\n");
|
|
|
+
|
|
|
+ page = 0;
|
|
|
+ /* There are no more commands in the list, so there will be no more
|
|
|
+ strings to return after this one and pdFALSE should be returned. */
|
|
|
+ xReturn = pdFALSE;
|
|
|
+ }
|
|
|
}
|
|
|
else if(num_arg == 1)
|
|
|
{
|
|
@@ -430,7 +482,7 @@ static portBASE_TYPE prvTaskInfoCommand( int8_t *pcWriteBuffer, size_t xWriteBuf
|
|
|
&xParameterStringLength /* Store the parameter string length. */
|
|
|
);
|
|
|
for(i = 0; i < INFO_ALL_ARGS; i ++){
|
|
|
- if( strncmp( ( const char * ) pcParameterString, info_args_list[i], xParameterStringLength ) == 0 ){
|
|
|
+ if( strncmp( ( const char * ) pcParameterString, info_args_list[i], strlen(info_args_list[i]) ) == 0 ){
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -559,7 +611,7 @@ static portBASE_TYPE prvTaskSystimeCommand( int8_t *pcWriteBuffer, size_t xWrite
|
|
|
return pdFALSE;
|
|
|
}
|
|
|
for(i = 0; i < ARG_SYSTIME_ALL; i ++){
|
|
|
- if( strncmp( ( const char * ) pcParameterString, systime_args_list[i], xParameterStringLength ) == 0 ){
|
|
|
+ if( strncmp( ( const char * ) pcParameterString, systime_args_list[i], strlen(systime_args_list[i]) ) == 0 ){
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -708,7 +760,7 @@ static portBASE_TYPE prvTaskNTPCommand( int8_t *pcWriteBuffer, size_t xWriteBuff
|
|
|
}
|
|
|
|
|
|
for(i = 0; i < ARG_NTP_ALL; i ++){
|
|
|
- if( strncmp( ( const char * ) pcParameterString, ntp_args_list[i], xParameterStringLength ) == 0 ){
|
|
|
+ if( strncmp( ( const char * ) pcParameterString, ntp_args_list[i], strlen(ntp_args_list[i]) ) == 0 ){
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -890,7 +942,7 @@ static portBASE_TYPE prvTaskNetworkCommand( int8_t *pcWriteBuffer, size_t xWrite
|
|
|
}
|
|
|
|
|
|
for(i = 0; i < ARG_NETWORK_ALL; i ++){
|
|
|
- if( strncmp( ( const char * ) pcParameterString, network_args_list[i], xParameterStringLength ) == 0 ){
|
|
|
+ if( strncmp( ( const char * ) pcParameterString, network_args_list[i], strlen(network_args_list[i]) ) == 0 ){
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -1018,7 +1070,7 @@ static portBASE_TYPE prvTaskSNMPCommand( int8_t *pcWriteBuffer, size_t xWriteBuf
|
|
|
}
|
|
|
|
|
|
for(i = 0; i < ARG_SNMP_ALL; i ++){
|
|
|
- if( strncmp( ( const char * ) pcParameterString, snmp_args_list[i], xParameterStringLength ) == 0 ){
|
|
|
+ if( strncmp( ( const char * ) pcParameterString, snmp_args_list[i], strlen(snmp_args_list[i]) ) == 0 ){
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -1192,7 +1244,7 @@ static portBASE_TYPE prvTaskUserCommand( int8_t *pcWriteBuffer, size_t xWriteBuf
|
|
|
}
|
|
|
|
|
|
for(i = 0; i < ARG_USER_ALL; i ++){
|
|
|
- if( strncmp( ( const char * ) pcParameterString, user_args_list[i], xParameterStringLength ) == 0 ){
|
|
|
+ if( strncmp( ( const char * ) pcParameterString, user_args_list[i], strlen(user_args_list[i]) ) == 0 ){
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -1252,7 +1304,6 @@ static portBASE_TYPE prvTaskConfigCommand( int8_t *pcWriteBuffer, size_t xWriteB
|
|
|
char str[110];
|
|
|
uint8_t i;
|
|
|
static uint8_t config_menu = 0;
|
|
|
- static start = 0;
|
|
|
|
|
|
const int8_t * const pcInfoTableHeader = ( int8_t * ) "\r\n*********Конфигурация Контроллера*********\r\n";
|
|
|
|
|
@@ -1274,7 +1325,7 @@ static portBASE_TYPE prvTaskConfigCommand( int8_t *pcWriteBuffer, size_t xWriteB
|
|
|
}
|
|
|
|
|
|
for(i = 0; i < ARG_CONFIG_ALL; i ++){
|
|
|
- if( strncmp( ( const char * ) pcParameterString, config_args_list[i], xParameterStringLength ) == 0 ){
|
|
|
+ if( strncmp( ( const char * ) pcParameterString, config_args_list[i], strlen(config_args_list[i]) ) == 0 ){
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -1322,37 +1373,6 @@ static portBASE_TYPE prvTaskConfigCommand( int8_t *pcWriteBuffer, size_t xWriteB
|
|
|
return pdTRUE;
|
|
|
}
|
|
|
break;
|
|
|
- case ARG_CONFIG_APPLY:
|
|
|
- if(!start){
|
|
|
- /* Если параметры WEB изменились выставляем флаг, сохраняем настройки и перезагружаемся */
|
|
|
- if (GetStateWebReinit() == true)
|
|
|
- {
|
|
|
- start = 1;
|
|
|
-#ifdef HARDWARE_BT6706
|
|
|
- telnet_act = true;
|
|
|
-#endif
|
|
|
- SetWebReinitFlag(true);
|
|
|
- HTTP_SaveSettings();
|
|
|
- strcpy( ( char * ) pcWriteBuffer, "\t\tНастройки сохранены! Контроллер будет перезагружен\r\n\tПосле перезагрузки подтвердите изменения сетевых настроек\r\n");
|
|
|
- return pdTRUE;
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- else{
|
|
|
-#ifdef HARDWARE_BT6706
|
|
|
- telnet_act = true;
|
|
|
-#endif
|
|
|
- start = 0;
|
|
|
- vTaskDelay(1010);
|
|
|
- Reboot();
|
|
|
- }
|
|
|
- break;
|
|
|
- case ARG_CONFIG_CONFIRM:
|
|
|
- telnet_act = true;
|
|
|
- SetWebReinitFlag(false);
|
|
|
- SetConfirmWebParamsFlag();
|
|
|
- strcpy( ( char * ) pcWriteBuffer, "\t\tСетевые настройки подтверждены!\r\n");
|
|
|
- break;
|
|
|
default:
|
|
|
strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
break;
|
|
@@ -1393,6 +1413,81 @@ static portBASE_TYPE prvTaskConfigCommand( int8_t *pcWriteBuffer, size_t xWriteB
|
|
|
return xReturn;
|
|
|
}
|
|
|
|
|
|
+/*
|
|
|
+ * Implements the config command.
|
|
|
+ */
|
|
|
+static portBASE_TYPE prvTaskNetConfigCommand( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t *pcCommandString ){
|
|
|
+ int8_t *pcParameterString;
|
|
|
+ portBASE_TYPE xParameterNumber = 1;
|
|
|
+ signed portBASE_TYPE xParameterStringLength;
|
|
|
+ uint8_t i;
|
|
|
+ static start = 0;
|
|
|
+
|
|
|
+ ( void ) pcCommandString;
|
|
|
+ ( void ) xWriteBufferLen;
|
|
|
+ configASSERT( pcWriteBuffer );
|
|
|
+
|
|
|
+ memset(pcWriteBuffer, 0, configCOMMAND_INT_MAX_OUTPUT_SIZE);
|
|
|
+ /* Obtain the parameter string. */
|
|
|
+ pcParameterString = ( int8_t * ) FreeRTOS_CLIGetParameter
|
|
|
+ (
|
|
|
+ pcCommandString, /* The command string itself. */
|
|
|
+ xParameterNumber, /* Return the next parameter. */
|
|
|
+ &xParameterStringLength /* Store the parameter string length. */
|
|
|
+ );
|
|
|
+
|
|
|
+ for(i = 0; i < ARG_NETCONFIG_ALL; i ++){
|
|
|
+ if( strncmp( ( const char * ) pcParameterString, netconfig_args_list[i], strlen(netconfig_args_list[i]) ) == 0 ){
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(telnet_code_auth != ADMIN){
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcPermissionDenied, strlen( ( char * ) pcPermissionDenied ) );
|
|
|
+ return pdFALSE;
|
|
|
+ }
|
|
|
+
|
|
|
+ switch(i){
|
|
|
+ case ARG_NETCONFIG_APPLY:
|
|
|
+ if(!start){
|
|
|
+ /* Если параметры WEB изменились выставляем флаг, сохраняем настройки и перезагружаемся */
|
|
|
+ if (GetStateWebReinit() == true)
|
|
|
+ {
|
|
|
+ start = 1;
|
|
|
+#ifdef HARDWARE_BT6706
|
|
|
+ telnet_act = true;
|
|
|
+#endif
|
|
|
+ SetWebReinitFlag(true);
|
|
|
+ HTTP_SaveSettings();
|
|
|
+ strcpy( ( char * ) pcWriteBuffer, "\t\tНастройки сохранены! Контроллер будет перезагружен\r\n\tПосле перезагрузки подтвердите изменения сетевых настроек\r\n");
|
|
|
+ return pdTRUE;
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else{
|
|
|
+#ifdef HARDWARE_BT6706
|
|
|
+ telnet_act = true;
|
|
|
+#endif
|
|
|
+ start = 0;
|
|
|
+ vTaskDelay(1010);
|
|
|
+ Reboot();
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ARG_NETCONFIG_CONFIRM:
|
|
|
+ telnet_act = true;
|
|
|
+ SetWebReinitFlag(false);
|
|
|
+ SetConfirmWebParamsFlag();
|
|
|
+ strcpy( ( char * ) pcWriteBuffer, "\t\tСетевые настройки подтверждены!\r\n");
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ return pdFALSE;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
/*
|
|
|
* Implements the history command.
|
|
|
*/
|
|
@@ -1441,7 +1536,7 @@ static portBASE_TYPE prvTaskHistoryCommand( int8_t *pcWriteBuffer, size_t xWrite
|
|
|
);
|
|
|
|
|
|
for(i = 0; i < ARG_HISTORY_ALL; i ++){
|
|
|
- if( strncmp( ( const char * ) pcParameterString, history_args_list[i], xParameterStringLength ) == 0 ){
|
|
|
+ if( strncmp( ( const char * ) pcParameterString, history_args_list[i], strlen(history_args_list[i]) ) == 0 ){
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -1545,6 +1640,10 @@ static portBASE_TYPE prvTaskSensorCommand( int8_t *pcWriteBuffer, size_t xWriteB
|
|
|
signed portBASE_TYPE xParameterStringLength, xReturn;
|
|
|
portBASE_TYPE xParameterNumber = 1;
|
|
|
uint8_t i;
|
|
|
+ char str[10];
|
|
|
+ char temp_str[10];
|
|
|
+ int32_t val = 0, val2 = 0;
|
|
|
+ uint8_t fail = 0;
|
|
|
static uint8_t config_menu = 0;
|
|
|
|
|
|
const int8_t * const pcSensorTableHeader = ( int8_t * ) "\r\n*********Параметры Контроллера*********\r\n";
|
|
@@ -1567,7 +1666,7 @@ static portBASE_TYPE prvTaskSensorCommand( int8_t *pcWriteBuffer, size_t xWriteB
|
|
|
}
|
|
|
|
|
|
for(i = 0; i < ARG_SENSOR_ALL; i ++){
|
|
|
- if( strncmp( ( const char * ) pcParameterString, sensor_args_list[i], xParameterStringLength ) == 0 ){
|
|
|
+ if( strncmp( ( const char * ) pcParameterString, sensor_args_list[i], strlen(sensor_args_list[i]) ) == 0 ){
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -1611,9 +1710,101 @@ static portBASE_TYPE prvTaskSensorCommand( int8_t *pcWriteBuffer, size_t xWriteB
|
|
|
}
|
|
|
}
|
|
|
else{
|
|
|
- strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
+ switch(i){
|
|
|
+ case ARG_SENSOR_SETUP:
|
|
|
+ if(telnet_code_auth != ADMIN){
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcPermissionDenied, strlen( ( char * ) pcPermissionDenied ) );
|
|
|
+ return pdFALSE;
|
|
|
+ }
|
|
|
+ memset(str, 0, sizeof(str));
|
|
|
+ if(xParameterStringLength > (int32_t)sizeof(str))
|
|
|
+ xParameterStringLength = sizeof(str) - 1;
|
|
|
+ strncat(str, ( const char * ) pcParameterString, xParameterStringLength);
|
|
|
+ if(xParameterStringLength < 3){
|
|
|
+ xParameterNumber ++;
|
|
|
+ /* Obtain the parameter string. */
|
|
|
+ pcParameterString = ( int8_t * ) FreeRTOS_CLIGetParameter
|
|
|
+ (
|
|
|
+ pcCommandString, /* The command string itself. */
|
|
|
+ xParameterNumber, /* Return the next parameter. */
|
|
|
+ &xParameterStringLength /* Store the parameter string length. */
|
|
|
+ );
|
|
|
+ memset(temp_str, 0, sizeof(str));
|
|
|
+ if(xParameterStringLength > 1){
|
|
|
+ fail = 1;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ strncat(temp_str, ( const char * ) pcParameterString, xParameterStringLength);
|
|
|
+ if(!isdigit_int(temp_str[0])){
|
|
|
+ fail = 1;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ val = atoi(temp_str);
|
|
|
+
|
|
|
+ xParameterNumber ++;
|
|
|
+ /* Obtain the parameter string. */
|
|
|
+ pcParameterString = ( int8_t * ) FreeRTOS_CLIGetParameter
|
|
|
+ (
|
|
|
+ pcCommandString, /* The command string itself. */
|
|
|
+ xParameterNumber, /* Return the next parameter. */
|
|
|
+ &xParameterStringLength /* Store the parameter string length. */
|
|
|
+ );
|
|
|
+ memset(temp_str, 0, sizeof(str));
|
|
|
+ if(xParameterStringLength > 1){
|
|
|
+ fail = 1;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ strncat(temp_str, ( const char * ) pcParameterString, xParameterStringLength);
|
|
|
+ if(!isdigit_int(temp_str[0])){
|
|
|
+ fail = 1;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if(strncmp(str, "DI", 2) == 0){
|
|
|
+ if(val != 1){
|
|
|
+ fail = 1;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ val2 = atoi(temp_str);
|
|
|
+ if(val2 < 0 || val2 > 1){
|
|
|
+ fail = 1;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ SetDINTypeActStr(temp_str, (val - 1));
|
|
|
+ SETTINGS_Save();
|
|
|
+ log_event_data(LOG_SETTING_SAVE, name_login_telnet);
|
|
|
+
|
|
|
+ }
|
|
|
+ else if(strncmp(str, "DO", 2) == 0){
|
|
|
+ if(val < 1 || val > 3){
|
|
|
+ fail = 1;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ val2 = atoi(temp_str);
|
|
|
+ if(val2 < 1 || val2 > 5){
|
|
|
+ fail = 1;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ SetROTypeActStr(temp_str, (val - 1));
|
|
|
+ SETTINGS_Save();
|
|
|
+ log_event_data(LOG_SETTING_SAVE, name_login_telnet);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ fail = 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+ if(fail)
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
+
|
|
|
xReturn = pdFALSE;
|
|
|
|
|
|
|
|
@@ -1679,7 +1870,7 @@ static portBASE_TYPE prvTaskUPSCommand( int8_t *pcWriteBuffer, size_t xWriteBuff
|
|
|
&xParameterStringLength /* Store the parameter string length. */
|
|
|
);
|
|
|
for(i = 0; i < ARG_UPS_ALL; i ++){
|
|
|
- if( strncmp( ( const char * ) pcParameterString, ups_args_list[i], xParameterStringLength ) == 0 ){
|
|
|
+ if( strncmp( ( const char * ) pcParameterString, ups_args_list[i], strlen(ups_args_list[i]) ) == 0 ){
|
|
|
break;
|
|
|
}
|
|
|
}
|