rewrite to use of the new implementation of mount config

(asibfm700_config.h: Asibfm700MountConfiguration class)
This commit is contained in:
2026-06-02 12:07:23 +03:00
parent a984f77351
commit 64db29704d
5 changed files with 78 additions and 27 deletions

View File

@@ -10,7 +10,8 @@ namespace asibfm700
/* CONSTRUCTOR AND DESTRUCTOR */
Asibfm700Mount::Asibfm700Mount(Asibfm700MountConfig const& config, std::shared_ptr<spdlog::logger> logger)
// Asibfm700Mount::Asibfm700Mount(Asibfm700MountConfig const& config, std::shared_ptr<spdlog::logger> logger)
Asibfm700Mount::Asibfm700Mount(Asibfm700MountConfiguration const& config, std::shared_ptr<spdlog::logger> logger)
: _servolController(config.servoControllerConfig()),
_pcm(config.pcmData()),
gm_class_t(std::make_tuple(&_servolController, &_pcm),
@@ -106,17 +107,36 @@ Asibfm700Mount::error_t Asibfm700Mount::initMount()
clearPZones();
logInfo("Add prohibited zones ...");
// logInfo(" Add MccAltLimitPZ zone: min alt = {}, lat = {} (pzone type: '{}')",
// _mountConfig.pzMinAltitude().degrees(), _mountConfig.siteLatitude().degrees(),
// "Minimal altitude prohibited zone");
// addPZone(mcc::impl::MccAltLimitPZ<mcc::impl::MccAltLimitKind::MIN_ALT_LIMIT>{_mountConfig.pzMinAltitude(),
// _mountConfig.siteLatitude()});
// logInfo(" Add MccAxisLimitSwitchPZ zone: min value = {}, max value = {} (pzone type: '{}')",
// _mountConfig.pzLimitSwitchHAMin().degrees(), _mountConfig.pzLimitSwitchHAMax().degrees(),
// "HA-axis limit switch");
// size_t pz_num = addPZone(mcc::impl::MccAxisLimitSwitchPZ<mcc::impl::MccCoordKind::COORDS_KIND_HA_OBS>{
// _mountConfig.pzLimitSwitchHAMin(), _mountConfig.pzLimitSwitchHAMax(), &_pcm});
size_t pz_num = addPZone(_mountConfig.minAltPZone());
logInfo(" Add MccAltLimitPZ zone: min alt = {}, lat = {} (pzone type: '{}')",
_mountConfig.pzMinAltitude().degrees(), _mountConfig.siteLatitude().degrees(),
_mountConfig.minAltPZone().altLimit().degrees(), _mountConfig.minAltPZone().latitude().sexagesimal(),
"Minimal altitude prohibited zone");
addPZone(mcc::impl::MccAltLimitPZ<mcc::impl::MccAltLimitKind::MIN_ALT_LIMIT>{_mountConfig.pzMinAltitude(),
_mountConfig.siteLatitude()});
auto haPZone = _mountConfig.axisLimitSwitchHA();
haPZone.setPCM(&_pcm);
logInfo(" Add MccAxisLimitSwitchPZ zone: min value = {}, max value = {} (pzone type: '{}')",
_mountConfig.pzLimitSwitchHAMin().degrees(), _mountConfig.pzLimitSwitchHAMax().degrees(),
"HA-axis limit switch");
size_t pz_num = addPZone(mcc::impl::MccAxisLimitSwitchPZ<mcc::impl::MccCoordKind::COORDS_KIND_HA_OBS>{
_mountConfig.pzLimitSwitchHAMin(), _mountConfig.pzLimitSwitchHAMax(), &_pcm});
haPZone.maxLimit().degrees(), haPZone.maxLimit().degrees(), "HA-axis limit switch");
pz_num = addPZone(std::move(haPZone));
auto decPZone = _mountConfig.axisLimitSwitchDEC();
decPZone.setPCM(&_pcm);
logInfo(" Add MccAxisLimitSwitchPZ zone: min value = {}, max value = {} (pzone type: '{}')",
decPZone.maxLimit().degrees(), decPZone.maxLimit().degrees(), "DEC-axis limit switch");
pz_num = addPZone(std::move(decPZone));
logInfo("{} prohibited zones were added successfully", pz_num);
@@ -149,12 +169,12 @@ Asibfm700Mount::error_t Asibfm700Mount::initMount()
logInfo(" PIDRefreshDt: {}", to_msecs(hw_cfg.devConfig.PIDRefreshDt));
logInfo(" PIDCycleDt: {}", to_msecs(hw_cfg.devConfig.PIDCycleDt));
logInfo(" XPIDC: [P: {}, I: {}, D: {}]", hw_cfg.devConfig.XPIDC.P, hw_cfg.devConfig.XPIDC.I,
hw_cfg.devConfig.XPIDC.D);
// logInfo(" XPIDC: [P: {}, I: {}, D: {}]", hw_cfg.devConfig.XPIDC.P, hw_cfg.devConfig.XPIDC.I,
// hw_cfg.devConfig.XPIDC.D);
logInfo(" XPIDV: [P: {}, I: {}, D: {}]", hw_cfg.devConfig.XPIDV.P, hw_cfg.devConfig.XPIDV.I,
hw_cfg.devConfig.XPIDV.D);
logInfo(" YPIDC: [P: {}, I: {}, D: {}]", hw_cfg.devConfig.YPIDC.P, hw_cfg.devConfig.YPIDC.I,
hw_cfg.devConfig.YPIDC.D);
// logInfo(" YPIDC: [P: {}, I: {}, D: {}]", hw_cfg.devConfig.YPIDC.P, hw_cfg.devConfig.YPIDC.I,
// hw_cfg.devConfig.YPIDC.D);
logInfo(" YPIDV: [P: {}, I: {}, D: {}]", hw_cfg.devConfig.YPIDV.P, hw_cfg.devConfig.YPIDV.I,
hw_cfg.devConfig.YPIDV.D);
logInfo(" XEncZero: {}", hw_cfg.devConfig.XEncZero);
@@ -359,7 +379,8 @@ Asibfm700Mount::error_t Asibfm700Mount::initMount()
}
Asibfm700Mount::error_t Asibfm700Mount::updateMountConfig(const Asibfm700MountConfig& cfg)
// Asibfm700Mount::error_t Asibfm700Mount::updateMountConfig(const Asibfm700MountConfig& cfg)
Asibfm700Mount::error_t Asibfm700Mount::updateMountConfig(const Asibfm700MountConfiguration& cfg)
{
std::lock_guard lock{*_mountConfigMutex};
@@ -375,7 +396,8 @@ Asibfm700Mount::error_t Asibfm700Mount::updateMountConfig(const Asibfm700MountCo
Asibfm700Mount::error_t Asibfm700Mount::updateMountConfig(const std::string& cfg_filename)
{
Asibfm700MountConfig new_config;
// Asibfm700MountConfig new_config;
Asibfm700MountConfiguration new_config;
auto err =
new_config.load(cfg_filename.empty() ? _mountConfig.configFilename() : std::filesystem::path{cfg_filename});
if (err) {