uatools 1.0.0-pre2
 
Loading...
Searching...
No Matches
server.hpp
Go to the documentation of this file.
1
23
24#pragma once
25
26#include <atomic>
27#include <cstdint>
28#include <string>
29#include <vector>
30
32
34 std::string type; // "sine", "ramp", ...
35 double interval_ms = 1000.0;
36 double period_ms = 10000.0; // sine
37 double amplitude = 1.0; // sine
38 double offset = 0.0; // sine
39 double min = 0.0; // ramp
40 double max = 100.0; // ramp
41 double step = 1.0; // ramp
42 };
43
45 std::string name;
46 std::string node_id;
47 std::string datatype;
48 std::string initial_value_raw; // scalars
49 bool is_array = false;
50 std::vector<std::string> initial_array_values; // arrays
51 std::string folder; // optional: nodeId of folder
52 bool writable = true;
53 VariableSimulationConfig sim; // waveform sim (scalars only)
54 };
55
56 struct FolderConfig {
57 std::string name;
58 std::string node_id;
59 std::string parent; // optional: "Objects" or another folder.nodeId
60 };
61
63 std::string name;
64 std::string datatype;
65 std::string description;
66 };
67
69 std::string type; // "fixed", "sumInt32", ...
70 std::vector<std::string> fixed_outputs; // for type=="fixed"
71 };
72
73 struct MethodConfig {
74 std::string name;
75 std::string node_id;
76 std::string folder; // optional: nodeId of folder
77 std::vector<MethodArgConfig> input_args;
78 std::vector<MethodArgConfig> output_args;
80 };
81
83 std::string endpoint;
84 std::string namespace_uri;
85 std::string log_level = "WARNING"; // TRACE|DEBUG|INFO|WARNING|ERROR|FATAL|OFF
86 std::vector<FolderConfig> folders;
87 std::vector<VariableNodeConfig> nodes;
88 std::vector<MethodConfig> methods;
89 };
90
93 ServerConfigYaml LoadConfig(const std::string& path);
94
106 int Serve(const ServerConfigYaml& cfg, std::atomic<bool>& stop_flag);
107
108} // namespace eso::uatools::itest
Definition server.hpp:31
int Serve(const ServerConfigYaml &cfg, std::atomic< bool > &stop_flag)
Run an OPC UA server defined by cfg until stop_flag is set.
Definition server.cpp:851
ServerConfigYaml LoadConfig(const std::string &path)
Load a YAML file into a ServerConfigYaml.
Definition server.cpp:702
Definition server.hpp:56
std::string node_id
Definition server.hpp:58
std::string name
Definition server.hpp:57
std::string parent
Definition server.hpp:59
Definition server.hpp:62
std::string datatype
Definition server.hpp:64
std::string description
Definition server.hpp:65
std::string name
Definition server.hpp:63
Definition server.hpp:73
std::vector< MethodArgConfig > input_args
Definition server.hpp:77
std::string folder
Definition server.hpp:76
std::string node_id
Definition server.hpp:75
std::vector< MethodArgConfig > output_args
Definition server.hpp:78
MethodSimulationConfig sim
Definition server.hpp:79
std::string name
Definition server.hpp:74
std::string type
Definition server.hpp:69
std::vector< std::string > fixed_outputs
Definition server.hpp:70
std::vector< MethodConfig > methods
Definition server.hpp:88
std::string endpoint
Definition server.hpp:83
std::vector< FolderConfig > folders
Definition server.hpp:86
std::vector< VariableNodeConfig > nodes
Definition server.hpp:87
std::string namespace_uri
Definition server.hpp:84
std::string log_level
Definition server.hpp:85
std::string initial_value_raw
Definition server.hpp:48
std::string name
Definition server.hpp:45
bool writable
Definition server.hpp:52
std::string datatype
Definition server.hpp:47
bool is_array
Definition server.hpp:49
std::string node_id
Definition server.hpp:46
std::string folder
Definition server.hpp:51
VariableSimulationConfig sim
Definition server.hpp:53
std::vector< std::string > initial_array_values
Definition server.hpp:50
std::string type
Definition server.hpp:34
double min
Definition server.hpp:39
double period_ms
Definition server.hpp:36
double interval_ms
Definition server.hpp:35
double amplitude
Definition server.hpp:37
double max
Definition server.hpp:40
double step
Definition server.hpp:41
double offset
Definition server.hpp:38