diff --git a/include/villas/nodes/signal_generator.hpp b/include/villas/nodes/signal_generator.hpp index 91d4c02be..dabba3cec 100644 --- a/include/villas/nodes/signal_generator.hpp +++ b/include/villas/nodes/signal_generator.hpp @@ -51,7 +51,8 @@ struct signal_generator { RAMP, COUNTER, CONSTANT, - MIXED + MIXED, + PULSE } type; /**< Signal type */ double rate; /**< Sampling rate. */ diff --git a/lib/nodes/signal_generator.cpp b/lib/nodes/signal_generator.cpp index 3e57d736f..d3a6e6cdd 100644 --- a/lib/nodes/signal_generator.cpp +++ b/lib/nodes/signal_generator.cpp @@ -51,6 +51,8 @@ static enum signal_generator::SignalType signal_generator_lookup_type(const char return signal_generator::SignalType::CONSTANT; else if (!strcmp(type, "mixed")) return signal_generator::SignalType::MIXED; + else if (!strcmp(type, "pulse")) + return signal_generator::SignalType::PULSE; throw std::invalid_argument("Invalid signal type"); } @@ -72,7 +74,6 @@ static const char * signal_generator_type_str(enum signal_generator::SignalType case signal_generator::SignalType::RAMP: return "ramp"; - case signal_generator::SignalType::COUNTER: return "counter"; @@ -81,7 +82,8 @@ static const char * signal_generator_type_str(enum signal_generator::SignalType case signal_generator::SignalType::MIXED: return "mixed"; - + case signal_generator::SignalType::PULSE: + return "pulse"; default: return nullptr; } @@ -346,6 +348,9 @@ int signal_generator_read(struct node *n, struct sample *smps[], unsigned cnt, u case signal_generator::SignalType::MIXED: break; + case signal_generator::SignalType::PULSE: + t->data[i].f = 5; + break; } }