Motion Master 6.0.0-alpha.50
Next-generation motion control software
Loading...
Searching...
No Matches
config.h
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4#include <expected>
5#include <nlohmann/json.hpp>
6#include <string>
7
16
19 uint16_t httpPort = 61447;
20 uint16_t wsPort = 62281;
21 std::string corsOrigin = "https://motion-master.synapticon.com";
22};
23
27 std::string driver;
28 std::string adapter;
35 bool mailboxStatusFmmu = false;
36};
37
39struct TlsConfig {
42 std::string certPath;
43 std::string keyPath;
44 bool autoUpdate = true;
45};
46
49 uint32_t periodUs = 1000;
50};
51
61 uint32_t capacity = 300000;
65 std::string dumpDir;
66};
67
75 bool enabled = true;
79 bool cacheAllVendors = false;
80 std::string directory;
81};
82
98
110
112NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(FieldbusConfig, driver, adapter, mailboxStatusFmmu)
117 directory)
119 useCompleteAccess)
120NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Config, server, fieldbus, logLevel, tls, gameLoop,
121 recorder, parameterCache, parameters)
122
132std::expected<Config, std::string> parseConfig(const nlohmann::json& doc);
std::expected< Config, std::string > parseConfig(const nlohmann::json &doc)
Definition config.cc:7
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(ParameterCacheConfig, enabled, cacheAllVendors, directory) NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(ParametersConfig
readObjectDictionaryOnPreop
Definition config.h:118
The whole config file. Top-level keys map to these members.
Definition config.h:100
TlsConfig tls
Definition config.h:104
GameLoopConfig gameLoop
Definition config.h:105
ServerConfig server
Definition config.h:101
RecorderConfig recorder
Definition config.h:106
ParametersConfig parameters
Definition config.h:108
std::string logLevel
trace | debug | info | warning | error | critical | off.
Definition config.h:103
ParameterCacheConfig parameterCache
Definition config.h:107
FieldbusConfig fieldbus
Definition config.h:102
"fieldbus" block — the driver to auto-init at startup. An empty driver means "do not auto-init"; the ...
Definition config.h:26
std::string driver
"" | "soem" | "spoe" (spoe planned; only soem is implemented today).
Definition config.h:27
bool mailboxStatusFmmu
Definition config.h:35
std::string adapter
Definition config.h:28
"gameLoop" block — the real-time cyclic loop.
Definition config.h:48
uint32_t periodUs
Cyclic timer period in microseconds (must be > 0). 1000 = 1 ms.
Definition config.h:49
"parameterCache" block — the on-disk cache of CoE parameter definitions.
Definition config.h:74
bool cacheAllVendors
Definition config.h:79
std::string directory
"" = a standard per-user cache directory; set to override.
Definition config.h:80
bool enabled
Definition config.h:75
"parameters" block — CoE object-dictionary behaviour.
Definition config.h:84
bool useCompleteAccess
Definition config.h:96
bool readObjectDictionaryOnPreop
Definition config.h:90
"recorder" block — the lossless process-data recorder ring.
Definition config.h:53
std::string dumpDir
Definition config.h:65
uint32_t capacity
Definition config.h:61
"server" block — the HTTP API and WebSocket listeners.
Definition config.h:18
std::string corsOrigin
Definition config.h:21
uint16_t httpPort
Definition config.h:19
uint16_t wsPort
Definition config.h:20
"tls" block — certificate paths and startup self-heal policy.
Definition config.h:39
std::string certPath
Definition config.h:42
std::string keyPath
"" = auto-discover, paired with certPath.
Definition config.h:43
bool autoUpdate
Fetch a fresh cert when missing/expired/expiring (false ⇒ off).
Definition config.h:44