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 err = 0;
int commlen = strlen(cmd); int commlen = strlen(cmd);
if (commlen > CONFIG_WEBGUIAPP_MAX_COMMAND_STRING_LENGTH) 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]; char comm[CONFIG_WEBGUIAPP_MAX_COMMAND_STRING_LENGTH + 1];
strcpy(comm, cmd); strcpy(comm, cmd);
@ -155,9 +155,9 @@ static int ExecCommandParse(char *cmd)
com = strtok(NULL, ","); com = strtok(NULL, ",");
arg = strtok(NULL, "\0"); arg = strtok(NULL, "\0");
if (!obj) if (!obj)
return 2; return 2; //ERROR_OBJECT_NOT_PARSED
if (!com) if (!com)
return 3; return 3; //ERROR_ACTION_NOT_PARSED
for (int idx = 0; idx < CONFIG_WEBGUIAPP_MAX_OBJECTS_NUM; idx++) 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) if (com_obj_arr[idx].command_handlers[i] != NULL)
{ {
com_obj_arr[idx].command_handlers[i](obj, com, arg); com_obj_arr[idx].command_handlers[i](obj, com, arg);
return 0; return 0; //EXECUTED_OK
} }
else 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) if (custom_com_obj_arr[idx].command_handlers[i] != NULL)
{ {
custom_com_obj_arr[idx].command_handlers[i](obj, com, arg); custom_com_obj_arr[idx].command_handlers[i](obj, com, arg);
return 0; return 0; //EXECUTED_OK
} }
else 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 //CRON implementation END
static void funct_serial_mode(char *argres, int rw) static void funct_serial_mode(char *argres, int rw)
{ {
@ -334,12 +333,20 @@ static void funct_objsinfo(char *argres, int rw)
GetObjectsInfo(argres); 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) static void funct_exec(char *argres, int rw)
{ {
if (rw) int res = ExecCommand(argres);
ExecCommand(argres); snprintf(argres, VAR_MAX_VALUE_LENGTH, "\"%s\"", EXEC_ERROR[res]);
else
snprintf(argres, VAR_MAX_VALUE_LENGTH, "\"EXECUTED\"");
} }
static void funct_file_list(char *argres, int rw) 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) static void funct_lat(char *argres, int rw)
{ {
if(rw) if (rw)
{ {
GetSysConf()->sntpClient.lat = atof(argres); 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) static void funct_lon(char *argres, int rw)
{ {
if(rw) if (rw)
{ {
GetSysConf()->sntpClient.lon = atof(argres); 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 } { 0, "sd_visible", (bool*) (&VAR_TRUE), VAR_BOOL, R, 0, 1 }
#else #else
{ 0, "sd_visible", (bool*) (&VAR_FALSE), VAR_BOOL, R, 0, 1 }, { 0, "sd_visible", (bool*) (&VAR_FALSE), VAR_BOOL, R, 0, 1 },
#endif #endif
}; };