Added code for the site latitude
and started work on the longitude.
This commit is contained in:
@@ -387,8 +387,8 @@ namespace ASCOM.MeadeAutostar497
|
||||
{
|
||||
get
|
||||
{
|
||||
tl.LogMessage("CanPark", "Get - " + false.ToString());
|
||||
return false;
|
||||
tl.LogMessage("CanPark", "Get - " + true.ToString());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -396,8 +396,8 @@ namespace ASCOM.MeadeAutostar497
|
||||
{
|
||||
get
|
||||
{
|
||||
tl.LogMessage("CanPulseGuide", "Get - " + false.ToString());
|
||||
return false;
|
||||
tl.LogMessage("CanPulseGuide", "Get - " + true.ToString());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -459,8 +459,8 @@ namespace ASCOM.MeadeAutostar497
|
||||
{
|
||||
get
|
||||
{
|
||||
tl.LogMessage("CanSlew", "Get - " + false.ToString());
|
||||
return false;
|
||||
tl.LogMessage("CanSlew", "Get - " + true.ToString());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -468,8 +468,8 @@ namespace ASCOM.MeadeAutostar497
|
||||
{
|
||||
get
|
||||
{
|
||||
tl.LogMessage("CanSlewAltAz", "Get - " + false.ToString());
|
||||
return false;
|
||||
tl.LogMessage("CanSlewAltAz", "Get - " + true.ToString());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -477,8 +477,8 @@ namespace ASCOM.MeadeAutostar497
|
||||
{
|
||||
get
|
||||
{
|
||||
tl.LogMessage("CanSlewAltAzAsync", "Get - " + false.ToString());
|
||||
return false;
|
||||
tl.LogMessage("CanSlewAltAzAsync", "Get - " + true.ToString());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -486,8 +486,8 @@ namespace ASCOM.MeadeAutostar497
|
||||
{
|
||||
get
|
||||
{
|
||||
tl.LogMessage("CanSlewAsync", "Get - " + false.ToString());
|
||||
return false;
|
||||
tl.LogMessage("CanSlewAsync", "Get - " + true.ToString());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -495,8 +495,8 @@ namespace ASCOM.MeadeAutostar497
|
||||
{
|
||||
get
|
||||
{
|
||||
tl.LogMessage("CanSync", "Get - " + false.ToString());
|
||||
return false;
|
||||
tl.LogMessage("CanSync", "Get - " + true.ToString());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -732,13 +732,14 @@ namespace ASCOM.MeadeAutostar497
|
||||
{
|
||||
get
|
||||
{
|
||||
tl.LogMessage("SiteLatitude Get", "Not implemented");
|
||||
throw new ASCOM.PropertyNotImplementedException("SiteLatitude", false);
|
||||
var siteLatitude = _telescopeController.SiteLatitude;
|
||||
tl.LogMessage("SiteLatitude Get", $"{utilities.DegreesToDMS(siteLatitude)}");
|
||||
return siteLatitude;
|
||||
}
|
||||
set
|
||||
{
|
||||
tl.LogMessage("SiteLatitude Set", "Not implemented");
|
||||
throw new ASCOM.PropertyNotImplementedException("SiteLatitude", true);
|
||||
tl.LogMessage("SiteLatitude Set", $"{utilities.DegreesToDMS(value)}");
|
||||
_telescopeController.SiteLatitude = value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -746,13 +747,14 @@ namespace ASCOM.MeadeAutostar497
|
||||
{
|
||||
get
|
||||
{
|
||||
tl.LogMessage("SiteLongitude Get", "Not implemented");
|
||||
throw new ASCOM.PropertyNotImplementedException("SiteLongitude", false);
|
||||
var siteLongitude = _telescopeController.SiteLongitude;
|
||||
tl.LogMessage("SiteLongitude Get", $"{utilities.DegreesToDMS(siteLongitude)}");
|
||||
return siteLongitude;
|
||||
}
|
||||
set
|
||||
{
|
||||
tl.LogMessage("SiteLongitude Set", "Not implemented");
|
||||
throw new ASCOM.PropertyNotImplementedException("SiteLongitude", true);
|
||||
tl.LogMessage("SiteLongitude Set", $"{utilities.DegreesToDMS(value)}");
|
||||
_telescopeController.SiteLongitude = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,8 @@ namespace ASCOM.MeadeAutostar497.Controller
|
||||
|
||||
bool Slewing { get; }
|
||||
DateTime utcDate { get; set; }
|
||||
double SiteLatitude { get; set; }
|
||||
double SiteLongitude { get; set; }
|
||||
void AbortSlew();
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.IO.Ports;
|
||||
using System.Linq;
|
||||
using ASCOM.Utilities;
|
||||
|
||||
namespace ASCOM.MeadeAutostar497.Controller
|
||||
{
|
||||
@@ -165,6 +166,59 @@ namespace ASCOM.MeadeAutostar497.Controller
|
||||
|
||||
}
|
||||
|
||||
public double SiteLatitude
|
||||
{
|
||||
get
|
||||
{
|
||||
var latitude = SerialPort.CommandTerminated( ":Gt#", "#");
|
||||
|
||||
double lat = int.Parse(latitude.Substring(1, 2));
|
||||
lat = lat + double.Parse(latitude.Substring(4, 2)) / 60;
|
||||
if (latitude.Length == 9)
|
||||
lat = lat + double.Parse(latitude.Substring(7, 2)) / 60 / 60;
|
||||
|
||||
if (latitude[0] == '-')
|
||||
lat = -lat;
|
||||
|
||||
return lat;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value > 90)
|
||||
throw new ASCOM.InvalidValueException("Latitude cannot be greater than 90 degrees.");
|
||||
|
||||
if (value < -90)
|
||||
throw new ASCOM.InvalidValueException("Latitude cannot be less than -90 degrees.");
|
||||
|
||||
int dd = Convert.ToInt32(Math.Floor(value));
|
||||
int mm = Convert.ToInt32(60 * (value - dd));
|
||||
|
||||
var result = SerialPort.CommandChar($":Sts{dd:00}*{mm:00}#");
|
||||
if (result != '1')
|
||||
throw new InvalidOperationException("Failed to set site latitude.");
|
||||
}
|
||||
}
|
||||
|
||||
public double SiteLongitude
|
||||
{
|
||||
get
|
||||
{
|
||||
var longitude = SerialPort.CommandTerminated(":Gg#", "#");
|
||||
|
||||
double l = int.Parse(longitude.Substring(0, 3));
|
||||
l = l + double.Parse(longitude.Substring(4, 2)) / 60;
|
||||
if (longitude.Length == 9)
|
||||
l = l + double.Parse(longitude.Substring(7, 2)) / 60 / 60;
|
||||
|
||||
return l;
|
||||
}
|
||||
set
|
||||
{
|
||||
throw new ASCOM.PropertyNotImplementedException("not done yet.");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void AbortSlew()
|
||||
{
|
||||
SerialPort.Command("#:Q#");
|
||||
|
||||
Reference in New Issue
Block a user