diff --git a/Meade.net.Telescope/Telescope.cs b/Meade.net.Telescope/Telescope.cs index 1cdb154..6505d85 100644 --- a/Meade.net.Telescope/Telescope.cs +++ b/Meade.net.Telescope/Telescope.cs @@ -142,7 +142,6 @@ namespace ASCOM.Meade.net private bool _isGuiding; - private bool _isTargetCoordinateInitRequired = true; // // PUBLIC COM INTERFACE ITelescopeV3 IMPLEMENTATION // @@ -648,16 +647,16 @@ namespace ASCOM.Meade.net if (SharedResourcesWrapper.ProductName != TelescopeList.LX200CLASSIC) return false; - if (!_isTargetCoordinateInitRequired) - return _isTargetCoordinateInitRequired; + if (!SharedResourcesWrapper.IsTargetCoordinateInitRequired) + return SharedResourcesWrapper.IsTargetCoordinateInitRequired; if (!IsConnected) return true; if (SharedResourcesWrapper.ProductName != TelescopeList.LX200CLASSIC) { - _isTargetCoordinateInitRequired = false; - return _isTargetCoordinateInitRequired; + SharedResourcesWrapper.IsTargetCoordinateInitRequired = false; + return SharedResourcesWrapper.IsTargetCoordinateInitRequired; } const double eps = 0.00001d; @@ -666,16 +665,16 @@ namespace ASCOM.Meade.net //target RA == 0 if (Math.Abs(rightTargetAscension) > eps) { - _isTargetCoordinateInitRequired = false; - return _isTargetCoordinateInitRequired; + SharedResourcesWrapper.IsTargetCoordinateInitRequired = false; + return SharedResourcesWrapper.IsTargetCoordinateInitRequired; } double targetDeclination = Declination; //target DE == 0 if (Math.Abs(targetDeclination) > eps) { - _isTargetCoordinateInitRequired = false; - return _isTargetCoordinateInitRequired; + SharedResourcesWrapper.IsTargetCoordinateInitRequired = false; + return SharedResourcesWrapper.IsTargetCoordinateInitRequired; } //target coordinates are equal current coordinates @@ -683,12 +682,12 @@ namespace ASCOM.Meade.net (Math.Abs(Declination - targetDeclination) <= eps)) { LogMessage("IsTargetCoordinateInitRequired", "0 diff -> false"); - _isTargetCoordinateInitRequired = false; - return _isTargetCoordinateInitRequired; + SharedResourcesWrapper.IsTargetCoordinateInitRequired = false; + return SharedResourcesWrapper.IsTargetCoordinateInitRequired; } - LogMessage("IsTargetCoordinateInitRequired", $"{_isTargetCoordinateInitRequired}"); - return _isTargetCoordinateInitRequired; + LogMessage("IsTargetCoordinateInitRequired", $"{SharedResourcesWrapper.IsTargetCoordinateInitRequired}"); + return SharedResourcesWrapper.IsTargetCoordinateInitRequired; } private void InitTargetCoordinates() @@ -702,7 +701,7 @@ namespace ASCOM.Meade.net SyncToCoordinates(raAndDec.RightAscension, raAndDec.Declination); //do it only once - _isTargetCoordinateInitRequired = false; + SharedResourcesWrapper.IsTargetCoordinateInitRequired = false; } catch (Exception ex) { diff --git a/Meade.net/SharedResources.cs b/Meade.net/SharedResources.cs index 440b051..30c5cc2 100644 --- a/Meade.net/SharedResources.cs +++ b/Meade.net/SharedResources.cs @@ -576,5 +576,12 @@ namespace ASCOM.Meade.net get => _earliestNonSlewingTime; internal set => _earliestNonSlewingTime.Set(value); } + + private static readonly ThreadSafeValue _isTargetCoordinateInitRequired = true; + public static bool IsTargetCoordinateInitRequired + { + get => _isTargetCoordinateInitRequired; + internal set => _isTargetCoordinateInitRequired.Set(value); + } } } \ No newline at end of file diff --git a/Meade.net/Wrapper/SharedResourcesWrapper.cs b/Meade.net/Wrapper/SharedResourcesWrapper.cs index 84ecf4a..33f42a1 100644 --- a/Meade.net/Wrapper/SharedResourcesWrapper.cs +++ b/Meade.net/Wrapper/SharedResourcesWrapper.cs @@ -47,6 +47,8 @@ namespace ASCOM.Meade.net.Wrapper bool MovingSecondary { get; set; } DateTime EarliestNonSlewingTime { get; set; } + + bool IsTargetCoordinateInitRequired { get; set; } } public class SharedResourcesWrapper : ISharedResourcesWrapper @@ -181,5 +183,11 @@ namespace ASCOM.Meade.net.Wrapper get => SharedResources.EarliestNonSlewingTime; set => SharedResources.EarliestNonSlewingTime = value; } + + public bool IsTargetCoordinateInitRequired + { + get => SharedResources.IsTargetCoordinateInitRequired; + set => SharedResources.IsTargetCoordinateInitRequired = value; + } } }