public ImagingVM( IProfileService profileService, IImagingMediator imagingMediator, ICameraMediator cameraMediator, ITelescopeMediator telescopeMediator, IFilterWheelMediator filterWheelMediator, IFocuserMediator focuserMediator, IRotatorMediator rotatorMediator, IGuiderMediator guiderMediator, IWeatherDataMediator weatherDataMediator, IApplicationStatusMediator applicationStatusMediator ) : base(profileService) { this.imagingMediator = imagingMediator; this.imagingMediator.RegisterHandler(this); this.cameraMediator = cameraMediator; this.cameraMediator.RegisterConsumer(this); this.telescopeMediator = telescopeMediator; this.telescopeMediator.RegisterConsumer(this); this.filterWheelMediator = filterWheelMediator; this.filterWheelMediator.RegisterConsumer(this); this.focuserMediator = focuserMediator; this.focuserMediator.RegisterConsumer(this); this.rotatorMediator = rotatorMediator; this.rotatorMediator.RegisterConsumer(this); this.guiderMediator = guiderMediator; this.applicationStatusMediator = applicationStatusMediator; this.weatherDataMediator = weatherDataMediator; this.weatherDataMediator.RegisterConsumer(this); progress = new Progress <ApplicationStatus>(p => Status = p); ImageControl = new ImageControlVM(profileService, cameraMediator, telescopeMediator, applicationStatusMediator); }
public FocuserVM(IProfileService profileService, IFocuserMediator focuserMediator, IApplicationStatusMediator applicationStatusMediator) : base(profileService) { Title = "LblFocuser"; ImageGeometry = (System.Windows.Media.GeometryGroup)System.Windows.Application.Current.Resources["FocusSVG"]; this.focuserMediator = focuserMediator; this.focuserMediator.RegisterHandler(this); this.applicationStatusMediator = applicationStatusMediator; ChooseFocuserCommand = new AsyncCommand <bool>(() => ChooseFocuser()); CancelChooseFocuserCommand = new RelayCommand(CancelChooseFocuser); DisconnectCommand = new AsyncCommand <bool>(() => DisconnectDiag()); RefreshFocuserListCommand = new RelayCommand(RefreshFocuserList, o => !(Focuser?.Connected == true)); MoveFocuserInSmallCommand = new AsyncCommand <int>(() => MoveFocuserRelativeInternal((int)Math.Round(profileService.ActiveProfile.FocuserSettings.AutoFocusStepSize / -2d)), (p) => FocuserInfo.Connected && !FocuserInfo.IsMoving); MoveFocuserInLargeCommand = new AsyncCommand <int>(() => MoveFocuserRelativeInternal(profileService.ActiveProfile.FocuserSettings.AutoFocusStepSize * -5), (p) => FocuserInfo.Connected && !FocuserInfo.IsMoving); MoveFocuserOutSmallCommand = new AsyncCommand <int>(() => MoveFocuserRelativeInternal((int)Math.Round(profileService.ActiveProfile.FocuserSettings.AutoFocusStepSize / 2d)), (p) => FocuserInfo.Connected && !FocuserInfo.IsMoving); MoveFocuserOutLargeCommand = new AsyncCommand <int>(() => MoveFocuserRelativeInternal(profileService.ActiveProfile.FocuserSettings.AutoFocusStepSize * 5), (p) => FocuserInfo.Connected && !FocuserInfo.IsMoving); MoveFocuserCommand = new AsyncCommand <int>(() => MoveFocuserInternal(TargetPosition), (p) => FocuserInfo.Connected && !FocuserInfo.IsMoving); HaltFocuserCommand = new RelayCommand((object o) => _cancelMove?.Cancel()); ToggleTempCompCommand = new RelayCommand(ToggleTempComp); updateTimer = new DeviceUpdateTimer( GetFocuserValues, UpdateFocuserValues, profileService.ActiveProfile.ApplicationSettings.DevicePollingInterval ); profileService.ProfileChanged += (object sender, EventArgs e) => { RefreshFocuserList(null); }; progress = new Progress <ApplicationStatus>(p => { p.Source = this.Title; this.applicationStatusMediator.StatusUpdate(p); }); }
public FilterWheelVM(IProfileService profileService, IFilterWheelMediator filterWheelMediator, IFocuserMediator focuserMediator, IApplicationStatusMediator applicationStatusMediator) : base(profileService) { Title = "LblFilterWheel"; ImageGeometry = (System.Windows.Media.GeometryGroup)System.Windows.Application.Current.Resources["FWSVG"]; this.filterWheelMediator = filterWheelMediator; this.filterWheelMediator.RegisterHandler(this); this.focuserMediator = focuserMediator; this.applicationStatusMediator = applicationStatusMediator; ChooseFWCommand = new AsyncCommand <bool>(() => ChooseFW()); CancelChooseFWCommand = new RelayCommand(CancelChooseFW); DisconnectCommand = new AsyncCommand <bool>(() => DisconnectFW()); RefreshFWListCommand = new RelayCommand(RefreshFWList, o => !(FW?.Connected == true)); ChangeFilterCommand = new AsyncCommand <bool>(async() => { _changeFilterCancellationSource?.Dispose(); _changeFilterCancellationSource = new CancellationTokenSource(); await ChangeFilter(TargetFilter, _changeFilterCancellationSource.Token); return(true); }, (object o) => FilterWheelInfo.Connected && !FilterWheelInfo.IsMoving); profileService.ProfileChanged += (object sender, EventArgs e) => { RefreshFWList(null); }; }