57 lines
1.8 KiB
C++
57 lines
1.8 KiB
C++
#pragma once
|
|
|
|
/* AstroSib FORK MOUNT FM-700 CONTROL LIBRARY */
|
|
|
|
|
|
/* COMMON LIBRARY DEFINITIONS */
|
|
|
|
|
|
#include <mcc_moving_model_common.h>
|
|
#include <mcc_pcm.h>
|
|
#include <mcc_pzone_container.h>
|
|
#include <mcc_spdlog.h>
|
|
|
|
#include "asibfm700_servocontroller.h"
|
|
|
|
namespace asibfm700
|
|
{
|
|
|
|
static constexpr mcc::MccMountType asibfm700MountType = mcc::MccMountType::FORK_TYPE;
|
|
|
|
|
|
typedef mcc::MccDefaultPCM<asibfm700MountType> Asibfm700PCM;
|
|
typedef mcc::MccPZoneContainer<mcc::MccTimeDuration> 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
|