public void FromFocuserInfo(FocuserInfo info) { if (info.Connected) { if (string.IsNullOrWhiteSpace(Focuser.Name)) { Focuser.Name = info.Name; } Focuser.Position = info.Position; Focuser.StepSize = info.StepSize; Focuser.Temperature = info.Temperature; } }
public void FromFocuserInfoConnectedTest() { var info = new FocuserInfo() { Connected = true, Name = "TestFocuser", Position = 123, StepSize = 3.8, Temperature = 100 }; var sut = new ImageMetaData(); sut.FromFocuserInfo(info); Assert.AreEqual("TestFocuser", sut.Focuser.Name); Assert.AreEqual(123, sut.Focuser.Position); Assert.AreEqual(3.8, sut.Focuser.StepSize); Assert.AreEqual(100, sut.Focuser.Temperature); }
public void FromFocuserInfoNotConnectedTest() { var info = new FocuserInfo() { Connected = false, Name = "TestFocuser", Position = 123, StepSize = 3.8, Temperature = 100 }; var sut = new ImageMetaData(); sut.FromFocuserInfo(info); Assert.AreEqual(string.Empty, sut.Focuser.Name); Assert.AreEqual(double.NaN, sut.Focuser.Position); Assert.AreEqual(double.NaN, sut.Focuser.StepSize); Assert.AreEqual(double.NaN, sut.Focuser.Temperature); }
public void UpdateDeviceInfo(FocuserInfo deviceInfo) { this.focuserInfo = deviceInfo; }
private async Task <bool> ChooseFocuser() { await ss.WaitAsync(); try { await Disconnect(); if (updateTimer != null) { await updateTimer.Stop(); } if (FocuserChooserVM.SelectedDevice.Id == "No_Device") { profileService.ActiveProfile.FocuserSettings.Id = FocuserChooserVM.SelectedDevice.Id; return(false); } progress.Report(new ApplicationStatus() { Status = Locale.Loc.Instance["LblConnecting"] }); var focuser = GetBacklashCompensationFocuser(profileService, (IFocuser)FocuserChooserVM.SelectedDevice); _cancelChooseFocuserSource?.Dispose(); _cancelChooseFocuserSource = new CancellationTokenSource(); if (focuser != null) { try { var connected = await focuser?.Connect(_cancelChooseFocuserSource.Token); _cancelChooseFocuserSource.Token.ThrowIfCancellationRequested(); if (connected) { this.Focuser = focuser; FocuserInfo = new FocuserInfo { Connected = true, IsMoving = Focuser.IsMoving, Name = Focuser.Name, Position = this.Position, StepSize = Focuser.StepSize, TempCompAvailable = Focuser.TempCompAvailable, TempComp = Focuser.TempComp, Temperature = Focuser.Temperature }; Notification.ShowSuccess(Locale.Loc.Instance["LblFocuserConnected"]); updateTimer.Interval = profileService.ActiveProfile.ApplicationSettings.DevicePollingInterval; updateTimer.Start(); TargetPosition = this.Position; profileService.ActiveProfile.FocuserSettings.Id = Focuser.Id; Logger.Info($"Successfully connected Focuser. Id: {Focuser.Id} Name: {Focuser.Name} Driver Version: {Focuser.DriverVersion}"); return(true); } else { FocuserInfo.Connected = false; this.Focuser = null; return(false); } } catch (OperationCanceledException) { if (FocuserInfo.Connected) { await Disconnect(); } return(false); } } else { return(false); } } finally { ss.Release(); progress.Report(new ApplicationStatus() { Status = string.Empty }); } }