Refactored code to reduce duplication.
This commit is contained in:
@@ -28,7 +28,8 @@ namespace Meade.net.Focuser.UnitTests
|
|||||||
TraceLogger = false,
|
TraceLogger = false,
|
||||||
ComPort = "TestCom1",
|
ComPort = "TestCom1",
|
||||||
GuideRateArcSecondsPerSecond = 1.23,
|
GuideRateArcSecondsPerSecond = 1.23,
|
||||||
Precision = "Unchanged"
|
Precision = "Unchanged",
|
||||||
|
GuidingStyle = "Auto"
|
||||||
};
|
};
|
||||||
|
|
||||||
_utilMock = new Mock<IUtil>();
|
_utilMock = new Mock<IUtil>();
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ namespace ASCOM.Meade.net
|
|||||||
[ServedClassName("Meade Generic")]
|
[ServedClassName("Meade Generic")]
|
||||||
[ClassInterface(ClassInterfaceType.None)]
|
[ClassInterface(ClassInterfaceType.None)]
|
||||||
[ComVisible(true)]
|
[ComVisible(true)]
|
||||||
public class Telescope : ReferenceCountedObjectBase, ITelescopeV3
|
public class Telescope : MeadeTelescopeBase, ITelescopeV3
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ASCOM DeviceID (COM ProgID) for this driver.
|
/// ASCOM DeviceID (COM ProgID) for this driver.
|
||||||
@@ -47,13 +47,6 @@ namespace ASCOM.Meade.net
|
|||||||
//internal static string driverID = "ASCOM.Meade.net.Telescope";
|
//internal static string driverID = "ASCOM.Meade.net.Telescope";
|
||||||
private static readonly string DriverId = Marshal.GenerateProgIdForType(MethodBase.GetCurrentMethod().DeclaringType ?? throw new System.InvalidOperationException());
|
private static readonly string DriverId = Marshal.GenerateProgIdForType(MethodBase.GetCurrentMethod().DeclaringType ?? throw new System.InvalidOperationException());
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Driver description that displays in the ASCOM Chooser.
|
|
||||||
/// </summary>
|
|
||||||
private static readonly string DriverDescription = "Meade Generic";
|
|
||||||
|
|
||||||
private static string _comPort; // Variables to hold the currrent device configuration
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Private variable to hold an ASCOM Utilities object
|
/// Private variable to hold an ASCOM Utilities object
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -66,19 +59,12 @@ namespace ASCOM.Meade.net
|
|||||||
private readonly IAstroUtils _astroUtilities;
|
private readonly IAstroUtils _astroUtilities;
|
||||||
|
|
||||||
private readonly IAstroMaths _astroMaths;
|
private readonly IAstroMaths _astroMaths;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Variable to hold the trace logger object (creates a diagnostic log file with information that you specify)
|
|
||||||
/// </summary>
|
|
||||||
private TraceLogger _tl;
|
|
||||||
|
|
||||||
private readonly ISharedResourcesWrapper _sharedResourcesWrapper;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initializes a new instance of the <see cref="Meade.net"/> class.
|
/// Initializes a new instance of the <see cref="Meade.net"/> class.
|
||||||
/// Must be public for COM registration.
|
/// Must be public for COM registration.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Telescope()
|
public Telescope() : base()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -87,7 +73,6 @@ namespace ASCOM.Meade.net
|
|||||||
_utilities = util;
|
_utilities = util;
|
||||||
_utilitiesExtra = util; //Initialise util object
|
_utilitiesExtra = util; //Initialise util object
|
||||||
_astroUtilities = new AstroUtils(); // Initialise astro utilities object
|
_astroUtilities = new AstroUtils(); // Initialise astro utilities object
|
||||||
_sharedResourcesWrapper = new SharedResourcesWrapper();
|
|
||||||
_astroMaths = new AstroMaths.AstroMaths();
|
_astroMaths = new AstroMaths.AstroMaths();
|
||||||
|
|
||||||
Initialise();
|
Initialise();
|
||||||
@@ -121,33 +106,17 @@ namespace ASCOM.Meade.net
|
|||||||
sb.AppendLine();
|
sb.AppendLine();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Telescope( IUtil util, IUtilExtra utilExtra, IAstroUtils astroUtilities, ISharedResourcesWrapper sharedResourcesWrapper, IAstroMaths astroMaths)
|
public Telescope( IUtil util, IUtilExtra utilExtra, IAstroUtils astroUtilities, ISharedResourcesWrapper sharedResourcesWrapper, IAstroMaths astroMaths) : base(sharedResourcesWrapper)
|
||||||
{
|
{
|
||||||
_utilities = util; //Initialise util object
|
_utilities = util; //Initialise util object
|
||||||
_utilitiesExtra = utilExtra; //Initialise util object
|
_utilitiesExtra = utilExtra; //Initialise util object
|
||||||
_astroUtilities = astroUtilities; // Initialise astro utilities object
|
_astroUtilities = astroUtilities; // Initialise astro utilities object
|
||||||
_sharedResourcesWrapper = sharedResourcesWrapper;
|
|
||||||
_astroMaths = astroMaths;
|
_astroMaths = astroMaths;
|
||||||
|
|
||||||
Initialise();
|
Initialise();
|
||||||
}
|
}
|
||||||
|
|
||||||
private double _guideRate;
|
|
||||||
private bool _isGuiding;
|
private bool _isGuiding;
|
||||||
|
|
||||||
private void Initialise()
|
|
||||||
{
|
|
||||||
//todo move the TraceLogger out to a factory class.
|
|
||||||
_tl = new TraceLogger("", "Meade.Generic.Telescope");
|
|
||||||
ReadProfile(); // Read device configuration from the ASCOM Profile store
|
|
||||||
|
|
||||||
IsConnected = false; // Initialise connected to false
|
|
||||||
|
|
||||||
LogMessage("Telescope", "Completed initialisation");
|
|
||||||
LogMessage("Telescope", $"Driver version: {DriverVersion}");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// PUBLIC COM INTERFACE ITelescopeV3 IMPLEMENTATION
|
// PUBLIC COM INTERFACE ITelescopeV3 IMPLEMENTATION
|
||||||
//
|
//
|
||||||
@@ -704,36 +673,6 @@ namespace ASCOM.Meade.net
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Description
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
LogMessage("Description Get", DriverDescription);
|
|
||||||
return DriverDescription;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public string DriverInfo
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
string driverInfo = $"{Description} .net driver. Version: {DriverVersion}";
|
|
||||||
LogMessage("DriverInfo Get", driverInfo);
|
|
||||||
return driverInfo;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public string DriverVersion
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
Version version = Assembly.GetExecutingAssembly().GetName().Version;
|
|
||||||
string driverVersion = $"{version.Major}.{version.Minor}.{version.Build}.{version.Revision}";
|
|
||||||
LogMessage("DriverVersion Get", driverVersion);
|
|
||||||
return driverVersion;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public short InterfaceVersion
|
public short InterfaceVersion
|
||||||
{
|
{
|
||||||
// set by the driver wizard
|
// set by the driver wizard
|
||||||
@@ -2095,8 +2034,6 @@ namespace ASCOM.Meade.net
|
|||||||
}
|
}
|
||||||
|
|
||||||
private DriveRates _trackingRate = DriveRates.driveSidereal;
|
private DriveRates _trackingRate = DriveRates.driveSidereal;
|
||||||
private string _precision;
|
|
||||||
private string _guidingStyle;
|
|
||||||
|
|
||||||
public DriveRates TrackingRate
|
public DriveRates TrackingRate
|
||||||
{
|
{
|
||||||
@@ -2367,11 +2304,6 @@ namespace ASCOM.Meade.net
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns true if there is a valid connection to the driver hardware
|
|
||||||
/// </summary>
|
|
||||||
private bool IsConnected { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Use this function to throw an exception if we aren't connected to the hardware
|
/// Use this function to throw an exception if we aren't connected to the hardware
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -2384,25 +2316,6 @@ namespace ASCOM.Meade.net
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Read the device configuration from the ASCOM Profile store
|
|
||||||
/// </summary>
|
|
||||||
private void ReadProfile()
|
|
||||||
{
|
|
||||||
ProfileProperties profileProperties = _sharedResourcesWrapper.ReadProfile();
|
|
||||||
_tl.Enabled = profileProperties.TraceLogger;
|
|
||||||
_comPort = profileProperties.ComPort;
|
|
||||||
_guideRate = profileProperties.GuideRateArcSecondsPerSecond;
|
|
||||||
_precision = profileProperties.Precision;
|
|
||||||
_guidingStyle = profileProperties.GuidingStyle.ToLower();
|
|
||||||
|
|
||||||
LogMessage("ReadProfile", $"Trace logger enabled: {_tl.Enabled}");
|
|
||||||
LogMessage("ReadProfile", $"Com Port: {_comPort}");
|
|
||||||
LogMessage("ReadProfile", $"Guide Rate: {_guideRate}");
|
|
||||||
LogMessage("ReadProfile", $"Precision: {_precision}");
|
|
||||||
LogMessage("ReadProfile", $"Guiding Style: {_guidingStyle}");
|
|
||||||
}
|
|
||||||
|
|
||||||
private void WriteProfile()
|
private void WriteProfile()
|
||||||
{
|
{
|
||||||
var profileProperties = new ProfileProperties
|
var profileProperties = new ProfileProperties
|
||||||
@@ -2414,18 +2327,6 @@ namespace ASCOM.Meade.net
|
|||||||
|
|
||||||
_sharedResourcesWrapper.WriteProfile(profileProperties);
|
_sharedResourcesWrapper.WriteProfile(profileProperties);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Log helper function that takes formatted strings and arguments
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="identifier"></param>
|
|
||||||
/// <param name="message"></param>
|
|
||||||
/// <param name="args"></param>
|
|
||||||
private void LogMessage(string identifier, string message, params object[] args)
|
|
||||||
{
|
|
||||||
var msg = string.Format(message, args);
|
|
||||||
_tl.LogMessage(identifier, msg);
|
|
||||||
}
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ namespace ASCOM.Meade.net
|
|||||||
[ServedClassName("Meade Generic")]
|
[ServedClassName("Meade Generic")]
|
||||||
[ClassInterface(ClassInterfaceType.None)]
|
[ClassInterface(ClassInterfaceType.None)]
|
||||||
[ComVisible(true)]
|
[ComVisible(true)]
|
||||||
public class Focuser : ReferenceCountedObjectBase, IFocuserV3
|
public class Focuser : MeadeTelescopeBase, IFocuserV3
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ASCOM DeviceID (COM ProgID) for this driver.
|
/// ASCOM DeviceID (COM ProgID) for this driver.
|
||||||
@@ -38,68 +38,32 @@ namespace ASCOM.Meade.net
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
//internal static string driverID = "ASCOM.Meade.net.Focuser";
|
//internal static string driverID = "ASCOM.Meade.net.Focuser";
|
||||||
private static readonly string DriverId = Marshal.GenerateProgIdForType(MethodBase.GetCurrentMethod().DeclaringType ?? throw new System.InvalidOperationException());
|
private static readonly string DriverId = Marshal.GenerateProgIdForType(MethodBase.GetCurrentMethod().DeclaringType ?? throw new System.InvalidOperationException());
|
||||||
// TODO Change the descriptive string for your driver then remove this line
|
|
||||||
/// <summary>
|
|
||||||
/// Driver description that displays in the ASCOM Chooser.
|
|
||||||
/// </summary>
|
|
||||||
private static readonly string DriverDescription = "Meade Generic";
|
|
||||||
|
|
||||||
private static string _comPort; // Variables to hold the currrent device configuration
|
|
||||||
|
|
||||||
private static int _backlashCompensation;
|
|
||||||
|
|
||||||
private static bool _reverseFocusDirection;
|
|
||||||
|
|
||||||
private static bool _useDynamicBreaking;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Private variable to hold an ASCOM Utilities object
|
/// Private variable to hold an ASCOM Utilities object
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private readonly IUtil _utilities;
|
private readonly IUtil _utilities;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Variable to hold the trace logger object (creates a diagnostic log file with information that you specify)
|
|
||||||
/// </summary>
|
|
||||||
private static TraceLogger _tl;
|
|
||||||
|
|
||||||
private readonly ISharedResourcesWrapper _sharedResourcesWrapper;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initializes a new instance of the <see cref="Meade.net"/> class.
|
/// Initializes a new instance of the <see cref="Meade.net"/> class.
|
||||||
/// Must be public for COM registration.
|
/// Must be public for COM registration.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Focuser()
|
public Focuser() : base()
|
||||||
{
|
{
|
||||||
//todo move this out to IOC
|
//todo move this out to IOC
|
||||||
var util = new Util(); //Initialise util object
|
var util = new Util(); //Initialise util object
|
||||||
_utilities = util;
|
_utilities = util;
|
||||||
_sharedResourcesWrapper = new SharedResourcesWrapper();
|
|
||||||
|
|
||||||
Initialise();
|
Initialise();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Focuser(IUtil util, ISharedResourcesWrapper sharedResourcesWrapper)
|
public Focuser(IUtil util, ISharedResourcesWrapper sharedResourcesWrapper) : base(sharedResourcesWrapper)
|
||||||
{
|
{
|
||||||
_utilities = util;
|
_utilities = util;
|
||||||
_sharedResourcesWrapper = sharedResourcesWrapper;
|
|
||||||
|
|
||||||
Initialise();
|
Initialise();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Initialise()
|
|
||||||
{
|
|
||||||
//todo move the TraceLogger out to a factory class.
|
|
||||||
_tl = new TraceLogger("", "Meade.Generic.focusser");
|
|
||||||
|
|
||||||
ReadProfile(); // Read device configuration from the ASCOM Profile store
|
|
||||||
|
|
||||||
IsConnected = false; // Initialise connected to false
|
|
||||||
|
|
||||||
LogMessage("Focuser", "Completed initialisation");
|
|
||||||
LogMessage("Focuser", $"Driver version: {DriverVersion}");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// PUBLIC COM INTERFACE IFocuserV3 IMPLEMENTATION
|
// PUBLIC COM INTERFACE IFocuserV3 IMPLEMENTATION
|
||||||
//
|
//
|
||||||
@@ -217,36 +181,6 @@ namespace ASCOM.Meade.net
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Description
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
_tl.LogMessage("Description Get", DriverDescription);
|
|
||||||
return DriverDescription;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public string DriverInfo
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
string driverInfo = $"{Description} .net driver. Version: {DriverVersion}";
|
|
||||||
LogMessage("DriverInfo Get", driverInfo);
|
|
||||||
return driverInfo;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public string DriverVersion
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
Version version = Assembly.GetExecutingAssembly().GetName().Version;
|
|
||||||
string driverVersion = $"{version.Major}.{version.Minor}.{version.Build}.{version.Revision}";
|
|
||||||
LogMessage("DriverVersion Get", driverVersion);
|
|
||||||
return driverVersion;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public short InterfaceVersion
|
public short InterfaceVersion
|
||||||
{
|
{
|
||||||
// set by the driver wizard
|
// set by the driver wizard
|
||||||
@@ -476,6 +410,7 @@ namespace ASCOM.Meade.net
|
|||||||
#region ASCOM Registration
|
#region ASCOM Registration
|
||||||
|
|
||||||
private static IProfileFactory _profileFactory;
|
private static IProfileFactory _profileFactory;
|
||||||
|
|
||||||
public static IProfileFactory ProfileFactory
|
public static IProfileFactory ProfileFactory
|
||||||
{
|
{
|
||||||
get => _profileFactory ?? (_profileFactory = new ProfileFactory());
|
get => _profileFactory ?? (_profileFactory = new ProfileFactory());
|
||||||
@@ -553,12 +488,7 @@ namespace ASCOM.Meade.net
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns true if there is a valid connection to the driver hardware
|
|
||||||
/// </summary>
|
|
||||||
private bool IsConnected { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Use this function to throw an exception if we aren't connected to the hardware
|
/// Use this function to throw an exception if we aren't connected to the hardware
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -570,36 +500,6 @@ namespace ASCOM.Meade.net
|
|||||||
throw new NotConnectedException($"Not connected to focuser when trying to execute: {message}");
|
throw new NotConnectedException($"Not connected to focuser when trying to execute: {message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Read the device configuration from the ASCOM Profile store
|
|
||||||
/// </summary>
|
|
||||||
private void ReadProfile()
|
|
||||||
{
|
|
||||||
var profileProperties = _sharedResourcesWrapper.ReadProfile();
|
|
||||||
_tl.Enabled = profileProperties.TraceLogger;
|
|
||||||
_comPort = profileProperties.ComPort;
|
|
||||||
_backlashCompensation = profileProperties.BacklashCompensation;
|
|
||||||
_reverseFocusDirection = profileProperties.ReverseFocusDirection;
|
|
||||||
_useDynamicBreaking = profileProperties.DynamicBreaking;
|
|
||||||
|
|
||||||
LogMessage("ReadProfile", $"Trace logger enabled: {_tl.Enabled}");
|
|
||||||
LogMessage("ReadProfile", $"Com Port: {_comPort}");
|
|
||||||
LogMessage("ReadProfile", $"Backlash Steps: {_backlashCompensation}");
|
|
||||||
LogMessage("ReadProfile", $"Dynamic breaking: {_useDynamicBreaking}");
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Log helper function that takes formatted strings and arguments
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="identifier"></param>
|
|
||||||
/// <param name="message"></param>
|
|
||||||
/// <param name="args"></param>
|
|
||||||
private static void LogMessage(string identifier, string message, params object[] args)
|
|
||||||
{
|
|
||||||
var msg = string.Format(message, args);
|
|
||||||
_tl.LogMessage(identifier, msg);
|
|
||||||
}
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -134,6 +134,7 @@
|
|||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="GarbageCollection.cs" />
|
<Compile Include="GarbageCollection.cs" />
|
||||||
<Compile Include="LocalServer.cs" />
|
<Compile Include="LocalServer.cs" />
|
||||||
|
<Compile Include="MeadeTelescopeBase.cs" />
|
||||||
<Compile Include="ProfileFactory.cs" />
|
<Compile Include="ProfileFactory.cs" />
|
||||||
<Compile Include="ProfileProperties.cs" />
|
<Compile Include="ProfileProperties.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
|||||||
@@ -0,0 +1,127 @@
|
|||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using ASCOM.Meade.net.Wrapper;
|
||||||
|
using ASCOM.Utilities;
|
||||||
|
|
||||||
|
namespace ASCOM.Meade.net
|
||||||
|
{
|
||||||
|
[ComVisible(false)]
|
||||||
|
public class MeadeTelescopeBase : ReferenceCountedObjectBase
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Variable to hold the trace logger object (creates a diagnostic log file with information that you specify)
|
||||||
|
/// </summary>
|
||||||
|
protected static TraceLogger _tl;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Driver description that displays in the ASCOM Chooser.
|
||||||
|
/// </summary>
|
||||||
|
protected static readonly string DriverDescription = "Meade Generic";
|
||||||
|
|
||||||
|
protected static string _comPort; // Variables to hold the currrent device configuration
|
||||||
|
protected static int _backlashCompensation;
|
||||||
|
protected static bool _reverseFocusDirection;
|
||||||
|
protected static bool _useDynamicBreaking;
|
||||||
|
protected double _guideRate;
|
||||||
|
protected string _precision;
|
||||||
|
protected string _guidingStyle;
|
||||||
|
|
||||||
|
protected readonly ISharedResourcesWrapper _sharedResourcesWrapper;
|
||||||
|
|
||||||
|
public MeadeTelescopeBase()
|
||||||
|
{
|
||||||
|
_sharedResourcesWrapper = new SharedResourcesWrapper();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MeadeTelescopeBase(ISharedResourcesWrapper sharedResourcesWrapper)
|
||||||
|
{
|
||||||
|
_sharedResourcesWrapper = sharedResourcesWrapper;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void Initialise()
|
||||||
|
{
|
||||||
|
var typeName = GetType().Name;
|
||||||
|
|
||||||
|
_tl = new TraceLogger("", $"Meade.Generic.{typeName}");
|
||||||
|
|
||||||
|
ReadProfile(); // Read device configuration from the ASCOM Profile store
|
||||||
|
|
||||||
|
IsConnected = false; // Initialise connected to false
|
||||||
|
|
||||||
|
LogMessage(typeName, "Completed initialisation");
|
||||||
|
LogMessage(typeName, $"Driver version: {DriverVersion}");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Read the device configuration from the ASCOM Profile store
|
||||||
|
/// </summary>
|
||||||
|
protected void ReadProfile()
|
||||||
|
{
|
||||||
|
var profileProperties = _sharedResourcesWrapper.ReadProfile();
|
||||||
|
_tl.Enabled = profileProperties.TraceLogger;
|
||||||
|
_comPort = profileProperties.ComPort;
|
||||||
|
_backlashCompensation = profileProperties.BacklashCompensation;
|
||||||
|
_reverseFocusDirection = profileProperties.ReverseFocusDirection;
|
||||||
|
_useDynamicBreaking = profileProperties.DynamicBreaking;
|
||||||
|
_guideRate = profileProperties.GuideRateArcSecondsPerSecond;
|
||||||
|
_precision = profileProperties.Precision;
|
||||||
|
_guidingStyle = profileProperties.GuidingStyle.ToLower();
|
||||||
|
|
||||||
|
LogMessage("ReadProfile", $"Trace logger enabled: {_tl.Enabled}");
|
||||||
|
LogMessage("ReadProfile", $"Com Port: {_comPort}");
|
||||||
|
LogMessage("ReadProfile", $"Backlash Steps: {_backlashCompensation}");
|
||||||
|
LogMessage("ReadProfile", $"Dynamic breaking: {_useDynamicBreaking}");
|
||||||
|
LogMessage("ReadProfile", $"Guide Rate: {_guideRate}");
|
||||||
|
LogMessage("ReadProfile", $"Precision: {_precision}");
|
||||||
|
LogMessage("ReadProfile", $"Guiding Style: {_guidingStyle}");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Log helper function that takes formatted strings and arguments
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="identifier"></param>
|
||||||
|
/// <param name="message"></param>
|
||||||
|
/// <param name="args"></param>
|
||||||
|
public static void LogMessage(string identifier, string message, params object[] args)
|
||||||
|
{
|
||||||
|
var msg = String.Format(message, args);
|
||||||
|
_tl.LogMessage(identifier, msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns true if there is a valid connection to the driver hardware
|
||||||
|
/// </summary>
|
||||||
|
protected bool IsConnected { get; set; }
|
||||||
|
|
||||||
|
public string Description
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
_tl.LogMessage("Description Get", DriverDescription);
|
||||||
|
return DriverDescription;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string DriverInfo
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
string driverInfo = $"{Description} .net driver. Version: {DriverVersion}";
|
||||||
|
LogMessage("DriverInfo Get", driverInfo);
|
||||||
|
return driverInfo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string DriverVersion
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
Version version = Assembly.GetExecutingAssembly().GetName().Version;
|
||||||
|
string driverVersion = $"{version.Major}.{version.Minor}.{version.Build}.{version.Revision}";
|
||||||
|
LogMessage("DriverVersion Get", driverVersion);
|
||||||
|
return driverVersion;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user