fastcat 0.13.15
C++ EtherCAT Device Command & Control Library
Loading...
Searching...
No Matches
signal_generator.h
Go to the documentation of this file.
1#ifndef FASTCAT_SIGNAL_GENERATOR_H_
2#define FASTCAT_SIGNAL_GENERATOR_H_
3
4// Include related header (for cc files)
5
6// Include c then c++ libraries
7#include <random>
8
9// Include external then project includes
10#include "fastcat/device_base.h"
11#include "fastcat/types.h"
12
13namespace fastcat
14{
22
24
25typedef struct {
27 double phase;
28 double amplitude;
29 double offset;
31
32typedef struct {
33 double slope;
34 double max;
35 double min;
36 double range; // derived
37 double modulo;
39
40typedef struct {
41 uint32_t seed = 1;
42 double mean;
43 double sigma;
44 std::normal_distribution<double> distribution;
46
47typedef struct {
48 uint32_t seed = 1;
49 double min;
50 double max;
51 std::uniform_real_distribution<double> distribution;
53
55{
56 public:
58 bool ConfigFromYaml(const YAML::Node& node) override;
59 bool Read() override;
60
61 protected:
64 double start_time_ = 0;
65 std::default_random_engine generator_;
66
67 union {
72 };
73};
74
75} // namespace fastcat
76
77#endif
Definition device_base.h:20
Definition signal_generator.h:55
SineWaveParams sine_wave_
Definition signal_generator.h:68
SignalGenerator()
Definition signal_generator.cc:28
bool Read() override
Definition signal_generator.cc:132
bool ConfigFromYaml(const YAML::Node &node) override
Definition signal_generator.cc:36
SawToothParams saw_tooth_
Definition signal_generator.h:69
double start_time_
Definition signal_generator.h:64
enum SignalGeneratorType signal_generator_type_
Definition signal_generator.h:63
std::string signal_generator_type_string_
Definition signal_generator.h:62
UniformRandomParams uniform_random_
Definition signal_generator.h:71
std::default_random_engine generator_
Definition signal_generator.h:65
GaussianRandomParams gaussian_random_
Definition signal_generator.h:70
Definition device_base.h:18
SignalGeneratorType
Definition signal_generator.h:15
@ GAUSSIAN_RANDOM
Definition signal_generator.h:18
@ UNIFORM_RANDOM
Definition signal_generator.h:19
@ BAD_SIGNAL_GENERATOR_TYPE
Definition signal_generator.h:20
@ SAW_TOOTH
Definition signal_generator.h:17
@ SINE_WAVE
Definition signal_generator.h:16
SignalGeneratorType SignalGeneratorTypeFromString(const std::string &)
Definition signal_generator.cc:11
Definition signal_generator.h:40
double mean
Definition signal_generator.h:42
double sigma
Definition signal_generator.h:43
std::normal_distribution< double > distribution
Definition signal_generator.h:44
Definition signal_generator.h:32
double range
Definition signal_generator.h:36
double slope
Definition signal_generator.h:33
double modulo
Definition signal_generator.h:37
double min
Definition signal_generator.h:35
double max
Definition signal_generator.h:34
Definition signal_generator.h:25
double offset
Definition signal_generator.h:29
double amplitude
Definition signal_generator.h:28
double phase
Definition signal_generator.h:27
double angular_frequency
Definition signal_generator.h:26
Definition signal_generator.h:47
double min
Definition signal_generator.h:49
std::uniform_real_distribution< double > distribution
Definition signal_generator.h:51
double max
Definition signal_generator.h:50