diff options
| author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2025-12-30 15:11:51 +0100 |
|---|---|---|
| committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2025-12-30 15:11:51 +0100 |
| commit | cbc4458f5a3b858000f3cc44f1a12d9ab78b3f68 (patch) | |
| tree | 044681d424a34a50ab1e51b4c30584cf2006201c /src/DabMultiplexer.cpp | |
| parent | 39ece2aaf3305f78a8c5f8c7aa56ef82541e3931 (diff) | |
| download | dabmux-cbc4458f5a3b858000f3cc44f1a12d9ab78b3f68.tar.gz dabmux-cbc4458f5a3b858000f3cc44f1a12d9ab78b3f68.tar.bz2 dabmux-cbc4458f5a3b858000f3cc44f1a12d9ab78b3f68.zip | |
Add fic_repetition_correction option
Diffstat (limited to 'src/DabMultiplexer.cpp')
| -rw-r--r-- | src/DabMultiplexer.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/DabMultiplexer.cpp b/src/DabMultiplexer.cpp index d2dafa9..a3fe8db 100644 --- a/src/DabMultiplexer.cpp +++ b/src/DabMultiplexer.cpp @@ -151,7 +151,7 @@ DabMultiplexer::DabMultiplexer(DabMultiplexerConfig& config, ClockTAI& clock_tai RC_ADD_PARAMETER(frames, "Show number of frames generated [read-only]"); RC_ADD_PARAMETER(tist_offset, "Configured tist-offset"); RC_ADD_PARAMETER(reload_linking, "Write 1 to this parameter to trigger a reload of the linkage sets, frequency info and other-services from the config [write-only]"); - + RC_ADD_PARAMETER(fic_repetition_correction, "In highly loaded ensembles, nominal repetition rates cannot be respected. Increase this correction factor to allow longer deadlines."); } void DabMultiplexer::set_edi_config(const edi::configuration_t& new_edi_conf) @@ -265,6 +265,8 @@ void DabMultiplexer::prepare(bool require_tai_clock) ensemble->reconfig_counter = crc_tmp % 1024; etiLog.level(info) << "Calculated FIG 0/7 Count = " << ensemble->reconfig_counter; } + + fig_carousel.set_rate_correction(m_config.pt.get<double>("general.fic_repetition_correction", 1.0)); } @@ -920,6 +922,16 @@ void DabMultiplexer::set_parameter(const std::string& parameter, else if (parameter == "reload_linking") { reload_linking(); } + else if (parameter == "fic_repetition_correction") { + try { + fig_carousel.set_rate_correction(std::stod(value)); + } + catch (const runtime_error& e) { + stringstream ss; + ss << "Error: " << e.what(); + throw ParameterError(ss.str()); + } + } else { stringstream ss; ss << "Parameter '" << parameter << @@ -943,6 +955,9 @@ const std::string DabMultiplexer::get_parameter(const std::string& parameter) co "' is not write-only in controllable " << get_rc_name(); throw ParameterError(ss.str()); } + else if (parameter == "fic_repetition_correction") { + ss << fig_carousel.get_rate_correction(); + } else { ss << "Parameter '" << parameter << "' is not exported by controllable " << get_rc_name(); |
