diff --git a/Meade.net.Focuser.UnitTests/FocuserUnitTests.cs b/Meade.net.Focuser.UnitTests/FocuserUnitTests.cs index 4e68ce4..4fab074 100644 --- a/Meade.net.Focuser.UnitTests/FocuserUnitTests.cs +++ b/Meade.net.Focuser.UnitTests/FocuserUnitTests.cs @@ -181,7 +181,7 @@ namespace Meade.net.Focuser.UnitTests _sharedResourcesWrapperMock.Setup(x => x.FirmwareVersion).Returns(firmware); _focuser.Connected = true; - _sharedResourcesWrapperMock.Verify(x => x.Connect("Serial", It.IsAny()), Times.Once); + _sharedResourcesWrapperMock.Verify(x => x.Connect("Serial", It.IsAny(), It.IsAny()), Times.Once); } @@ -189,20 +189,20 @@ namespace Meade.net.Focuser.UnitTests public void Connected_Set_SettingTrueWhenTrue_ThenDoesNothing() { ConnectFocuser(); - _sharedResourcesWrapperMock.Verify(x => x.Connect(It.IsAny(), It.IsAny()), Times.Once); + _sharedResourcesWrapperMock.Verify(x => x.Connect(It.IsAny(), It.IsAny(), It.IsAny()), Times.Once); //act _focuser.Connected = true; //assert - _sharedResourcesWrapperMock.Verify(x => x.Connect(It.IsAny(), It.IsAny()), Times.Once); + _sharedResourcesWrapperMock.Verify(x => x.Connect(It.IsAny(), It.IsAny(), It.IsAny()), Times.Once); } [Test] public void Connected_Set_SettingFalseWhenTrue_ThenDisconnects() { ConnectFocuser(); - _sharedResourcesWrapperMock.Verify(x => x.Connect(It.IsAny(), It.IsAny()), Times.Once); + _sharedResourcesWrapperMock.Verify(x => x.Connect(It.IsAny(), It.IsAny(), It.IsAny()), Times.Once); //act _focuser.Connected = false; diff --git a/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs b/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs index 26b0bc5..7d5f056 100644 --- a/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs +++ b/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs @@ -56,7 +56,7 @@ namespace Meade.net.Telescope.UnitTests SameDevice = 1 }; - _sharedResourcesWrapperMock.Setup(x => x.Connect("Serial", It.IsAny())).Returns( () => _connectionInfo ); + _sharedResourcesWrapperMock.Setup(x => x.Connect("Serial", It.IsAny(), It.IsAny())).Returns( () => _connectionInfo ); _sharedResourcesWrapperMock.Setup(x => x.ReadProfile()).Returns(_profileProperties); @@ -384,7 +384,7 @@ namespace Meade.net.Telescope.UnitTests _sharedResourcesWrapperMock.Setup(x => x.FirmwareVersion).Returns(firmware); _telescope.Connected = true; - _sharedResourcesWrapperMock.Verify( x => x.Connect("Serial", It.IsAny()), Times.Once); + _sharedResourcesWrapperMock.Verify( x => x.Connect("Serial", It.IsAny(), It.IsAny()), Times.Once); _sharedResourcesWrapperMock.Verify(x => x.SendString("#:GZ#"), Times.Once); _sharedResourcesWrapperMock.Verify(x => x.SendBlind($"#:Rg{_profileProperties.GuideRateArcSecondsPerSecond:00.0}#"),Times.Once); @@ -400,7 +400,7 @@ namespace Meade.net.Telescope.UnitTests _sharedResourcesWrapperMock.Setup(x => x.FirmwareVersion).Returns(firmware); _telescope.Connected = true; - _sharedResourcesWrapperMock.Verify(x => x.Connect("Serial", It.IsAny()), Times.Once); + _sharedResourcesWrapperMock.Verify(x => x.Connect("Serial", It.IsAny(), It.IsAny()), Times.Once); _sharedResourcesWrapperMock.Verify(x => x.SendString("#:GZ#"), Times.Never); _sharedResourcesWrapperMock.Verify(x => x.SendBlind($"#:Rg{_profileProperties.GuideRateArcSecondsPerSecond:00.0}#"), Times.Never); } @@ -410,20 +410,20 @@ namespace Meade.net.Telescope.UnitTests public void Connected_Set_SettingTrueWhenTrue_ThenDoesNothing() { ConnectTelescope(); - _sharedResourcesWrapperMock.Verify( x => x.Connect(It.IsAny(), It.IsAny()),Times.Once); + _sharedResourcesWrapperMock.Verify( x => x.Connect(It.IsAny(), It.IsAny(), It.IsAny()),Times.Once); //act _telescope.Connected = true; //assert - _sharedResourcesWrapperMock.Verify(x => x.Connect(It.IsAny(), It.IsAny()), Times.Once); + _sharedResourcesWrapperMock.Verify(x => x.Connect(It.IsAny(), It.IsAny(), It.IsAny()), Times.Once); } [Test] public void Connected_Set_SettingFalseWhenTrue_ThenDisconnects() { ConnectTelescope(); - _sharedResourcesWrapperMock.Verify(x => x.Connect(It.IsAny(), It.IsAny()), Times.Once); + _sharedResourcesWrapperMock.Verify(x => x.Connect(It.IsAny(), It.IsAny(), It.IsAny()), Times.Once); //act _telescope.Connected = false; diff --git a/Meade.net.Telescope/Telescope.cs b/Meade.net.Telescope/Telescope.cs index a5f6141..c366a9c 100644 --- a/Meade.net.Telescope/Telescope.cs +++ b/Meade.net.Telescope/Telescope.cs @@ -406,7 +406,7 @@ namespace ASCOM.Meade.net ReadProfile(); LogMessage("Connected Set", "Connecting to port {0}", _comPort); - var connectionInfo = _sharedResourcesWrapper.Connect("Serial", DriverId); + var connectionInfo = _sharedResourcesWrapper.Connect("Serial", DriverId, _tl); try { LogMessage("Connected Set", $"Connected to port {_comPort}. Product: {_sharedResourcesWrapper.ProductName} Version:{_sharedResourcesWrapper.FirmwareVersion}"); diff --git a/Meade.net.UnitTests/SharedResourcesUnitTests.cs b/Meade.net.UnitTests/SharedResourcesUnitTests.cs index 27c6bd7..03d9e46 100644 --- a/Meade.net.UnitTests/SharedResourcesUnitTests.cs +++ b/Meade.net.UnitTests/SharedResourcesUnitTests.cs @@ -13,6 +13,7 @@ namespace Meade.net.UnitTests public class SharedResourcesUnitTests { private Mock _serialMock; + private Mock _traceLoggerMock; [SetUp] public void Setup() @@ -20,6 +21,8 @@ namespace Meade.net.UnitTests _serialMock = new Mock(); _serialMock.SetupAllProperties(); + _traceLoggerMock = new Mock(); + SharedResources.SharedSerial = _serialMock.Object; } @@ -174,7 +177,7 @@ namespace Meade.net.UnitTests [TestCase("Carrier Pigeon")] public void Connect_WhenDeviceIdIsNotSerial_ThenThrowsException( string deviceId) { - var result = Assert.Throws( () => { SharedResources.Connect(deviceId, string.Empty); } ); + var result = Assert.Throws( () => { SharedResources.Connect(deviceId, string.Empty, _traceLoggerMock.Object); } ); Assert.That( result.Message, Is.EqualTo($"deviceId {deviceId} not currently supported") ); } @@ -214,7 +217,7 @@ namespace Meade.net.UnitTests _serialMock.Setup(x => x.Transmit(":GVP#")).Callback(() => { serialPortReturn = ":GVP#"; }); _serialMock.Setup(x => x.ReceiveTerminated("#")).Returns( () => serialPortReturn); - var result = Assert.Throws(() => { SharedResources.Connect(deviceId, string.Empty); }); + var result = Assert.Throws(() => { SharedResources.Connect(deviceId, string.Empty, _traceLoggerMock.Object); }); Assert.That(result.Message, Is.EqualTo("Serial port is looping back data, something is wrong with the hardware.")); } @@ -251,7 +254,7 @@ namespace Meade.net.UnitTests _serialMock.Setup(x => x.Transmit(":GVP#")).Callback(() => { }); _serialMock.Setup(x => x.ReceiveTerminated("#")).Returns(() => throw new Exception("Testerror")); - var connectionResult = SharedResources.Connect(deviceId, string.Empty); + var connectionResult = SharedResources.Connect(deviceId, string.Empty, _traceLoggerMock.Object); try { @@ -301,7 +304,7 @@ namespace Meade.net.UnitTests _serialMock.Setup(x => x.Transmit(":GVN#")).Callback(() => { serialPortReturn = TelescopeList.Autostar497_43Eg; }); _serialMock.Setup(x => x.ReceiveTerminated("#")).Returns(() => serialPortReturn); - var connectionResult = SharedResources.Connect(deviceId, string.Empty); + var connectionResult = SharedResources.Connect(deviceId, string.Empty, _traceLoggerMock.Object); try { Assert.That(connectionResult.SameDevice, Is.EqualTo(1)); diff --git a/Meade.net.focuser/Focuser.cs b/Meade.net.focuser/Focuser.cs index e92e611..33ac3e4 100644 --- a/Meade.net.focuser/Focuser.cs +++ b/Meade.net.focuser/Focuser.cs @@ -187,7 +187,7 @@ namespace ASCOM.Meade.net try { ReadProfile(); - _sharedResourcesWrapper.Connect("Serial", DriverId); + _sharedResourcesWrapper.Connect("Serial", DriverId, _tl); try { IsConnected = true; diff --git a/Meade.net/SharedResources.cs b/Meade.net/SharedResources.cs index 5b5b23b..2d73b72 100644 --- a/Meade.net/SharedResources.cs +++ b/Meade.net/SharedResources.cs @@ -243,7 +243,7 @@ namespace ASCOM.Meade.net /// /// /// - public static ConnectionInfo Connect(string deviceId, string driverId) + public static ConnectionInfo Connect(string deviceId, string driverId, ITraceLogger traceLogger) { lock (LockObject) { @@ -273,14 +273,16 @@ namespace ASCOM.Meade.net ProductName = SendString(":GVP#"); FirmwareVersion = SendString(":GVN#"); } - catch (Exception) + catch (Exception ex) { + traceLogger.LogIssue("Connect", $"Error getting telescope information \"{ex.Message}\" setting to LX200 Classic mode."); ProductName = TelescopeList.LX200CLASSIC; FirmwareVersion = "Unknown"; } if (ProductName == ":GVP") { + traceLogger.LogIssue("Connect", "Serial port is looping back data, something is wrong with the hardware."); //This means that the serial port is looping back what's been sent, something is very wrong. SharedSerial.Connected = false; diff --git a/Meade.net/Wrapper/SharedResourcesWrapper.cs b/Meade.net/Wrapper/SharedResourcesWrapper.cs index 8220fbe..b9fa801 100644 --- a/Meade.net/Wrapper/SharedResourcesWrapper.cs +++ b/Meade.net/Wrapper/SharedResourcesWrapper.cs @@ -1,10 +1,11 @@ using System; +using ASCOM.Utilities.Interfaces; namespace ASCOM.Meade.net.Wrapper { public interface ISharedResourcesWrapper { - ConnectionInfo Connect(string deviceId, string driverId); + ConnectionInfo Connect(string deviceId, string driverId, ITraceLogger traceLogger); void Disconnect(string deviceId, string driverId); string ProductName { get; } @@ -29,9 +30,9 @@ namespace ASCOM.Meade.net.Wrapper public class SharedResourcesWrapper : ISharedResourcesWrapper { - public ConnectionInfo Connect(string deviceId, string driverId) + public ConnectionInfo Connect(string deviceId, string driverId, ITraceLogger traceLogger) { - return SharedResources.Connect(deviceId, driverId); + return SharedResources.Connect(deviceId, driverId, traceLogger); } public void Disconnect(string deviceId, string driverId)