...
This commit is contained in:
@@ -27,10 +27,10 @@ struct Asibfm700MountConfig {
|
||||
std::chrono::milliseconds hardwarePollingPeriod{100}; // main cycle period
|
||||
|
||||
// CCTE-related configuration
|
||||
double siteLatitude{43.646711_degs};
|
||||
double siteLongitude{41.440732_degs};
|
||||
double siteElevation{2100.0};
|
||||
double refractWavelength{0.55};
|
||||
mcc::MccAngle siteLatitude{43.646711_degs}; // in radians
|
||||
mcc::MccAngle siteLongitude{41.440732_degs}; // in radians
|
||||
double siteElevation{2070.0}; // in meters
|
||||
double refractWavelength{0.55}; // in mkm
|
||||
|
||||
std::string leapSecondFilename{};
|
||||
std::string bulletinAFilename{};
|
||||
@@ -41,8 +41,16 @@ struct Asibfm700MountConfig {
|
||||
.siteLatitude = siteLatitude,
|
||||
.geomCoefficients = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
|
||||
|
||||
// servo controller configuration
|
||||
AsibFM700ServoController::hardware_config_t servoControllerConfig{};
|
||||
|
||||
// slew and track parameters
|
||||
mcc::MccSimpleMovingModelParams movingModelParams{};
|
||||
|
||||
// prohibited zones parameters
|
||||
mcc::MccAngle pzMinAltitude{10.0_degs}; // in radians
|
||||
mcc::MccAngle pzLimitSwitchHAMin{}; // in radians
|
||||
mcc::MccAngle pzLimitSwitchHAMax{}; // in radians
|
||||
};
|
||||
|
||||
} // namespace asibfm700
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#include "asibfm700_mount.h"
|
||||
|
||||
#include <mcc_pzone.h>
|
||||
|
||||
namespace asibfm700
|
||||
{
|
||||
|
||||
@@ -20,8 +22,30 @@ Asibfm700Mount::Asibfm700Mount(Asibfm700MountConfig const& config,
|
||||
Asibfm700StartState{})
|
||||
{
|
||||
logDebug("Create Asibfm700Mount class instance ({})", this->getThreadId());
|
||||
|
||||
logInfo("Init AstroSib FM-700 mount with configuration:");
|
||||
logInfo(" site latitude: {}", config.siteLatitude.sexagesimal());
|
||||
logInfo(" site longitude: {}", config.siteLongitude.sexagesimal());
|
||||
logInfo(" site elevation: {} meters", config.siteElevation);
|
||||
logInfo(" refraction wavelength: {} mkm", config.refractWavelength);
|
||||
logInfo(" leap seconds filename: {}", config.leapSecondFilename);
|
||||
logInfo(" IERS Bulletin A filename: {}", config.bulletinAFilename);
|
||||
|
||||
logInfo("Add prohibited zones ...");
|
||||
|
||||
logInfo("Add MccAltLimitPZ zone: min alt = {}, lat = {}", config.pzMinAltitude.degrees(),
|
||||
config.siteLatitude.degrees());
|
||||
addPZone(mcc::MccAltLimitPZ<mcc::MccAltLimitKind::MIN_ALT_LIMIT>{config.pzMinAltitude, config.siteLatitude, this});
|
||||
|
||||
logInfo("Add MccAxisLimitSwitchPZ zone: min value = {}, max value = {}", config.pzLimitSwitchHAMin,
|
||||
config.pzLimitSwitchHAMax);
|
||||
size_t pz_num = addPZone(mcc::MccAxisLimitSwitchPZ<mcc::MccCoordKind::COORDS_KIND_HA>{
|
||||
config.pzLimitSwitchHAMin, config.pzLimitSwitchHAMax, this});
|
||||
|
||||
logInfo("{} prohibited zones were added", pz_num);
|
||||
}
|
||||
|
||||
|
||||
Asibfm700Mount::~Asibfm700Mount()
|
||||
{
|
||||
logDebug("Delete Asibfm700Mount class instance ({})", this->getThreadId());
|
||||
|
||||
@@ -93,6 +93,8 @@ public:
|
||||
using Asibfm700Logger::logInfo;
|
||||
using Asibfm700Logger::logWarn;
|
||||
|
||||
// using Asibfm700PZoneContainer::addPZone;
|
||||
|
||||
Asibfm700Mount(Asibfm700MountConfig const& config,
|
||||
std::shared_ptr<spdlog::logger> logger,
|
||||
const auto& pattern_range = mcc::utils::MccSpdlogLogger::LOGGER_DEFAULT_FORMAT);
|
||||
@@ -104,6 +106,5 @@ static_assert(mcc::mcc_position_controls_c<Asibfm700Mount>, "");
|
||||
static_assert(mcc::mcc_all_controls_c<Asibfm700Mount>, "");
|
||||
|
||||
static_assert(mcc::mcc_generic_mount_c<Asibfm700Mount>, "");
|
||||
// static_assert(mcc::mcc_generic_fsm_log_mount_c<Asibfm700Mount>, "");
|
||||
|
||||
} // namespace asibfm700
|
||||
|
||||
Reference in New Issue
Block a user