|
@@ -55,6 +55,7 @@ const int8_t * const pcSystymeDenied = ( int8_t * ) "Ручной ввод вр
|
|
|
|
|
|
const char* info_args_list[] =
|
|
const char* info_args_list[] =
|
|
{
|
|
{
|
|
|
|
+ "name",
|
|
"address",
|
|
"address",
|
|
"owner",
|
|
"owner",
|
|
"comments",
|
|
"comments",
|
|
@@ -88,6 +89,28 @@ const char* snmp_args_list[] =
|
|
"community",
|
|
"community",
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+const char* akb_args_list[] =
|
|
|
|
+{
|
|
|
|
+ "info",
|
|
|
|
+ "voltcellmin",
|
|
|
|
+ "voltcellmax",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+const char* type_alarm_args_list[] =
|
|
|
|
+{
|
|
|
|
+ "info",
|
|
|
|
+ "temp",
|
|
|
|
+ "load",
|
|
|
|
+ "vout",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+const char* alarm_args_list[] =
|
|
|
|
+{
|
|
|
|
+ "low",
|
|
|
|
+ "high",
|
|
|
|
+ "hist",
|
|
|
|
+};
|
|
|
|
+
|
|
const char* whitelist_args_list[] =
|
|
const char* whitelist_args_list[] =
|
|
{
|
|
{
|
|
"info",
|
|
"info",
|
|
@@ -168,6 +191,16 @@ static portBASE_TYPE prvTaskNetworkCommand( int8_t *pcWriteBuffer, size_t xWrite
|
|
*/
|
|
*/
|
|
static portBASE_TYPE prvTaskSNMPCommand( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t *pcCommandString );
|
|
static portBASE_TYPE prvTaskSNMPCommand( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t *pcCommandString );
|
|
|
|
|
|
|
|
+/*
|
|
|
|
+ * Implements the AKB command.
|
|
|
|
+ */
|
|
|
|
+static portBASE_TYPE prvTaskAKBCommand( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t *pcCommandString );
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * Implements the alarm command.
|
|
|
|
+ */
|
|
|
|
+static portBASE_TYPE prvTaskAlarmCommand( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t *pcCommandString );
|
|
|
|
+
|
|
#ifdef HARDWARE_BT6708
|
|
#ifdef HARDWARE_BT6708
|
|
/*
|
|
/*
|
|
* Implements the whitelist command.
|
|
* Implements the whitelist command.
|
|
@@ -217,6 +250,7 @@ static const CLI_Command_Definition_t prvInfoCommandDefinition =
|
|
{
|
|
{
|
|
( const int8_t * const ) "info", /* The command string to type. */
|
|
( const int8_t * const ) "info", /* The command string to type. */
|
|
( const int8_t * const ) "\tinfo: вывод информации о контроллере\r\n"
|
|
( const int8_t * const ) "\tinfo: вывод информации о контроллере\r\n"
|
|
|
|
+ "\tinfo name <name>: установка поля \"название устройства\"\r\n"
|
|
"\tinfo address <adrr>: установка поля \"адрес расположения контролируемого объекта\"\r\n"
|
|
"\tinfo address <adrr>: установка поля \"адрес расположения контролируемого объекта\"\r\n"
|
|
"\tinfo owner <owner>: установка поля \"организация (собственник)\"\r\n"
|
|
"\tinfo owner <owner>: установка поля \"организация (собственник)\"\r\n"
|
|
"\tinfo comments <comment>: установка поля \"комментарии\"\r\n",
|
|
"\tinfo comments <comment>: установка поля \"комментарии\"\r\n",
|
|
@@ -286,6 +320,36 @@ static const CLI_Command_Definition_t prvSNMPCommandDefinition =
|
|
-1 /* The user can enter any number of commands. */
|
|
-1 /* The user can enter any number of commands. */
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+/* Structure that defines the "akb" command line command. This
|
|
|
|
+generates a table that shows how much run time each task has */
|
|
|
|
+static const CLI_Command_Definition_t prvAKBCommandDefinition =
|
|
|
|
+{
|
|
|
|
+ ( const int8_t * const ) "akb", /* The command string to type. */
|
|
|
|
+ ( const int8_t * const ) "\takb info: вывод информации о параметрах АКБ\r\n"
|
|
|
|
+ "\takb voltcellmin <value>: ввод минимального напряжения на ячейки АКБ (В)\r\n"
|
|
|
|
+ "\takb voltcellmax <value>: ввод максимального напряжения на ячейки АКБ (В)\r\n",
|
|
|
|
+ prvTaskAKBCommand, /* The function to run. */
|
|
|
|
+ -1 /* The user can enter any number of commands. */
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/* Structure that defines the "alarm" command line command. This
|
|
|
|
+generates a table that shows how much run time each task has */
|
|
|
|
+static const CLI_Command_Definition_t prvAlarmCommandDefinition =
|
|
|
|
+{
|
|
|
|
+ ( const int8_t * const ) "alarm", /* The command string to type. */
|
|
|
|
+ ( const int8_t * const ) "\talarm info: вывод информации о параметрах АКБ\r\n"
|
|
|
|
+ "\talarm temp low <value>: ввод нижней границы аварии по температуре (С)\r\n"
|
|
|
|
+ "\talarm temp high <value>: ввод верxней границы аварии по температуре (С)\r\n"
|
|
|
|
+ "\talarm temp hist <value>: ввод гистерезиса аварии по температуре (С)\r\n"
|
|
|
|
+ "\talarm load high <value>: ввод верхней границы аварии по нагрузке (%)\r\n"
|
|
|
|
+ "\talarm load hist <value>: ввод гистерезиса аварии по нагрузке (%)\r\n"
|
|
|
|
+ "\talarm vout low <value>: ввод нижней границы аварии по вых. напряжению (В)\r\n"
|
|
|
|
+ "\talarm vout high <value>: ввод верxней границы аварии по вых. напряжению (В)\r\n"
|
|
|
|
+ "\talarm vout hist <value>: ввод гистерезиса аварии по вых. напряжению (В)\r\n",
|
|
|
|
+ prvTaskAlarmCommand, /* The function to run. */
|
|
|
|
+ -1 /* The user can enter any number of commands. */
|
|
|
|
+};
|
|
|
|
+
|
|
#ifdef HARDWARE_BT6708
|
|
#ifdef HARDWARE_BT6708
|
|
/* Structure that defines the "whitelist" command line command. This
|
|
/* Structure that defines the "whitelist" command line command. This
|
|
generates a table that shows how much run time each task has */
|
|
generates a table that shows how much run time each task has */
|
|
@@ -378,7 +442,7 @@ generates a table that shows how much run time each task has */
|
|
static const CLI_Command_Definition_t prvUPSCommandDefinition =
|
|
static const CLI_Command_Definition_t prvUPSCommandDefinition =
|
|
{
|
|
{
|
|
( const int8_t * const ) "ups", /* The command string to type. */
|
|
( const int8_t * const ) "ups", /* The command string to type. */
|
|
- ( const int8_t * const ) "\tups battest <num>: управление процедурой тестирония АКБ:\r\n"
|
|
|
|
|
|
+ ( const int8_t * const ) "\tups battest <num>: управление процедурой тестирования АКБ:\r\n"
|
|
"\t\t\t\t0 - Остановить тестирование\r\n"
|
|
"\t\t\t\t0 - Остановить тестирование\r\n"
|
|
"\t\t\t\t1-99 - Запустить тест на x минут\r\n"
|
|
"\t\t\t\t1-99 - Запустить тест на x минут\r\n"
|
|
"\t\t\t\t100 - Тестирование в течение 10 секунд\r\n"
|
|
"\t\t\t\t100 - Тестирование в течение 10 секунд\r\n"
|
|
@@ -412,6 +476,8 @@ void vRegisterCLICommands( void )
|
|
FreeRTOS_CLIRegisterCommand( &prvNTPCommandDefinition );
|
|
FreeRTOS_CLIRegisterCommand( &prvNTPCommandDefinition );
|
|
FreeRTOS_CLIRegisterCommand( &prvNetworkCommandDefinition );
|
|
FreeRTOS_CLIRegisterCommand( &prvNetworkCommandDefinition );
|
|
FreeRTOS_CLIRegisterCommand( &prvSNMPCommandDefinition );
|
|
FreeRTOS_CLIRegisterCommand( &prvSNMPCommandDefinition );
|
|
|
|
+ FreeRTOS_CLIRegisterCommand( &prvAKBCommandDefinition );
|
|
|
|
+ FreeRTOS_CLIRegisterCommand( &prvAlarmCommandDefinition );
|
|
#ifdef HARDWARE_BT6708
|
|
#ifdef HARDWARE_BT6708
|
|
FreeRTOS_CLIRegisterCommand( &prvWhiteListCommandDefinition );
|
|
FreeRTOS_CLIRegisterCommand( &prvWhiteListCommandDefinition );
|
|
#endif
|
|
#endif
|
|
@@ -475,6 +541,10 @@ static portBASE_TYPE prvTaskInfoCommand( int8_t *pcWriteBuffer, size_t xWriteBuf
|
|
GetSerialNumberStr(str, &len);
|
|
GetSerialNumberStr(str, &len);
|
|
strncat(( char * ) pcWriteBuffer, str, len);
|
|
strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
|
|
|
|
|
+ strcat(( char * ) pcWriteBuffer, "\r\nНазвание устройства:\t\t");
|
|
|
|
+ GetNameDeviceStr(str, &len);
|
|
|
|
+ strncat(( char * ) pcWriteBuffer, str, len);
|
|
|
|
+
|
|
strcat(( char * ) pcWriteBuffer, "\r\nВладелец:\t\t\t");
|
|
strcat(( char * ) pcWriteBuffer, "\r\nВладелец:\t\t\t");
|
|
GetOwnerStr(str, &len);
|
|
GetOwnerStr(str, &len);
|
|
strncat(( char * ) pcWriteBuffer, str, len);
|
|
strncat(( char * ) pcWriteBuffer, str, len);
|
|
@@ -546,21 +616,36 @@ static portBASE_TYPE prvTaskInfoCommand( int8_t *pcWriteBuffer, size_t xWriteBuf
|
|
strncat(str, ( const char * ) pcParameterString, strlen(( const char * ) pcParameterString));
|
|
strncat(str, ( const char * ) pcParameterString, strlen(( const char * ) pcParameterString));
|
|
if(control_string_en_digit(str, strlen(str))){
|
|
if(control_string_en_digit(str, strlen(str))){
|
|
switch(i){
|
|
switch(i){
|
|
|
|
+ case INFO_DEV_NAME:
|
|
|
|
+ if(telnet_code_auth == ADMIN){
|
|
|
|
+ str[19] = 0;
|
|
|
|
+ SetNameDeviceStr(str);
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcPermissionDenied, strlen( ( char * ) pcPermissionDenied ) );
|
|
|
|
+ break;
|
|
case INFO_ADDRESS:
|
|
case INFO_ADDRESS:
|
|
if(telnet_code_auth == ADMIN)
|
|
if(telnet_code_auth == ADMIN)
|
|
|
|
+ {
|
|
|
|
+ str[109] = 0;
|
|
SetLocation(str);
|
|
SetLocation(str);
|
|
|
|
+ }
|
|
else
|
|
else
|
|
strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcPermissionDenied, strlen( ( char * ) pcPermissionDenied ) );
|
|
strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcPermissionDenied, strlen( ( char * ) pcPermissionDenied ) );
|
|
break;
|
|
break;
|
|
case INFO_OWNER:
|
|
case INFO_OWNER:
|
|
- if(telnet_code_auth == ADMIN)
|
|
|
|
|
|
+ if(telnet_code_auth == ADMIN){
|
|
|
|
+ str[49] = 0;
|
|
SetOwner(str);
|
|
SetOwner(str);
|
|
|
|
+ }
|
|
else
|
|
else
|
|
strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcPermissionDenied, strlen( ( char * ) pcPermissionDenied ) );
|
|
strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcPermissionDenied, strlen( ( char * ) pcPermissionDenied ) );
|
|
break;
|
|
break;
|
|
case INFO_COMMENTS:
|
|
case INFO_COMMENTS:
|
|
- if(telnet_code_auth == ADMIN)
|
|
|
|
|
|
+ if(telnet_code_auth == ADMIN){
|
|
|
|
+ str[109] = 0;
|
|
SetComment(str);
|
|
SetComment(str);
|
|
|
|
+ }
|
|
else
|
|
else
|
|
strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcPermissionDenied, strlen( ( char * ) pcPermissionDenied ) );
|
|
strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcPermissionDenied, strlen( ( char * ) pcPermissionDenied ) );
|
|
break;
|
|
break;
|
|
@@ -1251,6 +1336,363 @@ static portBASE_TYPE prvTaskSNMPCommand( int8_t *pcWriteBuffer, size_t xWriteBuf
|
|
return xReturn;
|
|
return xReturn;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+/*
|
|
|
|
+ * Implements the akb command.
|
|
|
|
+ */
|
|
|
|
+static portBASE_TYPE prvTaskAKBCommand( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t *pcCommandString ){
|
|
|
|
+ int8_t *pcParameterString;
|
|
|
|
+ signed portBASE_TYPE xParameterStringLength, xReturn;
|
|
|
|
+ portBASE_TYPE xParameterNumber = 1;
|
|
|
|
+ char str[110];
|
|
|
|
+ uint8_t i;
|
|
|
|
+ float value = 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. */
|
|
|
|
+ );
|
|
|
|
+ if(pcParameterString == NULL){
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ return pdFALSE;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for(i = 0; i < ARG_AKB_ALL; i ++){
|
|
|
|
+ if( strncmp( ( const char * ) pcParameterString, akb_args_list[i], strlen(akb_args_list[i]) ) == 0 ){
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(telnet_code_auth != ADMIN && i !=ARG_AKB_INFO){
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcPermissionDenied, strlen( ( char * ) pcPermissionDenied ) );
|
|
|
|
+ return pdFALSE;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ 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. */
|
|
|
|
+ );
|
|
|
|
+ if(pcParameterString == NULL){
|
|
|
|
+ if(i == ARG_AKB_INFO){
|
|
|
|
+ akb_config_param(pcWriteBuffer);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ }
|
|
|
|
+ return pdFALSE;
|
|
|
|
+ }
|
|
|
|
+ memset(str, 0, sizeof(str));
|
|
|
|
+ xParameterStringLength = strlen(( const char * ) pcParameterString);
|
|
|
|
+ if(xParameterStringLength > (int32_t)sizeof(str))
|
|
|
|
+ xParameterStringLength = sizeof(str) - 2;
|
|
|
|
+ strncat(str, ( const char * ) pcParameterString, strlen(( const char * ) pcParameterString));
|
|
|
|
+ for(uint8_t j = 0; j < xParameterStringLength; j ++){
|
|
|
|
+ if(!isfloatdigit(str[j])){
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ return pdFALSE;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ value = atof(str);
|
|
|
|
+
|
|
|
|
+ switch(i){
|
|
|
|
+ case ARG_AKB_VOLT_CELL_MIN:
|
|
|
|
+ if(value < sSettings.UPS_Setting.Ucellmax && value > 0){
|
|
|
|
+ SetUPSVoltCellMinStr(str);
|
|
|
|
+ SETTINGS_Save();
|
|
|
|
+ log_event_data(LOG_SETTING_SAVE, name_login_telnet);
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ break;
|
|
|
|
+ case ARG_AKB_VOLT_CELL_MAX:
|
|
|
|
+ if(value > sSettings.UPS_Setting.Ucellmin && value <= 3.0){
|
|
|
|
+ SetUPSVoltCellMaxStr(str);
|
|
|
|
+ SETTINGS_Save();
|
|
|
|
+ log_event_data(LOG_SETTING_SAVE, name_login_telnet);
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ xReturn = pdFALSE;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ return xReturn;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * Implements the alarm command.
|
|
|
|
+ */
|
|
|
|
+static portBASE_TYPE prvTaskAlarmCommand( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t *pcCommandString ){
|
|
|
|
+ int8_t *pcParameterString;
|
|
|
|
+ signed portBASE_TYPE xParameterStringLength, xReturn;
|
|
|
|
+ portBASE_TYPE xParameterNumber = 1;
|
|
|
|
+ char str[110];
|
|
|
|
+ uint8_t i, j;
|
|
|
|
+ float value = 0;
|
|
|
|
+ uint8_t k;
|
|
|
|
+
|
|
|
|
+ ( 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. */
|
|
|
|
+ );
|
|
|
|
+ if(pcParameterString == NULL){
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ return pdFALSE;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for(i = 0; i < ARG_ALARM_TYPE_ALL; i ++){
|
|
|
|
+ if( strncmp( ( const char * ) pcParameterString, type_alarm_args_list[i], strlen(type_alarm_args_list[i]) ) == 0 ){
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(telnet_code_auth != ADMIN && i != ARG_ALARM_INFO){
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcPermissionDenied, strlen( ( char * ) pcPermissionDenied ) );
|
|
|
|
+ return pdFALSE;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ 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. */
|
|
|
|
+ );
|
|
|
|
+ if(pcParameterString == NULL){
|
|
|
|
+ if(i == ARG_ALARM_INFO){
|
|
|
|
+ alarm_config_param(pcWriteBuffer);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ }
|
|
|
|
+ return pdFALSE;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for(j = 0; j < ARG_ALARM_ALL; j ++){
|
|
|
|
+ if( strncmp( ( const char * ) pcParameterString, alarm_args_list[j], strlen(alarm_args_list[j]) ) == 0 ){
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ 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. */
|
|
|
|
+ );
|
|
|
|
+ if(pcParameterString == NULL){
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ return pdFALSE;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ memset(str, 0, sizeof(str));
|
|
|
|
+ xParameterStringLength = strlen(( const char * ) pcParameterString);
|
|
|
|
+ if(xParameterStringLength > (int32_t)sizeof(str))
|
|
|
|
+ xParameterStringLength = sizeof(str) - 2;
|
|
|
|
+ strncat(str, ( const char * ) pcParameterString, strlen(( const char * ) pcParameterString));
|
|
|
|
+ switch(i){
|
|
|
|
+ case ARG_ALARM_TEMP:
|
|
|
|
+ switch(j){
|
|
|
|
+ case ARG_ALARM_LINE_LOW:
|
|
|
|
+ for(k = 0; k < xParameterStringLength; k ++){
|
|
|
|
+ if(!isdigit_int(str[k])){
|
|
|
|
+ if(k == 0 && str[k] == '-'){
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ return pdFALSE;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ value = atof(str);
|
|
|
|
+ if(value >= -40 && value <= 0){
|
|
|
|
+ SetTemperatureAlarmLowRangeStr(str);
|
|
|
|
+ SETTINGS_Save();
|
|
|
|
+ log_event_data(LOG_SETTING_SAVE, name_login_telnet);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case ARG_ALARM_LINE_HIGH:
|
|
|
|
+ for(k = 0; k < xParameterStringLength; k ++){
|
|
|
|
+ if(!isdigit_int(str[k])){
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ return pdFALSE;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ value = atof(str);
|
|
|
|
+ if(value >= 40 && value <= 80){
|
|
|
|
+ SetTemperatureAlarmHighRangeStr(str);
|
|
|
|
+ SETTINGS_Save();
|
|
|
|
+ log_event_data(LOG_SETTING_SAVE, name_login_telnet);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case ARG_ALARM_LINE_HIST:
|
|
|
|
+ for(k = 0; k < xParameterStringLength; k ++){
|
|
|
|
+ if(!isfloatdigit(str[k])){
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ return pdFALSE;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ value = atof(str);
|
|
|
|
+ if(value >= 0.5 && value <= 2){
|
|
|
|
+ SetTemperatureAlarmHisteStr(str);
|
|
|
|
+ SETTINGS_Save();
|
|
|
|
+ log_event_data(LOG_SETTING_SAVE, name_login_telnet);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case ARG_ALARM_LOAD:
|
|
|
|
+ switch(j){
|
|
|
|
+ case ARG_ALARM_LINE_LOW:
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ break;
|
|
|
|
+ case ARG_ALARM_LINE_HIGH:
|
|
|
|
+ for(k = 0; k < xParameterStringLength; k ++){
|
|
|
|
+ if(!isdigit_int(str[k])){
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ return pdFALSE;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ value = atof(str);
|
|
|
|
+ if(value >= 60 && value <= 120){
|
|
|
|
+ SetLoadAlarmHighRangeStr(str);
|
|
|
|
+ SETTINGS_Save();
|
|
|
|
+ log_event_data(LOG_SETTING_SAVE, name_login_telnet);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case ARG_ALARM_LINE_HIST:
|
|
|
|
+ for(k = 0; k < xParameterStringLength; k ++){
|
|
|
|
+ if(!isfloatdigit(str[k])){
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ return pdFALSE;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ value = atof(str);
|
|
|
|
+ if(value >= 0.5 && value <= 2){
|
|
|
|
+ SetLoadAlarmHistStr(str);
|
|
|
|
+ SETTINGS_Save();
|
|
|
|
+ log_event_data(LOG_SETTING_SAVE, name_login_telnet);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case ARG_ALARM_VOUT:
|
|
|
|
+ switch(j){
|
|
|
|
+ case ARG_ALARM_LINE_LOW:
|
|
|
|
+ for(k = 0; k < xParameterStringLength; k ++){
|
|
|
|
+ if(!isdigit_int(str[k])){
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ return pdFALSE;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ value = atof(str);
|
|
|
|
+ if(value >= 110 && value <= 200){
|
|
|
|
+ SetVACAlarmLowRangeStr(str);
|
|
|
|
+ SETTINGS_Save();
|
|
|
|
+ log_event_data(LOG_SETTING_SAVE, name_login_telnet);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case ARG_ALARM_LINE_HIGH:
|
|
|
|
+ for(k = 0; k < xParameterStringLength; k ++){
|
|
|
|
+ if(!isdigit_int(str[k])){
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ return pdFALSE;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ value = atof(str);
|
|
|
|
+ if(value >= 220 && value <= 250){
|
|
|
|
+ SetVACAlarmHighRangeStr(str);
|
|
|
|
+ SETTINGS_Save();
|
|
|
|
+ log_event_data(LOG_SETTING_SAVE, name_login_telnet);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case ARG_ALARM_LINE_HIST:
|
|
|
|
+ for(k = 0; k < xParameterStringLength; k ++){
|
|
|
|
+ if(!isdigit_int(str[k])){
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ return pdFALSE;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ value = atof(str);
|
|
|
|
+ if(value >= 10 && value <= 30){
|
|
|
|
+ SetVACAlarmHisteStr(str);
|
|
|
|
+ SETTINGS_Save();
|
|
|
|
+ log_event_data(LOG_SETTING_SAVE, name_login_telnet);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ xReturn = pdFALSE;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ return xReturn;
|
|
|
|
+}
|
|
|
|
+
|
|
#ifdef HARDWARE_BT6708
|
|
#ifdef HARDWARE_BT6708
|
|
/*
|
|
/*
|
|
* Implements the whitelist command.
|
|
* Implements the whitelist command.
|
|
@@ -1532,6 +1974,12 @@ static portBASE_TYPE prvTaskConfigCommand( int8_t *pcWriteBuffer, size_t xWriteB
|
|
inouts_config_param(pcWriteBuffer);
|
|
inouts_config_param(pcWriteBuffer);
|
|
break;
|
|
break;
|
|
#endif
|
|
#endif
|
|
|
|
+ case PARAM_CONFIG_AKB:
|
|
|
|
+ akb_config_param(pcWriteBuffer);
|
|
|
|
+ break;
|
|
|
|
+ case PARAM_CONFIG_ALARM:
|
|
|
|
+ alarm_config_param(pcWriteBuffer);
|
|
|
|
+ break;
|
|
#ifdef HARDWARE_BT6708
|
|
#ifdef HARDWARE_BT6708
|
|
case PARAM_CONFIG_WHITELIST:
|
|
case PARAM_CONFIG_WHITELIST:
|
|
whitelist_config_param(pcWriteBuffer);
|
|
whitelist_config_param(pcWriteBuffer);
|