Motion Master 6.0.0-alpha.111
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#include <vector>
8
17
29 std::string bindAddress = "127.0.0.1";
30 uint16_t httpPort = 61447;
31 uint16_t wsPort = 62281;
32 std::string corsOrigin = "https://motion-master.synapticon.com";
33};
34
36struct SpoeConfig {
40 std::string mode = "monitor";
44 uint32_t watchdogMs = 75;
45 uint16_t port = 8080;
46};
47
51 std::string driver;
52 std::string adapter;
54 std::vector<std::string> ipAddresses;
62 bool mailboxStatusFmmu = false;
63};
64
66struct TlsConfig {
69 std::string certPath;
70 std::string keyPath;
71 bool autoUpdate = true;
72};
73
76 uint32_t periodUs = 1000;
84 int cpuAffinity = -1;
85};
86
96 uint32_t capacity = 300000;
103 std::string dumpDir;
104};
105
113 bool enabled = true;
117 bool cacheAllVendors = false;
118 std::string directory;
119};
120
134 std::string directory;
135};
136
152
165 bool enabled = true;
168 std::string binaryPath;
172 uint16_t port = 63528;
173};
174
188 bool enabled = true;
193 std::string level = "debug";
197 std::string directory;
200 uint32_t maxSizeMb = 10;
202 uint32_t maxFiles = 5;
203};
204
209 std::string level = "info";
211};
212
226
228 corsOrigin)
231 mailboxStatusFmmu)
236 directory)
239 useCompleteAccess)
242 maxSizeMb, maxFiles)
246 autoTuning)
247
258std::expected<Config, std::string> parseConfig(const nlohmann::json& doc);
259
264std::expected<void, std::string> validateFieldbusConfig(const FieldbusConfig& fieldbus);
ipAddresses
Definition config.h:230
mailboxStatusFmmu readObjectDictionaryOnPreop
Definition config.h:238
mailboxStatusFmmu useCompleteAccess recorder
Definition config.h:245
driver
Definition config.h:230
adapter
Definition config.h:230
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(ServerConfig, bindAddress, httpPort, wsPort, corsOrigin) NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(FieldbusConfig
mailboxStatusFmmu useCompleteAccess parameters
Definition config.h:245
mailboxStatusFmmu useCompleteAccess parameterCache
Definition config.h:245
mailboxStatusFmmu useCompleteAccess autoTuning std::expected< Config, std::string > parseConfig(const nlohmann::json &doc)
Deserialises a parsed JSONC document into a Config, applying defaults for absent keys.
Definition config.cc:8
mailboxStatusFmmu useCompleteAccess tls
Definition config.h:244
mailboxStatusFmmu useCompleteAccess userCache
Definition config.h:245
std::expected< void, std::string > validateFieldbusConfig(const FieldbusConfig &fieldbus)
Checks the "fieldbus" block. The config file and POST /api/init share it.
Definition config.cc:82
spoe
Definition config.h:230
mailboxStatusFmmu useCompleteAccess server
Definition config.h:244
mailboxStatusFmmu useCompleteAccess logging
Definition config.h:244
mailboxStatusFmmu useCompleteAccess fieldbus
Definition config.h:244
mailboxStatusFmmu useCompleteAccess gameLoop
Definition config.h:244
"autoTuning" block — the auto-tuning child process.
Definition config.h:162
uint16_t port
Definition config.h:172
bool enabled
Definition config.h:165
std::string binaryPath
Definition config.h:168
The whole config file. Top-level keys map to these members.
Definition config.h:214
TlsConfig tls
Definition config.h:218
GameLoopConfig gameLoop
Definition config.h:219
ServerConfig server
Definition config.h:215
RecorderConfig recorder
Definition config.h:220
LoggingConfig logging
Definition config.h:217
ParametersConfig parameters
Definition config.h:223
AutoTuningConfig autoTuning
Definition config.h:224
ParameterCacheConfig parameterCache
Definition config.h:221
UserCacheConfig userCache
Definition config.h:222
FieldbusConfig fieldbus
Definition config.h:216
"fieldbus" block — the driver to auto-init at startup. An empty driver means "do not auto-init"; the ...
Definition config.h:50
std::string driver
"" | "soem" | "spoe".
Definition config.h:51
bool mailboxStatusFmmu
Definition config.h:62
std::string adapter
Definition config.h:52
SpoeConfig spoe
Definition config.h:55
std::vector< std::string > ipAddresses
SPoE only. One IP address per drive. The list order is the position order.
Definition config.h:54
"logging.file" block — the rotating log file.
Definition config.h:185
bool enabled
Definition config.h:188
uint32_t maxFiles
How many rotated files to keep beside the active one.
Definition config.h:202
std::string directory
Definition config.h:197
uint32_t maxSizeMb
Definition config.h:200
std::string level
Definition config.h:193
"gameLoop" block — the real-time cyclic loop.
Definition config.h:75
uint32_t periodUs
Definition config.h:76
int cpuAffinity
Definition config.h:84
"logging" block — verbosity and the log file.
Definition config.h:206
FileLoggingConfig file
Definition config.h:210
std::string level
Definition config.h:209
"parameterCache" block — the on-disk cache of CoE parameter definitions.
Definition config.h:112
bool cacheAllVendors
Definition config.h:117
std::string directory
"" = a standard per-user cache directory; set to override.
Definition config.h:118
bool enabled
Definition config.h:113
"parameters" block — CoE object-dictionary behaviour.
Definition config.h:138
bool useCompleteAccess
Definition config.h:150
bool readObjectDictionaryOnPreop
Definition config.h:144
"recorder" block — the lossless process-data recorder ring.
Definition config.h:88
std::string dumpDir
Definition config.h:103
uint32_t capacity
Definition config.h:96
"server" block — the HTTP API and WebSocket listeners.
Definition config.h:19
std::string corsOrigin
Definition config.h:32
uint16_t httpPort
Definition config.h:30
std::string bindAddress
Definition config.h:29
uint16_t wsPort
Definition config.h:31
"fieldbus.spoe" block — settings that apply only to the SPoE driver.
Definition config.h:36
uint16_t port
The TCP port of the SPoE server on every drive.
Definition config.h:45
std::string mode
Definition config.h:40
uint32_t watchdogMs
Definition config.h:44
"tls" block — certificate paths and startup self-heal policy.
Definition config.h:66
std::string certPath
Definition config.h:69
std::string keyPath
"" = auto-discover, paired with certPath.
Definition config.h:70
bool autoUpdate
Fetch a fresh cert when missing/expired/expiring (false ⇒ off).
Definition config.h:71
"userCache" block — the user-writable file store served at /api/user-cache.
Definition config.h:128
std::string directory
Definition config.h:134