diff --git a/AstroMath.UnitTests/AstroMathsUnitTests.cs b/AstroMath.UnitTests/AstroMathsUnitTests.cs index f4792d3..392dd71 100644 --- a/AstroMath.UnitTests/AstroMathsUnitTests.cs +++ b/AstroMath.UnitTests/AstroMathsUnitTests.cs @@ -111,15 +111,12 @@ namespace AstroMath.UnitTests [Test] public void ConvertEqToHoz_book() { - DateTime dateTime = new DateTime(2019, 05, 18, 22, 26, 15, DateTimeKind.Utc); - var longitude = -1.7833333333333332; var latitude = 52.0; EquatorialCoordinates equatorialCoordinates = new EquatorialCoordinates(); equatorialCoordinates.RightAscension = 5.862222222222222;//5 51' 44" equatorialCoordinates.Declination = 23.21944444444444;//23 13' 10" - //var hourAngle = _astroMath.RightAscensionToHourAngle(dateTime, longitude, equatorialCoordinates.RightAscension); var hourAngle = 5.682222; var altAz = _astroMath.ConvertEqToHoz(hourAngle, latitude, equatorialCoordinates); diff --git a/Meade.net.Telescope/Telescope.cs b/Meade.net.Telescope/Telescope.cs index 2829e4e..d2e1ade 100644 --- a/Meade.net.Telescope/Telescope.cs +++ b/Meade.net.Telescope/Telescope.cs @@ -237,6 +237,7 @@ namespace ASCOM.Meade.net connectedState = true; SelectSite(1); + SetLongFormat(true); } else { @@ -247,6 +248,29 @@ namespace ASCOM.Meade.net } } + private void SetLongFormat(bool setLongFormat) + { + SharedResources.Lock(() => + { + var result = SharedResources.SendString(":GZ#"); + //:GZ# Get telescope azimuth + //Returns: DDD*MM#T or DDD*MM’SS# + //The current telescope Azimuth depending on the selected precision. + + bool isLongFormat = result.Length > 6; + + if (isLongFormat != setLongFormat) + { + utilities.WaitForMilliseconds(500); + SharedResources.SendBlind(":U#"); + //:U# Toggle between low/hi precision positions + //Low - RA displays and messages HH:MM.T sDD*MM + //High - Dec / Az / El displays and messages HH:MM: SS sDD*MM:SS + // Returns Nothing + } + }); + } + private void SelectSite(int site) { SharedResources.SendBlind($":W{site}#"); @@ -1173,9 +1197,10 @@ namespace ASCOM.Meade.net if (value < 0) throw new ASCOM.InvalidValueException("Altitide cannot be less than 0."); + //todo this serial string does not work. Calculate the EQ version instead. - var dms = utilities.DegreesToDMS(value, "*", "'", ".", 2); - var s = value < 0 ? '-' : '+'; + var dms = utilities.DegreesToDMS(value, "*", "'", "",0); + var s = value < 0 ? "-" : "+"; var result = SharedResources.SendChar($":Sa{s}{dms}#"); //:SasDD*MM# @@ -1199,9 +1224,11 @@ namespace ASCOM.Meade.net if (value < 0) throw new ASCOM.InvalidValueException("Azimuth cannot be less than 0."); - var dms = utilities.DegreesToDM(value, "*", ":", 2); + //todo this serial string does not work. Calculate the EQ version instead. - var result = SharedResources.SendChar($":Sd{dms}#"); + var dms = utilities.DegreesToDM(value, "*" ); + + var result = SharedResources.SendChar($":Sz{dms}#"); //:SzDDD*MM# //Sets the target Object Azimuth[LX 16” and Autostar II only] //Returns: diff --git a/TelescopeTestConsole/Program.cs b/TelescopeTestConsole/Program.cs index a8de179..5c626fa 100644 --- a/TelescopeTestConsole/Program.cs +++ b/TelescopeTestConsole/Program.cs @@ -43,8 +43,11 @@ namespace ASCOM // TODO add more code to test the driver. device.Connected = true; - Console.WriteLine($"Ra {device.RightAscension}"); - Console.WriteLine($"Dec {device.Declination}"); + device.CommandBlind(":Sa+30*00'00#", true); + device.CommandBlind(":Sz150*00#", true); + device.CommandBlind(":MS#", true); + //Console.WriteLine($"Ra {device.RightAscension}"); + //Console.WriteLine($"Dec {device.Declination}"); Console.WriteLine($"Altitude {device.Altitude}"); Console.WriteLine($"Azimuth {device.Azimuth}");