This commit is contained in:
2025-07-12 13:43:53 +03:00
parent faa57b22c3
commit 1b1f0b29a8
3 changed files with 74 additions and 62 deletions

View File

@@ -53,7 +53,7 @@ public:
// mount current telemetry data: time, position and related quantities
struct mount_telemetry_data_t {
typedef typename astrom_engine_t::coord_t mnt_coord_t;
typedef typename astrom_engine_t::coord_t coord_t;
// time-related
typename astrom_engine_t::time_point_t utc; // time point of measurements, UTC
@@ -63,29 +63,29 @@ public:
// typename astrom_engine_t::time_point_t tt; // Terrestial time
// apparent target (user-input) current coordinates (in radians)
mnt_coord_t tagRA, tagDEC;
mnt_coord_t tagHA;
mnt_coord_t tagAZ, tagALT;
mnt_coord_t tagPA; // paralactic angle
coord_t tagRA, tagDEC;
coord_t tagHA;
coord_t tagAZ, tagALT;
coord_t tagPA; // paralactic angle
// encoder-measured current mount coordinates (in radians)
mnt_coord_t mntRA, mntDEC;
mnt_coord_t mntHA;
mnt_coord_t mntAZ, mntALT;
coord_t mntRA, mntDEC;
coord_t mntHA;
coord_t mntAZ, mntALT;
typename astrom_engine_t::pa_t mntPA;
// encoder-measured (non-corrected for PCS) current mount position and moving speed (in radians, radians/s)
// X - HA, Y - DEC for equatorial-type mount; X - AZ, Y - ALT for horizontal-type one
mnt_coord_t mntPosX, mntPosY;
coord_t mntPosX, mntPosY;
// current refraction coefficients
typename pec_t::pec_result_t currRefrCoeffs;
// current refraction correction (for mntALT)
mnt_coord_t currRefr;
coord_t currRefr;
// PEC (pointing error correction):
// X - HA, Y - DEC for equatorial-type mount; X - AZ, Y - ALT for horizontal-type one
mnt_coord_t pecX, pecY;
coord_t pecX, pecY;
};
MccMountTelemetry(astrom_engine_t& astrom_engine, pec_t& pec, hardware_t& hardware)
@@ -189,13 +189,11 @@ public:
return TEL_ERROR_OK;
}
mount_telemetry_data_t data(this auto&& self)
mount_telemetry_data_t data()
{
using self_t = decltype(self);
std::lock_guard lock{_updateMutex};
std::lock_guard lock{std::forward<self_t>(self)._updateMutex};
return std::move(std::forward<self_t>(self)._data);
return std::move(_data);
}