mountcontrol/cxx/asibfm700_mount.h

49 lines
1.8 KiB
C++

#pragma once
/* AstroSIB-FM700 FORK MOUNT CONTROL LIBRARY */
#include "asibfm700_common.h"
#include "asibfm700_config.h"
#include "mcc_generic_mount.h"
#include "mcc_spdlog.h"
namespace asibfm700
{
class AsibFM700Mount : public mcc::utils::MccSpdlogLogger,
public mcc::MccGenericMount<AsibFM700AstromEngine,
AsibFM700Hardware,
AsibFM700PointingErrorCorrection,
AsibFM700Telemetry,
AsibFM700SlewModel<mcc::utils::MccSpdlogLogger>,
AsibFM700GuidingModel<mcc::utils::MccSpdlogLogger>>
{
using base_gm_t = mcc::MccGenericMount<AsibFM700AstromEngine,
AsibFM700Hardware,
AsibFM700PointingErrorCorrection,
AsibFM700Telemetry,
AsibFM700SlewModel<mcc::utils::MccSpdlogLogger>,
AsibFM700GuidingModel<mcc::utils::MccSpdlogLogger>>;
public:
typedef AsibFM700SlewModel<mcc::utils::MccSpdlogLogger> slew_model_t;
typedef AsibFM700GuidingModel<mcc::utils::MccSpdlogLogger> guiding_model_t;
template <mcc::traits::mcc_range_of_input_char_range R = decltype(LOGGER_DEFAULT_FORMAT)>
AsibFM700Mount(AsibFM700Config config,
std::shared_ptr<spdlog::logger> logger,
const R& pattern_range = LOGGER_DEFAULT_FORMAT);
~AsibFM700Mount();
private:
AsibFM700Config _currentConfig;
};
} // namespace asibfm700