...
This commit is contained in:
parent
58d62d85b3
commit
8b16ac79b8
@ -394,6 +394,10 @@ static auto Asibfm700MountConfigDefaults = std::make_tuple(
|
|||||||
// minimum time in millisecs between two successive tracking corrections
|
// minimum time in millisecs between two successive tracking corrections
|
||||||
simple_config_record_t{"trackingCycleInterval", std::chrono::milliseconds(300)},
|
simple_config_record_t{"trackingCycleInterval", std::chrono::milliseconds(300)},
|
||||||
|
|
||||||
|
// maximal valid target-to-mount distance for tracking process (arcsecs)
|
||||||
|
// if current distance is greater than assume current mount coordinate as target point
|
||||||
|
simple_config_record_t{"trackingMaxCoordDiff", 20.0},
|
||||||
|
|
||||||
|
|
||||||
/* prohibited zones */
|
/* prohibited zones */
|
||||||
|
|
||||||
@ -596,6 +600,8 @@ protected:
|
|||||||
|
|
||||||
// slew and track parameters
|
// slew and track parameters
|
||||||
|
|
||||||
|
static constexpr double arcsecs2rad = std::numbers::pi / 180.0 / 3600.0; // arcseconds to radians
|
||||||
|
|
||||||
movingModelParams.telemetryTimeout =
|
movingModelParams.telemetryTimeout =
|
||||||
getValue<decltype(movingModelParams.telemetryTimeout)>("telemetryTimeout").value_or({});
|
getValue<decltype(movingModelParams.telemetryTimeout)>("telemetryTimeout").value_or({});
|
||||||
|
|
||||||
@ -606,10 +612,10 @@ protected:
|
|||||||
getValue<decltype(movingModelParams.updatingPZoneInterval)>("updatingPZoneInterval").value_or({});
|
getValue<decltype(movingModelParams.updatingPZoneInterval)>("updatingPZoneInterval").value_or({});
|
||||||
|
|
||||||
movingModelParams.slewToleranceRadius =
|
movingModelParams.slewToleranceRadius =
|
||||||
getValue<decltype(movingModelParams.slewToleranceRadius)>("slewToleranceRadius").value_or({});
|
getValue<decltype(movingModelParams.slewToleranceRadius)>("slewToleranceRadius").value_or({}) * arcsecs2rad;
|
||||||
|
|
||||||
movingModelParams.adjustCoordDiff =
|
movingModelParams.adjustCoordDiff =
|
||||||
getValue<decltype(movingModelParams.adjustCoordDiff)>("adjustCoordDiff").value_or({});
|
getValue<decltype(movingModelParams.adjustCoordDiff)>("adjustCoordDiff").value_or({}) * arcsecs2rad;
|
||||||
|
|
||||||
movingModelParams.adjustCycleInterval =
|
movingModelParams.adjustCycleInterval =
|
||||||
getValue<decltype(movingModelParams.adjustCycleInterval)>("adjustCycleInterval").value_or({});
|
getValue<decltype(movingModelParams.adjustCycleInterval)>("adjustCycleInterval").value_or({});
|
||||||
@ -622,6 +628,9 @@ protected:
|
|||||||
movingModelParams.trackingCycleInterval =
|
movingModelParams.trackingCycleInterval =
|
||||||
getValue<decltype(movingModelParams.trackingCycleInterval)>("trackingCycleInterval").value_or({});
|
getValue<decltype(movingModelParams.trackingCycleInterval)>("trackingCycleInterval").value_or({});
|
||||||
|
|
||||||
|
movingModelParams.trackingMaxCoordDiff =
|
||||||
|
getValue<decltype(movingModelParams.trackingMaxCoordDiff)>("trackingMaxCoordDiff").value_or({}) *
|
||||||
|
arcsecs2rad;
|
||||||
|
|
||||||
// PCM data
|
// PCM data
|
||||||
|
|
||||||
|
|||||||
@ -210,20 +210,20 @@ public:
|
|||||||
// in some intermediate buffer
|
// in some intermediate buffer
|
||||||
error_t setPointingTarget(mcc_celestial_point_c auto pt)
|
error_t setPointingTarget(mcc_celestial_point_c auto pt)
|
||||||
{
|
{
|
||||||
mcc_copy_celestial_point(std::move(pt), &_inputTargetCoordiniates);
|
mcc_copy_celestial_point(std::move(pt), &_enteredTargetCoordiniates);
|
||||||
|
|
||||||
std::string xstr;
|
std::string xstr;
|
||||||
if (_inputTargetCoordiniates.pair_kind == MccCoordPairKind::COORDS_KIND_RADEC_ICRS ||
|
if (_enteredTargetCoordiniates.pair_kind == MccCoordPairKind::COORDS_KIND_RADEC_ICRS ||
|
||||||
_inputTargetCoordiniates.pair_kind == MccCoordPairKind::COORDS_KIND_RADEC_APP ||
|
_enteredTargetCoordiniates.pair_kind == MccCoordPairKind::COORDS_KIND_RADEC_APP ||
|
||||||
_inputTargetCoordiniates.pair_kind == MccCoordPairKind::COORDS_KIND_HADEC_APP) {
|
_enteredTargetCoordiniates.pair_kind == MccCoordPairKind::COORDS_KIND_HADEC_APP) {
|
||||||
xstr = MccAngle(_inputTargetCoordiniates.X).sexagesimal(true);
|
xstr = MccAngle(_enteredTargetCoordiniates.X).sexagesimal(true);
|
||||||
} else {
|
} else {
|
||||||
MccAngle(_inputTargetCoordiniates.X).sexagesimal();
|
MccAngle(_enteredTargetCoordiniates.X).sexagesimal();
|
||||||
}
|
}
|
||||||
|
|
||||||
logInfo(std::format("Set input target coordinates to: {} {} {}", xstr,
|
logInfo(std::format("Set entered target coordinates to: {} {} {}", xstr,
|
||||||
MccAngle(_inputTargetCoordiniates.Y).sexagesimal(),
|
MccAngle(_enteredTargetCoordiniates.Y).sexagesimal(),
|
||||||
MccCoordPairKindStr<_inputTargetCoordiniates.pair_kind>));
|
MccCoordPairKindStr<_enteredTargetCoordiniates.pair_kind>));
|
||||||
|
|
||||||
return MccGenericMountErrorCode::ERROR_OK;
|
return MccGenericMountErrorCode::ERROR_OK;
|
||||||
}
|
}
|
||||||
@ -231,7 +231,7 @@ public:
|
|||||||
// re-implements SlewModelT::slewToTarget to fetch input target coordinates from intermediate buffer
|
// re-implements SlewModelT::slewToTarget to fetch input target coordinates from intermediate buffer
|
||||||
error_t slewToTarget(bool slew_and_stop = false)
|
error_t slewToTarget(bool slew_and_stop = false)
|
||||||
{
|
{
|
||||||
auto err = TelemetryT::setPointingTarget(_inputTargetCoordiniates);
|
auto err = TelemetryT::setPointingTarget(_enteredTargetCoordiniates);
|
||||||
if (err) {
|
if (err) {
|
||||||
return mcc_deduce_error_code(err, MccGenericMountErrorCode::ERROR_SET_TARGET);
|
return mcc_deduce_error_code(err, MccGenericMountErrorCode::ERROR_SET_TARGET);
|
||||||
}
|
}
|
||||||
@ -241,7 +241,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
MccCelestialPoint _inputTargetCoordiniates;
|
MccCelestialPoint _enteredTargetCoordiniates;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -61,6 +61,9 @@ struct MccSimpleMovingModelParams {
|
|||||||
|
|
||||||
// time shift into future to compute target position in future (UT1-scale time duration)
|
// time shift into future to compute target position in future (UT1-scale time duration)
|
||||||
std::chrono::milliseconds timeShiftToTargetPoint{10000};
|
std::chrono::milliseconds timeShiftToTargetPoint{10000};
|
||||||
|
// maximal target-to-mount difference for tracking process (in arcsecs)
|
||||||
|
// it it is greater then the current mount coordinates are used as target one
|
||||||
|
double trackingMaxCoordDiff{20.0};
|
||||||
|
|
||||||
// ******* guiding mode *******
|
// ******* guiding mode *******
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user