...
This commit is contained in:
@@ -26,7 +26,8 @@ enum MccTelemetryErrorCode : int {
|
||||
ERROR_PCM_COMP,
|
||||
ERROR_HARDWARE_GETPOS,
|
||||
ERROR_UPDATE_STOPPED,
|
||||
ERROR_DATA_TIMEOUT
|
||||
ERROR_DATA_TIMEOUT,
|
||||
ERROR_UNSUPPORTED_COORD_PAIR
|
||||
};
|
||||
|
||||
} // namespace mcc
|
||||
@@ -75,6 +76,8 @@ struct MccTelemetryCategory : public std::error_category {
|
||||
return "telemetry update was stopped";
|
||||
case MccTelemetryErrorCode::ERROR_DATA_TIMEOUT:
|
||||
return "a timeout occured while waiting for new data";
|
||||
case MccTelemetryErrorCode::ERROR_UNSUPPORTED_COORD_PAIR:
|
||||
return "unsupported coordinate pair";
|
||||
default:
|
||||
return "UNKNOWN";
|
||||
}
|
||||
@@ -559,6 +562,25 @@ public:
|
||||
}
|
||||
|
||||
|
||||
error_t targetToMountDiff(MccCoordPairKind pair_kind, mcc_angle_c auto* dx, mcc_angle_c auto* dy)
|
||||
{
|
||||
std::lock_guard lock{*_updateMutex};
|
||||
|
||||
if (pair_kind == MccCoordPairKind::COORDS_KIND_AZALT || pair_kind == MccCoordPairKind::COORDS_KIND_AZZD) {
|
||||
*dx = (double)_data.target.AZ - (double)_data.AZ;
|
||||
*dy = (double)_data.target.ALT - (double)_data.ALT;
|
||||
} else if (pair_kind == MccCoordPairKind::COORDS_KIND_HADEC_APP ||
|
||||
pair_kind == MccCoordPairKind::COORDS_KIND_RADEC_APP ||
|
||||
pair_kind == MccCoordPairKind::COORDS_KIND_RADEC_ICRS) {
|
||||
*dx = (double)_data.target.HA - (double)_data.HA;
|
||||
*dy = (double)_data.target.DEC_APP - (double)_data.DEC_APP;
|
||||
} else {
|
||||
return MccTelemetryErrorCode::ERROR_UNSUPPORTED_COORD_PAIR;
|
||||
}
|
||||
|
||||
return MccTelemetryErrorCode::ERROR_OK;
|
||||
}
|
||||
|
||||
protected:
|
||||
std::unique_ptr<std::atomic_bool> _isDataUpdated;
|
||||
MccTelemetryData _data;
|
||||
|
||||
Reference in New Issue
Block a user