Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[config] Introduction of YAML format for eCAL configuration #1669

Merged
merged 171 commits into from
Jul 26, 2024
Merged
Show file tree
Hide file tree
Changes from 168 commits
Commits
Show all changes
171 commits
Select commit Hold shift + click to select a range
382d9ef
First working implementation for config management.
Peguen Feb 20, 2024
0e9c039
Merge branch 'master' into feature/user_config_implementation
Peguen Feb 20, 2024
49e8ade
Resolved some merging problems.
Peguen Feb 21, 2024
70366d5
Fixed copy paste issue values for receivingOptions in ecal_config_ini…
Peguen Feb 21, 2024
00b2ec1
Config Adaptions: Set LimitSize default paramaeter to template MIN va…
Peguen Feb 21, 2024
eb31c72
Refactored options and config access.
Peguen Mar 27, 2024
548037f
Changed defines to constexpr in ecal_dev_ini.h
Peguen Mar 27, 2024
5b07971
Removed doubled constexpr.
Peguen Mar 27, 2024
9cd3594
Removed former ecal_config cpp and h from core/CMakesLists
Peguen Mar 28, 2024
9e1be9a
Removed ms_t from registration_options and handling in using functions.
Peguen Mar 28, 2024
c5ab1dc
Fixed ecal_registration cpp time config import.
Peguen Mar 28, 2024
05ec616
Refactored config options in application.
Peguen Mar 28, 2024
a861b01
Added process_options.terminal_emulator to config.
Peguen Mar 28, 2024
e35df5a
Refactored sys- and processoptions as sub to application options.
Peguen Mar 28, 2024
4a0ce13
Refactored default config to use ecal_def.h defines.
Peguen Mar 28, 2024
153ee9e
Refactored ini config to use ecal_def.h
Peguen Mar 28, 2024
94f91ae
Moved IpAddressV4 definitions to private space.
Peguen Mar 28, 2024
b196ab4
Removed unused fields.
Peguen Mar 28, 2024
afe2332
Fixed some GH actions compiling issues.
Peguen Mar 28, 2024
4887b02
Removed unnecessary comments in header files.
Peguen Mar 28, 2024
c768ba9
Changed #include <limits> to correct header.
Peguen Apr 2, 2024
6306d99
Merge branch 'master' into feature/user_config_implementation
Peguen Apr 2, 2024
b4690a0
Some updates regarding new configuration management to ecal_core.
Peguen Apr 2, 2024
4694927
Updated submodules
Peguen Apr 3, 2024
388f5bc
Checked out versions of thirdparty modules equal to master branch.
Peguen Apr 3, 2024
9303795
Implemented termination, when wrong values are assigned to custom dat…
Peguen Apr 3, 2024
848c572
Changed g_ecal_config() return value (PathWarning)
Peguen Apr 3, 2024
2370814
Added basic configuration tests.
Peguen Apr 3, 2024
e20d510
Added ECAL_API macro for config calls.
Peguen Apr 3, 2024
7cafa3e
Added operator overloading of == for LimitSize(LS), LS == int, LS == …
Peguen Apr 4, 2024
a6936d1
Fixed warnings because of implicit types conversions by implementing …
Peguen Apr 4, 2024
ca428d1
Created deathtests and more type tests for configuration tests.
Peguen Apr 4, 2024
5a5fe2c
Merge branch 'master' into feature/user_config_implementation
Peguen Apr 4, 2024
0370d47
Removed GetDefaultConfig().
Peguen Apr 4, 2024
ae7e608
Setting new_initialization to true in ecal_globals when ecal_config g…
Peguen Apr 5, 2024
6530bec
Removed const from custom_data_types as recommended.
Peguen Apr 5, 2024
3f95473
Review 1: Moved GetCurrentConfig to config.h.
Peguen Apr 8, 2024
a435621
Changed defines to constexpr in ecal_dev_ini.h
Peguen Mar 27, 2024
832c811
Changed defines to constexpr in ecal_def, ecal_def_ini + added uint a…
Peguen Apr 8, 2024
673a4b0
Merge remote-tracking branch 'origin/master' into feature/defines_to_…
Peguen Apr 8, 2024
ca14568
Merge branch 'feature/defines_to_constexpr' into feature/user_config_…
Peguen Apr 8, 2024
e05f398
Removed ecal_internal_options.h.
Peguen Apr 8, 2024
a8da1ce
Introduced logging options.
Peguen Apr 8, 2024
2dc3cbc
Renamed ProcessOptions to StartupOptions.
Peguen Apr 8, 2024
b2af134
Renamed ProcessOptions to StartupOptions in application_options.h.
Peguen Apr 9, 2024
71cc7e5
Adapted IpAddressV4 to exclude some addresses. Added test cases.
Peguen Apr 9, 2024
3c7b05d
Reverted changes to ecal.cpp and ecal_globals.cpp.
Peguen Apr 9, 2024
3db1f9d
ecal_config as reference, not pointer.
Peguen Apr 9, 2024
f3bbc96
Review 1: Config not as ptr. Optimized handling. Clangtidy happiness.
Peguen Apr 10, 2024
c19c4ff
Merge remote-tracking branch 'origin/master' into feature/user_config…
Peguen Apr 11, 2024
e0a1656
Changed constexpr in ecal_config_initializer.cpp
Peguen Apr 11, 2024
063b484
Added some clang tidy improvements (e.g. usage of const)
Peguen Apr 11, 2024
ceb4419
Added operator int() to LimitSize.
Peguen Apr 11, 2024
3a811a4
Added operator std::string() to IpV4Address.
Peguen Apr 11, 2024
4893564
Added default constructors to custom types classes.
Peguen Apr 11, 2024
32dfc18
... also for Limitsize.
Peguen Apr 11, 2024
9395da5
Added config example.
Peguen Apr 11, 2024
482ae05
CGlobals initializing in global space.
Peguen Apr 11, 2024
284f873
Adapted config sample.
Peguen Apr 11, 2024
a18e9de
config_test.cpp const happiness for clangtidy.
Peguen Apr 11, 2024
8da505e
Added timesync_module_replay to config and removed eCALPar from timeg…
Peguen Apr 12, 2024
2e8b9d4
Made github-actions bot a bit happier.
Peguen Apr 12, 2024
e7a9642
IpAddressV4 operator= improvement.
Peguen Apr 15, 2024
ddbbc99
Removed some PG TODOS.
Peguen Apr 15, 2024
10a3835
Started with documentation adaptions for config.
Peguen Apr 16, 2024
d19e55e
Updated docu for config with types.
Peguen Apr 17, 2024
733d4c6
TODO comment.
Peguen Apr 17, 2024
a7072fc
Small update to config doc.
Peguen Apr 17, 2024
c946cc6
Small update to config example.
Peguen Apr 17, 2024
19512cf
Small update to config example._2
Peguen Apr 17, 2024
8df8937
Renamed LimitSize to ConstrainedInteger.
Peguen Apr 17, 2024
4e049db
Changed behaviour of custom types: throwing invalid_argument exceptio…
Peguen Apr 18, 2024
0667980
Merge remote-tracking branch 'origin/master' into feature/user_config…
Peguen Apr 18, 2024
0511bed
Reverted Config Getters to previous integration.
Peguen Apr 18, 2024
da0a991
Added user_args to config file.
Peguen Apr 24, 2024
543949e
Refactored ecal Initialize with the config handling.
Peguen Apr 26, 2024
eb1a4ee
Throw exception for ecal registration options.
Peguen Apr 26, 2024
a362f26
Refactored ecal_registration_options.
Peguen Apr 26, 2024
521d70b
Merge remote-tracking branch 'origin/master' into feature/user_config…
Peguen Apr 26, 2024
ba0a6c1
cmd parser: path sep renaming.
Peguen Apr 26, 2024
51308c0
Cmd parser: throw error message, when cmd line ini file was not found.
Peguen Apr 26, 2024
aca5d69
Changed ini handling for config file.
Peguen Apr 26, 2024
557637a
Updated docu for config and example.
Peguen Apr 26, 2024
d910ef2
give user the freedom to initialize with specified ini file.
Peguen Apr 26, 2024
676facf
Merge remote-tracking branch 'origin/master' into feature/user_config…
Peguen May 13, 2024
5476f04
Some whitespaces.
Peguen May 15, 2024
1435ee8
Added RegistrationOptions test.
Peguen May 15, 2024
602212f
Changed ini file handling for cmd parser -> return complete path in e…
Peguen May 16, 2024
0dc7398
Added cmd parser ini test and death test.
Peguen May 16, 2024
e454368
Added cmd parser config key test + store config keys in map.
Peguen May 16, 2024
d72adbc
Removed generated ini file in test after usage.
Peguen May 16, 2024
82d8d11
Added config keys map to user cli arguments and provided the struct t…
Peguen May 16, 2024
b7e0bed
Merge remote-tracking branch 'origin/master' into feature/user_config…
Peguen May 16, 2024
287c24f
Clean up code and make clangtidy happy.
Peguen May 17, 2024
e3bb375
Merge remote-tracking branch 'origin/master' into feature/user_config…
Peguen May 17, 2024
ac9dbe9
Merge remote-tracking branch 'origin/master' into feature/user_config…
Peguen May 17, 2024
fed863b
Refactored to current publisher options. TimeoutAcknowledge test not …
Peguen May 17, 2024
31b0c6e
Make clang tidy a bit more happy.
Peguen May 21, 2024
295f998
Enable shm for pubsub acknowledge test.
Peguen May 21, 2024
915a7f7
Included ecal_subscriber_config
Peguen May 21, 2024
a2aca3e
Renamend Configuration member.
Peguen May 21, 2024
cf2148c
Moved config to globalgalactic space. Implemented default config cons…
Peguen May 21, 2024
80ef2a0
Restructure eCAL Application Options and default init for publisher/s…
Peguen May 22, 2024
cafb419
Use custom types in publisher config.
Peguen May 22, 2024
25116ea
Restructered config file structure, config namespaces and and file na…
Peguen May 22, 2024
f7b8470
Added comments to config structs from ini file.
Peguen May 22, 2024
f6f3dd5
Some file renaming.
Peguen May 23, 2024
913fee0
Updated docu for config.
Peguen May 23, 2024
fd80bad
Changes for transportlayer config.
Peguen May 24, 2024
e126b12
Try taking .ini file in normal initializing, as it was before.
Peguen May 24, 2024
f876c26
Merge remote-tracking branch 'origin/master' into feature/user_config…
Peguen May 24, 2024
25dd3e0
Added doc for publisher config.
Peguen May 24, 2024
7be0dd9
Defaulted publisher test again.
Peguen May 24, 2024
aa1d1ca
Removed unncessary constructor/destructor in custom config classes.
Peguen May 27, 2024
db16ff6
Some ecal_cmd_parser cleanup.
Peguen May 27, 2024
9613db0
Merge remote-tracking branch 'origin/master' into feature/user_config…
Peguen May 27, 2024
11044f1
Fix ecal_cmd_parser checkForValidConfigFilePath function.
Peguen May 28, 2024
a9a4a41
Fixed ecal_cmd_parser problem with path separator attachments.
Peguen May 29, 2024
6e4bd71
Added ecal.yml: first quick draft.
Peguen May 29, 2024
e0b2f64
Changes to eCAL yml.
Peguen Jun 4, 2024
034f7d5
Updated yaml-cpp to latest release 0.8.0
Peguen Jun 4, 2024
50f7c9c
Ecal yaml config update.
Peguen Jun 4, 2024
5114f10
Switch build of yaml-cpp by default to ON.
Peguen Jun 5, 2024
9b64a5f
Included decoding template definitions for yaml reader.
Peguen Jun 5, 2024
b0334ab
Impl Config to Yaml, yaml reading test, refactored files.
Peguen Jun 7, 2024
dfd2c58
Changed option in GH workflows for BUILD_YAML to ON.
Peguen Jun 7, 2024
65e5129
Changed order of node creation for same save order as in yml.
Peguen Jun 13, 2024
0bb5699
Merge remote-tracking branch 'origin/master' into feature/ini_to_yaml
Peguen Jun 17, 2024
dcd0ad8
Custom data type quality of life changes (operator overloads).
Peguen Jun 18, 2024
2aad078
Added MergeYamlNodes and basic test.
Peguen Jun 26, 2024
2d862e3
Added MergeYamlIntoConfiguration functionality + test.
Peguen Jun 26, 2024
1836f73
Added evalution for existence of dict keys in yaml decode.
Peguen Jul 9, 2024
dbb4e50
Added optional configuration objects - WIP.
Peguen Jul 10, 2024
5c689e5
Removed unused methods from ecal_config.h
Peguen Jul 11, 2024
fedf836
Removed unused member from transport_layer configuration.
Peguen Jul 12, 2024
609dcf2
Moved num_executor_reader/writer to publisher/subscriber config.
Peguen Jul 12, 2024
49e271c
Added new num_execs to API and uses subscriber options for previous i…
Peguen Jul 12, 2024
932f62d
Merge remote-tracking branch 'origin/master' into feature/ini_to_yaml
Peguen Jul 12, 2024
6f0daff
Revert "Added optional configuration objects - WIP."
Peguen Jul 12, 2024
9902f4b
Adaptions to yaml from config change through merge.
Peguen Jul 12, 2024
3f39b5e
Refactoring configuration yaml to network references.
Peguen Jul 15, 2024
e35d76c
Renamed udp/tcp configuration.
Peguen Jul 15, 2024
18cf874
Added comments to yaml.
Peguen Jul 15, 2024
448f15b
Light changes to ecal.yml.
Peguen Jul 15, 2024
fcc6c8a
Merge remote-tracking branch 'origin/master' into feature/config_cleanup
Peguen Jul 15, 2024
17ecb82
Merge remote-tracking branch 'origin/master' into feature/ini_to_yaml
Peguen Jul 15, 2024
71c9248
Merge branch 'feature/config_cleanup' into feature/ini_to_yaml
Peguen Jul 15, 2024
37f7981
Comments to yaml.
Peguen Jul 15, 2024
fd4a6c2
Refactoring configuration in yaml and code. WIP.
Peguen Jul 17, 2024
0f69f26
Refactoring configuration in yaml and code. WIP - testing.
Peguen Jul 17, 2024
098f40b
Refactoring configuration in yaml and code. Tests succesful.
Peguen Jul 22, 2024
44c97ea
Removed old ecal_config reader implementation.
Peguen Jul 22, 2024
bc5fffa
Removed check in registration settings.
Peguen Jul 22, 2024
81efcfe
Rearrange ecal_config_initializer.cpp a bit.
Peguen Jul 22, 2024
186f758
Removed ecal.ini.
Peguen Jul 22, 2024
5de1310
Merge remote-tracking branch 'origin/master' into feature/ini_to_yaml
Peguen Jul 22, 2024
ae616da
Added changes based on merge.
Peguen Jul 22, 2024
61458ed
Removed empty ecal_config_reader.cpp file.
Peguen Jul 22, 2024
e743c90
Changed GH workflow to use the yaml file instead of ini.
Peguen Jul 23, 2024
b18d24b
Change all occurrences from ecal.ini to ecal.yaml.
Peguen Jul 23, 2024
8e14655
Added missing linux includes in ecal_config_initializer.cpp
Peguen Jul 23, 2024
0ab4e42
Changed --ecal-ini-file to --ecal-config-file parameter.
Peguen Jul 23, 2024
8433ea5
Inserted 'layer' in publisher config for alignment with other structu…
Peguen Jul 23, 2024
fd75466
Introduced some constness to Configuration object.
Peguen Jul 23, 2024
c6433a1
Splitted header and source for configuration_to_yaml and configuratio…
Peguen Jul 23, 2024
f4896f7
UDP Configuration: Adding Receive/Sendbuffer inecal_udp_configurations.
Peguen Jul 23, 2024
b35caf0
Removed simpleini as core dependency.
Peguen Jul 24, 2024
9746e5d
Turned yaml-cpp on in missing gh workflows.
Peguen Jul 24, 2024
c379241
Code improvements through clang tidy comments.
Peguen Jul 25, 2024
e5b0cc4
Make clang tidy a bit more happy.
Peguen Jul 25, 2024
aeaf2ee
Merge remote-tracking branch 'origin/master' into feature/ini_to_yaml
Peguen Jul 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ body:
Platform : x64
------------------------- CONFIGURATION --------------------------
Default INI : C:\ProgramData\eCAL\ecal.ini
Default YAML : C:\ProgramData\eCAL\ecal.yaml
------------------------- NETWORK --------------------------------
Host name : FRLBJRXW
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ jobs:
-DPython_FIND_STRATEGY=LOCATION \
-DPython_FIND_REGISTRY=NEVER
sudo mkdir /etc/ecal
sudo cp "$GITHUB_WORKSPACE/ecal/core/cfg/ecal.ini" /etc/ecal
sudo cp "$GITHUB_WORKSPACE/ecal/core/cfg/ecal.yaml" /etc/ecal
shell: bash

- name: Build Release
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ jobs:
-DECAL_THIRDPARTY_BUILD_RECYCLE=ON \
-DECAL_THIRDPARTY_BUILD_TCP_PUBSUB=ON \
-DECAL_THIRDPARTY_BUILD_QWT=ON \
-DECAL_THIRDPARTY_BUILD_YAML-CPP=OFF \
-DECAL_THIRDPARTY_BUILD_YAML-CPP=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_SYSCONFDIR=/etc \
-DCMAKE_INSTALL_PREFIX=/usr \
Expand All @@ -144,7 +144,7 @@ jobs:
-DPython_FIND_VIRTUALENV=ONLY

sudo mkdir /etc/ecal
sudo cp "$GITHUB_WORKSPACE/ecal/core/cfg/ecal.ini" /etc/ecal
sudo cp "$GITHUB_WORKSPACE/ecal/core/cfg/ecal.yaml" /etc/ecal
shell: bash

- name: Build Release
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ jobs:
-DECAL_THIRDPARTY_BUILD_RECYCLE=ON ^
-DECAL_THIRDPARTY_BUILD_TCP_PUBSUB=ON ^
-DECAL_THIRDPARTY_BUILD_QWT=OFF ^
-DECAL_THIRDPARTY_BUILD_YAML-CPP=OFF ^
-DECAL_THIRDPARTY_BUILD_YAML-CPP=ON ^
-DECAL_THIRDPARTY_BUILD_UDPCAP=ON ^
-DBUILD_SHARED_LIBS=OFF ^
-DCMAKE_PREFIX_PATH="%ProgramFiles%/Cap'n Proto/lib/cmake/CapnProto" ^
Expand Down Expand Up @@ -138,7 +138,7 @@ jobs:
-DCMAKE_BUILD_TYPE=Release ^
-DCPACK_PACK_WITH_INNOSETUP=ON
mkdir "%ALLUSERSPROFILE%\eCAL"
copy "%GITHUB_WORKSPACE%\ecal\core\cfg\ecal.ini" "%ALLUSERSPROFILE%\eCAL"
copy "%GITHUB_WORKSPACE%\ecal\core\cfg\ecal.yaml" "%ALLUSERSPROFILE%\eCAL"
shell: cmd

- name: Build SDK
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/clang-tidy-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ jobs:
-DECAL_THIRDPARTY_BUILD_RECYCLE=ON \
-DECAL_THIRDPARTY_BUILD_TCP_PUBSUB=ON \
-DECAL_THIRDPARTY_BUILD_QWT=OFF \
-DECAL_THIRDPARTY_BUILD_YAML-CPP=OFF \
-DECAL_THIRDPARTY_BUILD_YAML-CPP=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_SYSCONFDIR=/etc \
-DCMAKE_INSTALL_PREFIX=/usr \
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ jobs:
-DECAL_THIRDPARTY_BUILD_RECYCLE=ON \
-DECAL_THIRDPARTY_BUILD_TCP_PUBSUB=ON \
-DECAL_THIRDPARTY_BUILD_QWT=OFF \
-DECAL_THIRDPARTY_BUILD_YAML-CPP=OFF \
-DECAL_THIRDPARTY_BUILD_YAML-CPP=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_SYSCONFDIR=/etc \
-DCMAKE_INSTALL_PREFIX=/usr \
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ option(ECAL_USE_CLOCKLOCK_MUTEX "Use native mutex with monotonic
set(ECAL_CORE_HAS_PROTOBUF ON)
set(ECAL_CORE_BUILD_SAMPLES ${BUILD_SAMPLES})
set(ECAL_CORE_BUILD_TESTS ${BUILD_ECAL_TESTS})
set(ECAL_CORE_CONFIG_INIFILE ON)
set(ECAL_CORE_CONFIGURATION ON)
set(ECAL_CORE_COMMAND_LINE ON)
set(ECAL_CORE_REGISTRATION ON)
set(ECAL_CORE_MONITORING ON)
Expand Down
4 changes: 2 additions & 2 deletions CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
"ECAL_THIRDPARTY_BUILD_SPDLOG": "OFF",
"ECAL_THIRDPARTY_BUILD_TERMCOLOR": "OFF",
"ECAL_THIRDPARTY_BUILD_TINYXML2": "OFF",
"ECAL_THIRDPARTY_BUILD_YAML-CPP": "OFF",
"ECAL_THIRDPARTY_BUILD_YAML-CPP": "ON",
"ECAL_THIRDPARTY_BUILD_CURL": "OFF",
"ECAL_THIRDPARTY_BUILD_HDF5": "OFF"
}
Expand Down Expand Up @@ -98,7 +98,7 @@
"ECAL_THIRDPARTY_BUILD_SPDLOG": "ON",
"ECAL_THIRDPARTY_BUILD_TERMCOLOR": "ON",
"ECAL_THIRDPARTY_BUILD_TINYXML2": "ON",
"ECAL_THIRDPARTY_BUILD_YAML-CPP": null,
"ECAL_THIRDPARTY_BUILD_YAML-CPP": "ON",
"ECAL_THIRDPARTY_BUILD_CURL": null,
"ECAL_THIRDPARTY_BUILD_HDF5": null
}
Expand Down
6 changes: 3 additions & 3 deletions app/mon/mon_gui/src/ecalmon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -102,21 +102,21 @@ Ecalmon::Ecalmon(QWidget *parent)

if (multicast_ttl <= 0)
{
network_mode_widget_->setToolTip("ERROR: Network enabled but TTL is " + QString::number(multicast_ttl) + ". Change via ecal.ini");
network_mode_widget_->setToolTip("ERROR: Network enabled but TTL is " + QString::number(multicast_ttl) + ". Change via ecal.yaml");
network_mode_widget_->setStyleSheet("background-color: rgb(255, 128, 128); color: black");
network_mode_warning_icon_->setVisible(true);
}
else
{
network_mode_widget_->setStyleSheet("background-color: rgb(80, 255, 120); color: black");
network_mode_widget_->setToolTip("Change via ecal.ini");
network_mode_widget_->setToolTip("Change via ecal.yaml");
}
}
else
{
network_mode_label_->setText("Network mode: Local");
network_mode_widget_->setStyleSheet("background-color: rgb(44, 148, 255); color: black");
network_mode_widget_->setToolTip("Change via ecal.ini");
network_mode_widget_->setToolTip("Change via ecal.yaml");
}

error_label_ = new QLabel(this);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,11 +192,11 @@ void TopicWidget::loadRegExpLists()
include_string = QString::fromStdString(eCAL::Config::GetMonitoringFilterIncludeList()); //ini.GetValue(MON_SECTION_S, MON_FILTER_INCL_S);


// The ecal.ini defines a very strange regex format: A filter consists of
// The ecal.yaml defines a very strange regex format: A filter consists of
// several regular expressions divided by "," or ";". Thus we have to
// split the string into 'actual' regular expressions. This will break every
// regular expression that properly uses a ",". We cannot do anything about
// that without changing the ecal.ini specification.
// that without changing the ecal.yaml specification.
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
QList<QString> const exclude_string_list = exclude_string.split(QRegularExpression("[\\,,;]"), Qt::SplitBehaviorFlags::SkipEmptyParts);
QList<QString> const include_string_list = include_string.split(QRegularExpression("[\\,,;]"), Qt::SplitBehaviorFlags::SkipEmptyParts);
Expand Down
14 changes: 7 additions & 7 deletions app/rec/rec_client_core/src/job/record_job.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ namespace eCAL
}
}

// Copy ecal.ini
// Copy ecal.yaml
#ifdef CopyFile
#define CopyFile_6376c040f4f54106b205ef6ddbb2090a CopyFile
#undef CopyFile
Expand All @@ -174,28 +174,28 @@ namespace eCAL

if (ecal_ini_original_path.empty())
{
const std::string error_message = "Error copying ecal.ini: The system information does not contain \"Default INI\" identifier.";
const std::string error_message = "Error copying ecal.yaml: The system information does not contain \"Default INI\" identifier.";
info_ = { false, error_message };
EcalRecLogger::Instance()->error(error_message);
}

if (EcalUtils::Filesystem::IsFile(ecal_ini_original_path))
{
std::string ecal_ini_dest_path = EcalUtils::Filesystem::ToNativeSeperators(hostname_dir + "/ecal.ini");
EcalRecLogger::Instance()->info("Copying ecal.ini from \"" + ecal_ini_original_path + "\" to \"" + ecal_ini_dest_path + "\"");
std::string ecal_ini_dest_path = EcalUtils::Filesystem::ToNativeSeperators(hostname_dir + "/ecal.yaml");
Peguen marked this conversation as resolved.
Show resolved Hide resolved
EcalRecLogger::Instance()->info("Copying ecal.yaml from \"" + ecal_ini_original_path + "\" to \"" + ecal_ini_dest_path + "\"");

if (!EcalUtils::Filesystem::CopyFile(ecal_ini_original_path, ecal_ini_dest_path, EcalUtils::Filesystem::OsStyle::Current))
{
const std::string error_message = "Error copying ecal.ini file to \"" + ecal_ini_dest_path + "\"";
const std::string error_message = "Error copying ecal.yaml file to \"" + ecal_ini_dest_path + "\"";
info_ = { false, error_message };
EcalRecLogger::Instance()->error(error_message);
}
}
else
{
const std::string error_message = "Warning: ecal.ini does not exist and will not be copied.";
const std::string error_message = "Warning: ecal.yaml does not exist and will not be copied.";
info_ = { false, error_message };
EcalRecLogger::Instance()->warn("Warning: ecal.ini does not exist and will not be copied.");
EcalRecLogger::Instance()->warn("Warning: ecal.yaml does not exist and will not be copied.");
}
}
#ifdef CopyFile_6376c040f4f54106b205ef6ddbb2090a
Expand Down
2 changes: 1 addition & 1 deletion build_win/win_make_cmake.bat
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ set CMAKE_OPTIONS_SDK=-DCMAKE_INSTALL_PREFIX=_install ^
-DECAL_THIRDPARTY_BUILD_RECYCLE=ON ^
-DECAL_THIRDPARTY_BUILD_TCP_PUBSUB=ON ^
-DECAL_THIRDPARTY_BUILD_QWT=OFF ^
-DECAL_THIRDPARTY_BUILD_YAML-CPP=OFF ^
-DECAL_THIRDPARTY_BUILD_YAML-CPP=ON ^
-DECAL_THIRDPARTY_BUILD_UDPCAP=ON ^
-DBUILD_SHARED_LIBS=OFF ^
-DCMAKE_BUILD_TYPE=Debug ^
Expand Down
6 changes: 3 additions & 3 deletions cpack/innosetup/ecal_setup.iss.in
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ Source: "{#ComponentStagingDir}\runtime\*"; DestDir: "{app}"; Fla
Source: "{#ComponentStagingDir}\Unspecified\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs; Components: runtime
Source: "{#ComponentStagingDir}\libraries\bin\*"; DestDir: "{app}\bin\"; Flags: ignoreversion recursesubdirs; Components: runtime

Source: "{#ComponentStagingDir}\_configuration\cfg\ecal.ini"; DestDir: "{commonappdata}\eCAL\"; Tasks: not replaceconf; Flags: ignoreversion confirmoverwrite; Components: runtime
Source: "{#ComponentStagingDir}\_configuration\cfg\ecal.ini"; DestDir: "{commonappdata}\eCAL\"; Tasks: replaceconf; Flags: ignoreversion; Components: runtime
Source: "{#ComponentStagingDir}\_configuration\cfg\ecal.yaml"; DestDir: "{commonappdata}\eCAL\"; Tasks: not replaceconf; Flags: ignoreversion confirmoverwrite; Components: runtime
Source: "{#ComponentStagingDir}\_configuration\cfg\ecal.yaml"; DestDir: "{commonappdata}\eCAL\"; Tasks: replaceconf; Flags: ignoreversion; Components: runtime
Source: "{#ComponentStagingDir}\_configuration\cfg\ecaltime.ini"; DestDir: "{commonappdata}\eCAL\"; Flags: ignoreversion; Components: runtime

; applications
Expand Down Expand Up @@ -132,7 +132,7 @@ Name: "{group}\eCAL Monitor"; Filename: "{app}\bin\ecal_
Name: "{group}\eCAL Recorder"; Filename: "{app}\bin\ecal_rec_gui.exe"; Components: applications
Name: "{group}\eCAL Player"; Filename: "{app}\bin\ecal_play_gui.exe"; Components: applications
Name: "{group}\eCAL Sys"; Filename: "{app}\bin\ecal_sys_gui.exe"; Components: applications
Name: "{group}\Configuration\Edit ecal.ini"; Filename: "{commonappdata}\eCAL\ecal.ini"; Components: runtime
Name: "{group}\Configuration\Edit ecal.yaml"; Filename: "{commonappdata}\eCAL\ecal.yaml"; Components: runtime

Name: "{group}\{cm:UninstallProgram,{#AppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\eCAL Launcher"; Filename: "{app}\bin\ecal_launcher.exe"; Tasks: desktopicon; Components: applications
Expand Down
18 changes: 9 additions & 9 deletions doc/rst/advanced/ecal_in_docker.rst
Original file line number Diff line number Diff line change
Expand Up @@ -193,10 +193,10 @@ Seamless IPC-Communication across host borders

.. important::
This will work with eCAL 5.12 and higher.
Older versions lack the ability to utilize the ``host_group_name`` in the :file:`ecal.ini` file, thus it won't work.
Older versions lack the ability to utilize the ``host_group_name`` in the :file:`ecal.yaml` file, thus it won't work.


In eCAL, you are able to set host belonging over network borders by utilizing the :file:`ecal.ini` configuration file with the same ``host_group_name`` - in the following steps, you will learn how to set this up.
In eCAL, you are able to set host belonging over network borders by utilizing the :file:`ecal.yaml` configuration file with the same ``host_group_name`` - in the following steps, you will learn how to set this up.

.. note::
If we don't set the same ``host_group_name`` on our Host and our Containers, an IPC-Communication across host borders is not available with different host names.
Expand All @@ -207,28 +207,28 @@ In eCAL, you are able to set host belonging over network borders by utilizing th

sudo docker network create --driver=bridge --subnet=10.0.10.0/24 my_network

#. Edit your :file:`ecal.ini` and run your Container within the newly created docker network
#. Edit your :file:`ecal.yaml` and run your Container within the newly created docker network

* You will use our previously discussed :ref:`ecal-runtime-image<ecal_in_docker>` for the next step.

* First, open :file:`/etc/ecal/ecal.ini` from your preferred editor.
* First, open :file:`/etc/ecal/ecal.yaml` from your preferred editor.

* Search for the line ``network_enabled`` and set it to ``true``.

* Search for the line ``host_group_name`` and write your preferred name.

* Save and close the :file:`ecal.ini` file.
* Save and close the :file:`ecal.yaml` file.

* Now your :file:`ecal.ini` file is prepared.
We want to use it not only for our Host-System but also for our Container, so we don't need to edit the :file:`ecal.ini` in our Container again.
* Now your :file:`ecal.yaml` file is prepared.
We want to use it not only for our Host-System but also for our Container, so we don't need to edit the :file:`ecal.yaml` in our Container again.
To achieve that, run following command to start your container:

.. code-block:: bash

sudo docker run --rm -it --ipc=host --pid=host --network=my_network --name=container1 -h=container1 --ip=10.0.10.10 -v /etc/ecal/ecal.ini:/etc/ecal/ecal.ini ecal-runtime
sudo docker run --rm -it --ipc=host --pid=host --network=my_network --name=container1 -h=container1 --ip=10.0.10.10 -v /etc/ecal/ecal.yaml:/etc/ecal/ecal.yaml ecal-runtime

- You should now be inside the root shell of your Container.
Check if your :file:`ecal.ini` file is correct.
Check if your :file:`ecal.yaml` file is correct.

- Now your Container is prepared and configured correctly, so we are ready to start an eCAL example.

Expand Down
6 changes: 3 additions & 3 deletions doc/rst/advanced/layers/shm.rst
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ Configuration
The SHM Layer is set to ``auto`` (= 2) by default.
This means, that it is used automatically for all messages that need to be transmitted inside a single host.

The system-configuration-parameters in the :file:`ecal.ini` are:
The system-configuration-parameters in the :file:`ecal.yaml` are:

.. code-block:: ini

Expand All @@ -76,7 +76,7 @@ If subscribers are too slow to process incoming messages then the overall softwa
There may still be cases where it could make sense to synchronize the transfer of the payload from a publisher to a subscriber by using an additional handshake event.
This event is signaled by a subscriber back to the sending publisher to confirm the complete payload transmission.

The handshake mechanism can be activated in the :file:`ecal.ini`:
The handshake mechanism can be activated in the :file:`ecal.yaml`:

.. code-block:: ini

Expand Down Expand Up @@ -147,7 +147,7 @@ You can activate the feature in the following ways.

- **Use multi-buffering as system-default**:

Edit your :file:`ecal.ini` and set a buffer count greater than 1:
Edit your :file:`ecal.yaml` and set a buffer count greater than 1:

.. code-block:: ini

Expand Down
2 changes: 1 addition & 1 deletion doc/rst/advanced/layers/shm_zerocopy.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Enabling eCAL Zero Copy

- **Use zero-copy as system-default:**

Zero Copy can be enabled as system default from the :file:`ecal.ini` file like follows:
Zero Copy can be enabled as system default from the :file:`ecal.yaml` file like follows:

.. code-block:: ini

Expand Down
2 changes: 1 addition & 1 deletion doc/rst/advanced/layers/tcp.rst
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ You can activate TCP in the following ways:

#. **Use TCP as system default (only recommended for testing):**

Modify the :file:`ecal.ini` and change the following:
Modify the :file:`ecal.yaml` and change the following:

.. code-block:: ini

Expand Down
2 changes: 1 addition & 1 deletion doc/rst/advanced/message_drops.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Dropping on Transport Layer
- Having different link speeds in your network will almost always cause many drops for large messages, as you are e.g. sending with 10 Gbit to a 1Gbit port and so 90% of all packages are dropped.
This has to be viewed on a traffic-per-message-basis, not on a traffic-per-second basis. For instance, you may be sending only 1 message per second from a 10Gibt link. This message is maybe sent in 10ms, while the 1 Gbit link would need 100ms to receive all the data.
Consequently, the 1Gbit connection will inevitably start dropping fragments, even though the network is not even close to its capacity.
You can work around it by just connecting everything with the same link-speed, and by using the ``bandwidth_max_udp`` setting from the :ref:`ecal.ini <configuration_options>`
You can work around it by just connecting everything with the same link-speed, and by using the ``bandwidth_max_udp`` setting from the :ref:`ecal.yaml <configuration_options>`

- Larger eCAL Messages are more likely to be corrupt, as they consist of more fragments.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ RUN apt-get install -y ecal
# You can omit this, if you don't want to build applications in the container.
RUN apt-get install -y cmake g++ libprotobuf-dev protobuf-compiler

# Set network_enabled = true in ecal.ini.
# Set network_enabled = true in ecal.yaml.
# You can omit this, if you only need local communication.
RUN awk -F"=" '/^network_enabled/{$2="= true"}1' /etc/ecal/ecal.ini > /etc/ecal/ecal.tmp && \
rm /etc/ecal/ecal.ini && \
mv /etc/ecal/ecal.tmp /etc/ecal/ecal.ini
RUN awk -F"=" '/^network_enabled/{$2="= true"}1' /etc/ecal/ecal.yaml > /etc/ecal/ecal.tmp && \
rm /etc/ecal/ecal.yaml && \
mv /etc/ecal/ecal.tmp /etc/ecal/ecal.yaml

# Print the eCAL config
RUN ecal_config
Loading
Loading