diff --git a/include/villas/common.h b/include/villas/common.h index 3aa4c2d21..c3828411e 100644 --- a/include/villas/common.h +++ b/include/villas/common.h @@ -50,6 +50,8 @@ enum state { */ typedef int (*dtor_cb_t)(void *); +const char * state_print(enum state s); + #ifdef __cplusplus } #endif diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 9015ef96d..354f3077a 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -73,6 +73,7 @@ set(LIB_SRC table.c bitset.c signal.c + common.c ) diff --git a/lib/api/actions/nodes.c b/lib/api/actions/nodes.c index 9f4499e0c..d4321c995 100644 --- a/lib/api/actions/nodes.c +++ b/lib/api/actions/nodes.c @@ -37,9 +37,9 @@ static int api_nodes(struct api_action *r, json_t *args, json_t **resp, struct a for (size_t i = 0; i < list_length(&s->api->super_node->nodes); i++) { struct node *n = (struct node *) list_at(&s->api->super_node->nodes, i); - json_t *json_node = json_pack("{ s: s, s: i, s: i, s: { s: i }, s: { s: i } }", + json_t *json_node = json_pack("{ s: s, s: s, s: i, s: { s: i }, s: { s: i } }", "name", node_name_short(n), - "state", n->state, + "state", state_print(n->state), "affinity", n->affinity, "in", "vectorize", n->in.vectorize, diff --git a/lib/common.c b/lib/common.c new file mode 100644 index 000000000..31b88d73b --- /dev/null +++ b/lib/common.c @@ -0,0 +1,70 @@ + +/** Common code. + * + * @author Steffen Vogel + * @copyright 2017-2018, Institute for Automation of Complex Power Systems, EONERC + * @license GNU General Public License (version 3) + * + * VILLASnode + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + *********************************************************************************/ + +#include + +#include + +const char * state_print(enum state s) +{ + switch (s) { + case STATE_DESTROYED: + return "destroyed"; + break; + + case STATE_INITIALIZED: + return "initialized"; + break; + + case STATE_PARSED: + return "parsed"; + break; + + case STATE_CHECKED: + return "checked"; + break; + + case STATE_STARTED: + return "running"; + break; + + case STATE_STOPPED: + return "stopped"; + break; + + case STATE_PENDING_CONNECT: + return "pending-connect"; + break; + + case STATE_CONNECTED: + return "connected"; + break; + + case STATE_PAUSED: + return "paused"; + break; + + default: + return NULL; + } +}