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
31
namespace
eso::uatools::itest
{
32
33
struct
VariableSimulationConfig
{
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
44
struct
VariableNodeConfig
{
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
62
struct
MethodArgConfig
{
63
std::string
name
;
64
std::string
datatype
;
65
std::string
description
;
66
};
67
68
struct
MethodSimulationConfig
{
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
;
79
MethodSimulationConfig
sim
;
80
};
81
82
struct
ServerConfigYaml
{
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
eso::uatools::itest
Definition
server.hpp:31
eso::uatools::itest::Serve
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
eso::uatools::itest::LoadConfig
ServerConfigYaml LoadConfig(const std::string &path)
Load a YAML file into a ServerConfigYaml.
Definition
server.cpp:702
eso::uatools::itest::FolderConfig
Definition
server.hpp:56
eso::uatools::itest::FolderConfig::node_id
std::string node_id
Definition
server.hpp:58
eso::uatools::itest::FolderConfig::name
std::string name
Definition
server.hpp:57
eso::uatools::itest::FolderConfig::parent
std::string parent
Definition
server.hpp:59
eso::uatools::itest::MethodArgConfig
Definition
server.hpp:62
eso::uatools::itest::MethodArgConfig::datatype
std::string datatype
Definition
server.hpp:64
eso::uatools::itest::MethodArgConfig::description
std::string description
Definition
server.hpp:65
eso::uatools::itest::MethodArgConfig::name
std::string name
Definition
server.hpp:63
eso::uatools::itest::MethodConfig
Definition
server.hpp:73
eso::uatools::itest::MethodConfig::input_args
std::vector< MethodArgConfig > input_args
Definition
server.hpp:77
eso::uatools::itest::MethodConfig::folder
std::string folder
Definition
server.hpp:76
eso::uatools::itest::MethodConfig::node_id
std::string node_id
Definition
server.hpp:75
eso::uatools::itest::MethodConfig::output_args
std::vector< MethodArgConfig > output_args
Definition
server.hpp:78
eso::uatools::itest::MethodConfig::sim
MethodSimulationConfig sim
Definition
server.hpp:79
eso::uatools::itest::MethodConfig::name
std::string name
Definition
server.hpp:74
eso::uatools::itest::MethodSimulationConfig
Definition
server.hpp:68
eso::uatools::itest::MethodSimulationConfig::type
std::string type
Definition
server.hpp:69
eso::uatools::itest::MethodSimulationConfig::fixed_outputs
std::vector< std::string > fixed_outputs
Definition
server.hpp:70
eso::uatools::itest::ServerConfigYaml
Definition
server.hpp:82
eso::uatools::itest::ServerConfigYaml::methods
std::vector< MethodConfig > methods
Definition
server.hpp:88
eso::uatools::itest::ServerConfigYaml::endpoint
std::string endpoint
Definition
server.hpp:83
eso::uatools::itest::ServerConfigYaml::folders
std::vector< FolderConfig > folders
Definition
server.hpp:86
eso::uatools::itest::ServerConfigYaml::nodes
std::vector< VariableNodeConfig > nodes
Definition
server.hpp:87
eso::uatools::itest::ServerConfigYaml::namespace_uri
std::string namespace_uri
Definition
server.hpp:84
eso::uatools::itest::ServerConfigYaml::log_level
std::string log_level
Definition
server.hpp:85
eso::uatools::itest::VariableNodeConfig
Definition
server.hpp:44
eso::uatools::itest::VariableNodeConfig::initial_value_raw
std::string initial_value_raw
Definition
server.hpp:48
eso::uatools::itest::VariableNodeConfig::name
std::string name
Definition
server.hpp:45
eso::uatools::itest::VariableNodeConfig::writable
bool writable
Definition
server.hpp:52
eso::uatools::itest::VariableNodeConfig::datatype
std::string datatype
Definition
server.hpp:47
eso::uatools::itest::VariableNodeConfig::is_array
bool is_array
Definition
server.hpp:49
eso::uatools::itest::VariableNodeConfig::node_id
std::string node_id
Definition
server.hpp:46
eso::uatools::itest::VariableNodeConfig::folder
std::string folder
Definition
server.hpp:51
eso::uatools::itest::VariableNodeConfig::sim
VariableSimulationConfig sim
Definition
server.hpp:53
eso::uatools::itest::VariableNodeConfig::initial_array_values
std::vector< std::string > initial_array_values
Definition
server.hpp:50
eso::uatools::itest::VariableSimulationConfig
Definition
server.hpp:33
eso::uatools::itest::VariableSimulationConfig::type
std::string type
Definition
server.hpp:34
eso::uatools::itest::VariableSimulationConfig::min
double min
Definition
server.hpp:39
eso::uatools::itest::VariableSimulationConfig::period_ms
double period_ms
Definition
server.hpp:36
eso::uatools::itest::VariableSimulationConfig::interval_ms
double interval_ms
Definition
server.hpp:35
eso::uatools::itest::VariableSimulationConfig::amplitude
double amplitude
Definition
server.hpp:37
eso::uatools::itest::VariableSimulationConfig::max
double max
Definition
server.hpp:40
eso::uatools::itest::VariableSimulationConfig::step
double step
Definition
server.hpp:41
eso::uatools::itest::VariableSimulationConfig::offset
double offset
Definition
server.hpp:38
itest
lib
src
include
eso
uatools
itest
server.hpp
Generated by
1.13.2