103 lines
4.1 KiB
C++
103 lines
4.1 KiB
C++
#pragma once
|
|
|
|
|
|
#include <mcc_ccte_erfa.h>
|
|
#include <mcc_generic_mount.h>
|
|
#include <mcc_pcm.h>
|
|
#include <mcc_pzone_container.h>
|
|
#include <mcc_slewing_model.h>
|
|
#include <mcc_spdlog.h>
|
|
#include <mcc_telemetry.h>
|
|
#include <mcc_tracking_model.h>
|
|
|
|
#include "asibfm700_common.h"
|
|
|
|
|
|
|
|
namespace asibfm700
|
|
{
|
|
|
|
class Asibfm700Mount : public mcc::ccte::erfa::MccCCTE_ERFA,
|
|
public mcc::MccDefaultPCM<asibfm700MountType>,
|
|
public mcc::MccGenericMountFSM<AsibFM700ServoController,
|
|
mcc::MccTelemetry,
|
|
Asibfm700PZoneContainer,
|
|
mcc::MccSimpleSlewingModel,
|
|
mcc::MccSimpleTrackingModel,
|
|
Asibfm700Logger>
|
|
{
|
|
typedef mcc::MccGenericMountFSM<AsibFM700ServoController,
|
|
mcc::MccTelemetry,
|
|
Asibfm700PZoneContainer,
|
|
mcc::MccSimpleSlewingModel,
|
|
mcc::MccSimpleTrackingModel,
|
|
Asibfm700Logger>
|
|
base_gm_class_t;
|
|
|
|
public:
|
|
using base_gm_class_t::error_t;
|
|
|
|
using mcc::ccte::erfa::MccCCTE_ERFA::setStateERFA;
|
|
using mcc::ccte::erfa::MccCCTE_ERFA::updateBulletinA;
|
|
using mcc::ccte::erfa::MccCCTE_ERFA::updateLeapSeconds;
|
|
using mcc::ccte::erfa::MccCCTE_ERFA::updateMeteoERFA;
|
|
|
|
using Asibfm700Logger::logCritical;
|
|
using Asibfm700Logger::logDebug;
|
|
using Asibfm700Logger::logError;
|
|
using Asibfm700Logger::logInfo;
|
|
using Asibfm700Logger::logWarn;
|
|
|
|
Asibfm700Mount(Asibfm700MountConfig const& config,
|
|
std::shared_ptr<spdlog::logger> logger,
|
|
const auto& pattern_range = mcc::utils::MccSpdlogLogger::LOGGER_DEFAULT_FORMAT);
|
|
|
|
~Asibfm700Mount();
|
|
};
|
|
|
|
class Asibfm700Mount1 : protected mcc::ccte::erfa::MccCCTE_ERFA,
|
|
protected mcc::MccDefaultPCM<asibfm700MountType>,
|
|
public mcc::MccGenericFsmMount<mcc::MccGenericMount<AsibFM700ServoController,
|
|
mcc::MccTelemetry,
|
|
Asibfm700PZoneContainer,
|
|
mcc::MccSimpleSlewingModel,
|
|
mcc::MccSimpleTrackingModel,
|
|
Asibfm700Logger>>
|
|
{
|
|
typedef mcc::MccGenericFsmMount<mcc::MccGenericMount<AsibFM700ServoController,
|
|
mcc::MccTelemetry,
|
|
Asibfm700PZoneContainer,
|
|
mcc::MccSimpleSlewingModel,
|
|
mcc::MccSimpleTrackingModel,
|
|
Asibfm700Logger>>
|
|
base_gm_class_t;
|
|
|
|
public:
|
|
using base_gm_class_t::error_t;
|
|
|
|
using mcc::ccte::erfa::MccCCTE_ERFA::setStateERFA;
|
|
using mcc::ccte::erfa::MccCCTE_ERFA::updateBulletinA;
|
|
using mcc::ccte::erfa::MccCCTE_ERFA::updateLeapSeconds;
|
|
using mcc::ccte::erfa::MccCCTE_ERFA::updateMeteoERFA;
|
|
|
|
using Asibfm700Logger::logCritical;
|
|
using Asibfm700Logger::logDebug;
|
|
using Asibfm700Logger::logError;
|
|
using Asibfm700Logger::logInfo;
|
|
using Asibfm700Logger::logWarn;
|
|
|
|
Asibfm700Mount1(Asibfm700MountConfig const& config,
|
|
std::shared_ptr<spdlog::logger> logger,
|
|
const auto& pattern_range = mcc::utils::MccSpdlogLogger::LOGGER_DEFAULT_FORMAT);
|
|
|
|
~Asibfm700Mount1();
|
|
};
|
|
|
|
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
|