... compiled!

This commit is contained in:
Timur A. Fatkhullin
2025-10-30 01:01:52 +03:00
parent 620f8ba136
commit 85259fc6ad
14 changed files with 261 additions and 216 deletions

View File

@@ -58,11 +58,11 @@ ExternalProject_Add(erfalib
INSTALL_COMMAND meson install -C <BINARY_DIR>
BUILD_BYPRODUCTS ${CMAKE_BINARY_DIR}/erfa_lib/liberfa.a
)
add_library(ERFA_LIB STATIC IMPORTED)
add_library(ERFA_LIB STATIC IMPORTED GLOBAL)
set_target_properties(ERFA_LIB PROPERTIES IMPORTED_LOCATION ${CMAKE_BINARY_DIR}/erfa_lib/liberfa.a)
add_dependencies(ERFA_LIB erfalib)
set(ERFA_INCLUDE_DIR ${CMAKE_BINARY_DIR}/erfa_lib)
set(ERFA_LIBFILE ${CMAKE_BINARY_DIR}/erfa_lib/erfa)
# set(ERFA_LIBFILE ${CMAKE_BINARY_DIR}/erfa_lib/liberfa.a PARENT_SCOPE)
# include_directories(${ERFA_INCLUDE_DIR})
message(STATUS ${ERFA_INCLUDE_DIR})

View File

@@ -168,7 +168,7 @@ public:
SlewModelT(std::move(slew_model)),
TrackModelT(std::move(track_model)),
LoggerT(std::move(logger)),
_mountStatus(new std::atomic<mount_status_t>)
_mountStatus(new std::atomic<mount_status_t>{})
{
*_mountStatus = mount_status_t::IDLE;
}
@@ -242,7 +242,7 @@ public:
logInfo(std::format("Set entered target coordinates to: {} {} {}", xstr,
MccAngle(_enteredTargetCoordiniates.Y).sexagesimal(),
MccCoordPairKindStr<_enteredTargetCoordiniates.pair_kind>));
MccCoordPairKindToStr(_enteredTargetCoordiniates.pair_kind)));
return MccGenericMountErrorCode::ERROR_OK;
}
@@ -293,7 +293,8 @@ public:
error_t stopTracking()
{
*_mountStatus = mount_status_t::IDLE;
// *_mountStatus = mount_status_t::IDLE;
_mountStatus->store(mount_status_t::IDLE);
TrackModelT::stopTracking();
@@ -303,7 +304,7 @@ public:
MccGenericMount::mount_status_t mountStatus() const
{
return _mountStatus.get();
return *_mountStatus;
}
protected:

View File

@@ -651,13 +651,13 @@ protected:
}
std::vector<char> handleClientCommand(std::string_view command)
{
std::vector<char> resp{MCC_COMMPROTO_KEYWORD_SERVER_ACK_STR.begin(),
MCC_COMMPROTO_KEYWORD_SERVER_ACK_STR.end()};
// std::vector<char> handleClientCommand(std::string_view command)
// {
// std::vector<char> resp{MCC_COMMPROTO_KEYWORD_SERVER_ACK_STR.begin(),
// MCC_COMMPROTO_KEYWORD_SERVER_ACK_STR.end()};
return resp;
}
// return resp;
// }
template <mcc::traits::mcc_time_duration_c RCVT = decltype(DEFAULT_RCV_TIMEOUT),
@@ -917,7 +917,7 @@ public:
output_msg = handleMessage<output_msg_t>(input_msg, mount_ptr);
}
return output_msg.byteRepr();
return output_msg.template byteRepr<typename base_t::handle_message_func_result_t>();
};
}
@@ -951,9 +951,6 @@ protected:
} else if (input_msg.withKey(MCC_COMMPROTO_KEYWORD_RESTART_SERVER_STR)) {
this->restart();
output_msg.construct(MCC_COMMPROTO_KEYWORD_SERVER_ACK_STR, input_msg.byteRepr());
} else if (input_msg.withKey(MCC_COMMPROTO_KEYWORD_STATUS_STR)) {
auto st = mount_ptr->status(); // according to mcc_generic_mount_c 'st' is formattable
output_msg.construct(MCC_COMMPROTO_KEYWORD_SERVER_ACK_STR, MCC_COMMPROTO_KEYWORD_STATUS_STR, st);
} else if (input_msg.withKey(MCC_COMMPROTO_KEYWORD_INIT_STR)) {
m_err = mount_ptr->initMount();
if (m_err) {
@@ -1066,6 +1063,16 @@ protected:
_coordFormat, _coordPrec, cp);
}
}
} else if (input_msg.withKey(mcc::network::MCC_COMMPROTO_KEYWORD_STATUS_STR)) {
auto st = mount_ptr->mountStatus(); // according to mcc_generic_mount_c 'st' is formattable
using st_t = decltype(st);
if constexpr (std::is_enum_v<st_t>) {
output_msg.construct(MCC_COMMPROTO_KEYWORD_SERVER_ACK_STR, MCC_COMMPROTO_KEYWORD_STATUS_STR,
std::to_underlying(st));
} else {
output_msg.construct(MCC_COMMPROTO_KEYWORD_SERVER_ACK_STR, MCC_COMMPROTO_KEYWORD_STATUS_STR,
std::format(st));
}
} else {
err = std::make_error_code(std::errc::invalid_argument);
}
@@ -1084,7 +1091,12 @@ protected:
{
auto ec = msg.fromCharRange(msg_bytes);
return ec;
if (ec != MSG_T::ERROR_OK) {
return std::make_error_code(std::errc::invalid_argument);
}
// return ec;
return {};
}

View File

@@ -314,7 +314,7 @@ protected:
DefaultDeserializer() : base_t(MCC_COMMPROTO_RANGEPARAM_DELIM_SEQ) {}
template <traits::mcc_input_char_range IR, typename VT>
std::error_code operator()(IR&& bytes, VT& value)
std::error_code operator()(IR&& bytes, VT& value) const
{
if constexpr (mcc_telemetry_data_c<VT>) {
return _telemetryDeserializer(std::forward<IR>(bytes), value);

View File

@@ -442,7 +442,7 @@ public:
}
template <traits::mcc_input_char_range IR, typename VT>
std::error_code operator()(IR&& bytes, VT& value)
std::error_code operator()(IR&& bytes, VT& value) const
{
std::error_code ret{};