mountcontrol/asibfm700/asibfm700_common.h
2025-09-11 18:23:39 +03:00

49 lines
1.5 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
double siteLatitude{43.646711_degs};
double siteLongitude{41.440732_degs};
double siteElevation{2100.0};
double refractWavelength{0.55};
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}};
AsibFM700ServoController::hardware_config_t servoControllerConfig{};
mcc::MccSimpleMovingModelParams movingModelParams{};
};
} // namespace asibfm700