...
This commit is contained in:
@@ -35,7 +35,10 @@ struct MccJulianDay {
|
||||
|
||||
MccJulianDay(double jd) : mjd(jd - MJD0) {}
|
||||
|
||||
constexpr operator double() const { return MccJulianDay::MJD0 + mjd; }
|
||||
constexpr operator double() const
|
||||
{
|
||||
return MccJulianDay::MJD0 + mjd;
|
||||
}
|
||||
|
||||
MccJulianDay& operator=(double jd)
|
||||
{
|
||||
@@ -44,11 +47,17 @@ struct MccJulianDay {
|
||||
return *this;
|
||||
}
|
||||
|
||||
double MJD() const { return mjd; }
|
||||
double MJD() const
|
||||
{
|
||||
return mjd;
|
||||
}
|
||||
|
||||
constexpr auto operator<=>(const MccJulianDay&) const = default;
|
||||
|
||||
constexpr auto operator<=>(double v) const { return v <=> (MccJulianDay::MJD0 + mjd); };
|
||||
constexpr auto operator<=>(double v) const
|
||||
{
|
||||
return v <=> (MccJulianDay::MJD0 + mjd);
|
||||
};
|
||||
|
||||
protected:
|
||||
double mjd{51544.5}; // J2000.0
|
||||
@@ -220,7 +229,10 @@ public:
|
||||
return _MJD;
|
||||
}
|
||||
|
||||
double MJD() const { return _MJD; }
|
||||
double MJD() const
|
||||
{
|
||||
return _MJD;
|
||||
}
|
||||
|
||||
template <typename DT>
|
||||
std::chrono::sys_time<DT> UTC() const
|
||||
@@ -228,7 +240,10 @@ public:
|
||||
return std::chrono::time_point_cast<DT>(_UTC);
|
||||
}
|
||||
|
||||
std::chrono::system_clock::time_point UTC() const { return _UTC; }
|
||||
std::chrono::system_clock::time_point UTC() const
|
||||
{
|
||||
return _UTC;
|
||||
}
|
||||
|
||||
|
||||
template <traits::mcc_output_char_range R>
|
||||
@@ -253,11 +268,20 @@ public:
|
||||
return r;
|
||||
}
|
||||
|
||||
std::string JEpoch(uint8_t prec = 0) const { return JEpoch<std::string>(prec); }
|
||||
std::string JEpoch(uint8_t prec = 0) const
|
||||
{
|
||||
return JEpoch<std::string>(prec);
|
||||
}
|
||||
|
||||
auto operator<=>(const MccCelestialCoordEpoch& rhs) const { return _UTC <=> rhs._UTC; }
|
||||
auto operator<=>(const MccCelestialCoordEpoch& rhs) const
|
||||
{
|
||||
return _UTC <=> rhs._UTC;
|
||||
}
|
||||
|
||||
auto operator==(const MccCelestialCoordEpoch& rhs) const { return _UTC == rhs._UTC; }
|
||||
auto operator==(const MccCelestialCoordEpoch& rhs) const
|
||||
{
|
||||
return _UTC == rhs._UTC;
|
||||
}
|
||||
|
||||
protected:
|
||||
std::chrono::system_clock::time_point _UTC;
|
||||
@@ -611,9 +635,15 @@ public:
|
||||
|
||||
virtual ~MccCoordinateSerializer() = default;
|
||||
|
||||
void setFormat(SerializedCoordFormat fmt) { _currentFormat = fmt; }
|
||||
void setFormat(SerializedCoordFormat fmt)
|
||||
{
|
||||
_currentFormat = fmt;
|
||||
}
|
||||
|
||||
void setPrecision(SexagesimalCoordPrec prec) { _currentPrec = std::move(prec); }
|
||||
void setPrecision(SexagesimalCoordPrec prec)
|
||||
{
|
||||
_currentPrec = std::move(prec);
|
||||
}
|
||||
|
||||
template <traits::mcc_input_char_range R>
|
||||
void setDelimiter(R&& delim)
|
||||
@@ -675,7 +705,7 @@ protected:
|
||||
std::format_to(std::back_inserter(bytes), "{}", MccAngle(angle).sexagesimal(false, _currentPrec.deg_prec));
|
||||
if constexpr (sizeof...(Ts)) {
|
||||
std::format_to(std::back_inserter(bytes), "{}", _delimiter);
|
||||
toSexagesimalHour(bytes, angles...);
|
||||
toSexagesimalDeg(bytes, angles...);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -1004,7 +1034,7 @@ public:
|
||||
static MccEqtHrzCoordsSerializer eqhrz_ser;
|
||||
static MccPointingTargetSerializer pt_ser;
|
||||
|
||||
// output format: <mount data>, speedX, speedY, pcmX, pcmY, refCorr, <target data>
|
||||
// output format: <mount data>, speedX, speedY, pcmX, pcmY, refCorr (in arcsecs), <target data>
|
||||
|
||||
eqhrz_ser.setFormat(_currentFormat);
|
||||
eqhrz_ser.setPrecision(_currentPrec);
|
||||
@@ -1013,7 +1043,8 @@ public:
|
||||
// MccEqtHrzCoordsSerializer{}(value, bytes);
|
||||
std::format_to(std::back_inserter(bytes), "{}", _delimiter);
|
||||
|
||||
toDegrees(bytes, value.speedX, value.speedY, value.pcmX, value.pcmY, value.refCorr);
|
||||
// '*3600.0' to express refraction correction in arcseconds!
|
||||
toDegrees(bytes, value.speedX, value.speedY, value.pcmX, value.pcmY, value.refCorr * 3600.0);
|
||||
std::format_to(std::back_inserter(bytes), "{}", _delimiter);
|
||||
|
||||
pt_ser.setFormat(_currentFormat);
|
||||
|
||||
Reference in New Issue
Block a user