1
0
Fork 0
mirror of https://git.rwth-aachen.de/acs/public/villas/node/ synced 2025-03-09 00:00:00 +01:00

signal: all signal_to_json()

This commit is contained in:
Steffen Vogel 2020-08-17 17:04:55 +02:00
parent b58573f123
commit c48e6718dc
3 changed files with 30 additions and 8 deletions

View file

@ -81,11 +81,5 @@ int signal_parse(struct signal *s, json_t *cfg);
/** Initialize signal from a mapping_entry. */
int signal_init_from_mapping(struct signal *s, const struct mapping_entry *me, unsigned index);
enum SignalType signal_type_from_str(const char *str);
enum SignalType signal_type_from_fmtstr(char c);
const char * signal_type_to_str(enum SignalType fmt);
enum SignalType signal_type_detect(const char *val);
/** Produce JSON representation of signal. */
json_t * signal_to_json(struct signal *s);

View file

@ -30,3 +30,11 @@ enum class SignalType {
BOOLEAN = 3, /**< See signal_data::b */
COMPLEX = 4 /**< See signal_data::z */
};
enum SignalType signal_type_from_str(const char *str);
enum SignalType signal_type_from_fmtstr(char c);
const char * signal_type_to_str(enum SignalType fmt);
enum SignalType signal_type_detect(const char *val);

View file

@ -25,6 +25,9 @@
#include <villas/mapping.h>
#include <villas/exceptions.hpp>
#include <villas/signal_type.h>
#include <villas/signal_data.h>
using namespace villas;
using namespace villas::utils;
@ -216,3 +219,20 @@ int signal_parse(struct signal *s, json_t *cfg)
return 0;
}
json_t * signal_to_json(struct signal *s)
{
json_t *json_sig = json_pack("{ s: s, s: b, s: o }",
"type", signal_type_to_str(s->type),
"enabled", s->enabled,
"init", signal_data_to_json(&s->init, s)
);
if (s->name)
json_object_set(json_sig, "name", json_string(s->name));
if (s->unit)
json_object_set(json_sig, "unit", json_string(s->unit));
return json_sig;
}