implemented extended errors return for 'exec' variable

This commit is contained in:
Bogdan Pilyugin 2024-06-24 21:29:58 +02:00
parent 775635019c
commit 7058e86538
2 changed files with 25 additions and 18 deletions

View File

@ -147,7 +147,7 @@ static int ExecCommandParse(char *cmd)
//int err = 0;
int commlen = strlen(cmd);
if (commlen > CONFIG_WEBGUIAPP_MAX_COMMAND_STRING_LENGTH)
return 1;
return 1; //ERROR_TOO_LONG_COMMAND
char comm[CONFIG_WEBGUIAPP_MAX_COMMAND_STRING_LENGTH + 1];
strcpy(comm, cmd);
@ -155,9 +155,9 @@ static int ExecCommandParse(char *cmd)
com = strtok(NULL, ",");
arg = strtok(NULL, "\0");
if (!obj)
return 2;
return 2; //ERROR_OBJECT_NOT_PARSED
if (!com)
return 3;
return 3; //ERROR_ACTION_NOT_PARSED
for (int idx = 0; idx < CONFIG_WEBGUIAPP_MAX_OBJECTS_NUM; idx++)
{
@ -170,13 +170,13 @@ static int ExecCommandParse(char *cmd)
if (com_obj_arr[idx].command_handlers[i] != NULL)
{
com_obj_arr[idx].command_handlers[i](obj, com, arg);
return 0;
return 0; //EXECUTED_OK
}
else
return 6;
return 6; //ERROR_HANDLER_NOT_IMPLEMENTED
}
}
return 5;
return 5; //ERROR_ACTION_NOT_FOUND
}
}
@ -191,15 +191,15 @@ static int ExecCommandParse(char *cmd)
if (custom_com_obj_arr[idx].command_handlers[i] != NULL)
{
custom_com_obj_arr[idx].command_handlers[i](obj, com, arg);
return 0;
return 0; //EXECUTED_OK
}
else
return 6;
return 6; //ERROR_HANDLER_NOT_IMPLEMENTED
}
}
return 5;
return 5; //ERROR_ACTION_NOT_FOUND
}
}
return 4;
return 4; //ERROR_OBJECT_NOT_FOUND
}

View File

@ -317,7 +317,6 @@ static void funct_cronrecs(char *argres, int rw)
}
//CRON implementation END
static void funct_serial_mode(char *argres, int rw)
{
@ -334,12 +333,20 @@ static void funct_objsinfo(char *argres, int rw)
GetObjectsInfo(argres);
}
const char *EXEC_ERROR[] = {
"EXECUTED_OK",
"ERROR_TOO_LONG_COMMAND",
"ERROR_OBJECT_NOT_PARSED",
"ERROR_ACTION_NOT_PARSED",
"ERROR_OBJECT_NOT_FOUND",
"ERROR_ACTION_NOT_FOUND",
"ERROR_HANDLER_NOT_IMPLEMENTED",
};
static void funct_exec(char *argres, int rw)
{
if (rw)
ExecCommand(argres);
else
snprintf(argres, VAR_MAX_VALUE_LENGTH, "\"EXECUTED\"");
int res = ExecCommand(argres);
snprintf(argres, VAR_MAX_VALUE_LENGTH, "\"%s\"", EXEC_ERROR[res]);
}
static void funct_file_list(char *argres, int rw)
@ -374,7 +381,7 @@ static void funct_sd_block(char *argres, int rw)
static void funct_lat(char *argres, int rw)
{
if(rw)
if (rw)
{
GetSysConf()->sntpClient.lat = atof(argres);
}
@ -383,7 +390,7 @@ static void funct_lat(char *argres, int rw)
static void funct_lon(char *argres, int rw)
{
if(rw)
if (rw)
{
GetSysConf()->sntpClient.lon = atof(argres);
}
@ -580,7 +587,7 @@ const rest_var_t SystemVariables[] =
{ 0, "sd_visible", (bool*) (&VAR_TRUE), VAR_BOOL, R, 0, 1 }
#else
{ 0, "sd_visible", (bool*) (&VAR_FALSE), VAR_BOOL, R, 0, 1 },
#endif
#endif
};