#pragma once /* AstroSib FORK MOUNT FM-700 CONTROL LIBRARY */ /* COMMON LIBRARY DEFINITIONS */ #include #include #include #include #include "asibfm700_servocontroller.h" namespace asibfm700 { static constexpr mcc::MccMountType asibfm700MountType = mcc::MccMountType::FORK_TYPE; typedef mcc::MccDefaultPCM Asibfm700PCM; typedef mcc::MccPZoneContainer Asibfm700PZoneContainer; typedef mcc::utils::MccSpdlogLogger Asibfm700Logger; struct Asibfm700MountConfig { std::chrono::milliseconds hardwarePollingPeriod{100}; // main cycle period // CCTE-related configuration 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{}; // PCM-related configuration Asibfm700PCM::pcm_data_t pcmData{.type = mcc::MccDefaultPCMType::PCM_TYPE_GEOMETRY, .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