public void Slew_Minus_StopsWhenReachsMinus90() { var fakeTelescope = new FakeTelescope(); fakeTelescope.SiderealTime = TimeSpan.FromHours(3).TotalHours; var controller = new DecAxisController(fakeTelescope); controller.Connect(); controller.Position = -80; var slewTime = TimeSpan.FromSeconds(20 / (Constants.DEGREES_PER_SECOND * 8)); var task = controller.Slew(Orientation.Minus, slewTime); //Simulate time ticking by slewTime = TimeSpan.FromSeconds(5 / (Constants.DEGREES_PER_SECOND * 8)); fakeTelescope.SiderealTime += slewTime.TotalHours; Thread.Sleep(20); fakeTelescope.SiderealTime += slewTime.TotalHours; Thread.Sleep(20); fakeTelescope.SiderealTime += slewTime.TotalHours; Thread.Sleep(20); fakeTelescope.SiderealTime += slewTime.TotalHours; Thread.Sleep(20); task.Wait(); Assert.AreEqual(-90, controller.Position); }
public void StopSlew_ThrowsIfNotStarted() { var fakeTelescope = new FakeTelescope(); fakeTelescope.SiderealTime = TimeSpan.FromHours(3).TotalHours; var controller = new DecAxisController(fakeTelescope); controller.StopSlew(); }
public void Slew_ThrowsIfNotStarted() { var fakeTelescope = new FakeTelescope(); fakeTelescope.SiderealTime = TimeSpan.FromHours(3).TotalHours; var controller = new DecAxisController(fakeTelescope); controller.Slew(Orientation.Plus, TimeSpan.FromSeconds(10)); }
public void GetPosition_SiderealTimeBecomesLessThanStartTime() { var fakeTelescope = new FakeTelescope(); fakeTelescope.SiderealTime = 12d; var controller = new RAAxisController(fakeTelescope); controller.Connect(); fakeTelescope.SiderealTime = 11d; var location = TimeSpan.FromHours(controller.Position); Assert.AreEqual(Math.Round(Constants.HOURS_PER_SIDEREAL_DAY - 1, 6), Math.Round(location.TotalHours, 6)); }
public void Slew_Minus_StartsTrackingPosition() { var fakeTelescope = new FakeTelescope(); fakeTelescope.SiderealTime = TimeSpan.FromHours(3).TotalHours; var controller = new DecAxisController(fakeTelescope); controller.Connect(); var task = controller.Slew(Orientation.Minus, TimeSpan.FromSeconds(10)); fakeTelescope.SiderealTime += TimeSpan.FromSeconds(10).TotalHours; task.Wait(); Assert.AreEqual(-(Math.Round((Constants.DEGREES_PER_SECOND * 8) * 10, 4)), Math.Round(controller.Position, 4)); }
public void Start_StartsTrackingPosition() { var fakeTelescope = new FakeTelescope(); fakeTelescope.SiderealTime = TimeSpan.FromHours(3).TotalHours; var controller = new RAAxisController(fakeTelescope); controller.Connect(); fakeTelescope.SiderealTime += TimeSpan.FromSeconds(10).TotalHours; var location = TimeSpan.FromHours(controller.Position); Assert.AreEqual(10, Math.Round(location.TotalSeconds)); }
public void Slew_Minus_ReturnsToNotMovingAfterSlew() { var fakeTelescope = new FakeTelescope(); fakeTelescope.SiderealTime = TimeSpan.FromHours(3).TotalHours; var controller = new DecAxisController(fakeTelescope); controller.Connect(); controller.Position = TimeSpan.FromSeconds(180).TotalHours; var task = controller.Slew(Orientation.Minus, TimeSpan.FromSeconds(10)); Assert.AreEqual(-8, controller.SlewRate); fakeTelescope.SiderealTime += TimeSpan.FromSeconds(10).TotalHours; task.Wait(); Assert.AreEqual(0, controller.SlewRate); }
public void Slew_Minus_SetsSlewing() { var fakeTelescope = new FakeTelescope(); fakeTelescope.SiderealTime = TimeSpan.FromHours(3).TotalHours; var controller = new DecAxisController(fakeTelescope); controller.Connect(); var task = controller.Slew(Orientation.Minus, TimeSpan.FromSeconds(10)); Assert.IsTrue(controller.Slewing); fakeTelescope.SiderealTime += TimeSpan.FromSeconds(10).TotalHours; task.Wait(); Assert.IsFalse(controller.Slewing); }
public void Slew_Plus_StartsTrackingPosition() { var fakeTelescope = new FakeTelescope(); fakeTelescope.SiderealTime = TimeSpan.FromHours(3).TotalHours; var controller = new DecAxisController(fakeTelescope); controller.Connect(); var task = controller.Slew(Orientation.Plus, TimeSpan.FromSeconds(10)); fakeTelescope.SiderealTime += TimeSpan.FromSeconds(10).TotalHours; task.Wait(); Assert.AreEqual(Math.Round((Constants.DEGREES_PER_SECOND * 8) * 10, 4), Math.Round(controller.Position, 4)); }
public void Slew_Plus_PositionUpdatesAtSlewRate() { var fakeTelescope = new FakeTelescope(); fakeTelescope.SiderealTime = TimeSpan.FromHours(3).TotalHours; var controller = new RAAxisController(fakeTelescope); controller.Connect(); controller.Position = TimeSpan.FromSeconds(180).TotalHours; var task = controller.Slew(Orientation.Plus, TimeSpan.FromSeconds(10)); fakeTelescope.SiderealTime += TimeSpan.FromSeconds(10).TotalHours; task.Wait(); var location = TimeSpan.FromHours(controller.Position); Assert.AreEqual(260, Math.Round(location.TotalSeconds)); }
public void StartStopSlew_Minus_SetsSlewRate() { var fakeTelescope = new FakeTelescope(); fakeTelescope.SiderealTime = TimeSpan.FromHours(3).TotalHours; var controller = new DecAxisController(fakeTelescope); controller.Connect(); controller.StartSlew(Orientation.Minus); Assert.AreEqual(-8, controller.SlewRate); controller.StopSlew(); Assert.AreEqual(0, controller.SlewRate); }
public void Slew_Minus_PositionUpdatesAtSlewRateNegativeStart() { var fakeTelescope = new FakeTelescope(); fakeTelescope.SiderealTime = TimeSpan.FromHours(3).TotalHours; var controller = new DecAxisController(fakeTelescope); controller.Connect(); controller.Position = -50; var task = controller.Slew(Orientation.Minus, TimeSpan.FromSeconds(10)); fakeTelescope.SiderealTime += TimeSpan.FromSeconds(10).TotalHours; task.Wait(); Assert.AreEqual(Math.Round(-50 - (Constants.DEGREES_PER_SECOND * 8) * 10, 4), Math.Round(controller.Position, 4)); }
public void StartStopSlew_Minus_SetsSlewing() { var fakeTelescope = new FakeTelescope(); fakeTelescope.SiderealTime = TimeSpan.FromHours(3).TotalHours; var controller = new DecAxisController(fakeTelescope); controller.Connect(); controller.StartSlew(Orientation.Minus); Assert.IsTrue(controller.Slewing); controller.StopSlew(); Assert.IsFalse(controller.Slewing); }
public void Slew_Plus_SetsSlewing() { var fakeTelescope = new FakeTelescope(); fakeTelescope.SiderealTime = TimeSpan.FromHours(3).TotalHours; var controller = new DecAxisController(fakeTelescope); controller.Connect(); var task = controller.Slew(Orientation.Plus, TimeSpan.FromSeconds(10)); Assert.IsTrue(controller.Slewing); fakeTelescope.SiderealTime += TimeSpan.FromSeconds(10).TotalHours; task.Wait(); Assert.IsFalse(controller.Slewing); }
public void Slew_Plus_ReturnsToNotMovingAfterSlew() { var fakeTelescope = new FakeTelescope(); fakeTelescope.SiderealTime = TimeSpan.FromHours(3).TotalHours; var controller = new DecAxisController(fakeTelescope); controller.Connect(); controller.Position = TimeSpan.FromSeconds(180).TotalHours; var task = controller.Slew(Orientation.Plus, TimeSpan.FromSeconds(10)); Assert.AreEqual(8, controller.SlewRate); fakeTelescope.SiderealTime += TimeSpan.FromSeconds(10).TotalHours; task.Wait(); Assert.AreEqual(0, controller.SlewRate); }
public void Slew_Plus_ReturnsToEndOfDatWhenPassed0() { var fakeTelescope = new FakeTelescope(); fakeTelescope.SiderealTime = TimeSpan.FromHours(3).TotalHours; var controller = new RAAxisController(fakeTelescope); controller.Connect(); controller.Position = 0; var task = controller.Slew(Orientation.Minus, TimeSpan.FromSeconds(10)); fakeTelescope.SiderealTime += TimeSpan.FromSeconds(10).TotalHours; task.Wait(); var location = TimeSpan.FromHours(controller.Position); Assert.AreEqual(Math.Round(TimeSpan.FromHours(Constants.HOURS_PER_SIDEREAL_DAY - (TimeSpan.FromSeconds(80).TotalHours)).TotalSeconds), Math.Round(location.TotalSeconds)); }
public void Slew_Plus_ReturnsTo0WhenPassedEndOfDay() { var fakeTelescope = new FakeTelescope(); fakeTelescope.SiderealTime = TimeSpan.FromHours(3).TotalHours; var controller = new RAAxisController(fakeTelescope); controller.Connect(); controller.Position = Constants.HOURS_PER_SIDEREAL_DAY; var task = controller.Slew(Orientation.Plus, TimeSpan.FromSeconds(10)); fakeTelescope.SiderealTime += TimeSpan.FromSeconds(10).TotalHours; task.Wait(); var location = TimeSpan.FromHours(controller.Position); Assert.AreEqual(80, Math.Round(location.TotalSeconds)); }
public void Slew_Plus_PositionUpdatesAtSlewRatePoitiveStart() { var fakeTelescope = new FakeTelescope(); fakeTelescope.SiderealTime = TimeSpan.FromHours(3).TotalHours; var controller = new DecAxisController(fakeTelescope); controller.Connect(); controller.Position = 50; var task = controller.Slew(Orientation.Plus, TimeSpan.FromSeconds(10)); fakeTelescope.SiderealTime += TimeSpan.FromSeconds(10).TotalHours; task.Wait(); Assert.AreEqual(Math.Round(50 + (Constants.DEGREES_PER_SECOND * 8) * 10, 4), Math.Round(controller.Position, 4)); }
public void StartStopSlew_Plus_SetsSlewRate() { var fakeTelescope = new FakeTelescope(); fakeTelescope.SiderealTime = TimeSpan.FromHours(3).TotalHours; var controller = new DecAxisController(fakeTelescope); controller.Connect(); controller.StartSlew(Orientation.Plus); Assert.AreEqual(8, controller.SlewRate); controller.StopSlew(); Assert.AreEqual(0, controller.SlewRate); }