Skip to content

Commit

Permalink
Added application startup logging for ViewModel and Device Manager cl…
Browse files Browse the repository at this point in the history
…asses
  • Loading branch information
astroman133 committed Jul 20, 2022
1 parent 7041571 commit f1afc36
Show file tree
Hide file tree
Showing 26 changed files with 280 additions and 12 deletions.
3 changes: 3 additions & 0 deletions DeviceHub/App.config
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
<setting name="ServerLoggingEnabled" serializeAs="String">
<value>False</value>
</setting>
<setting name="DeviceHubAppLoggingEnabled" serializeAs="String">
<value>False</value>
</setting>
</ASCOM.DeviceHub.Properties.Settings>
</applicationSettings>
</configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -1084,11 +1084,16 @@ private static bool ProcessArguments( string[] args )
retval = false;

break;
case "-enableapplogging":
case @"/enableapplogging":
Logger.LogMessage( msgId, "Enabling application startup logging." );
Globals.ForceAppLogging = true;
break;

default:
string msg = $"Unknown argument: {args[0]}";
Logger.LogMessage( msgId, msg );
msg += "\nValid are : -register, -unregister, unregister_full, and -embedding";
msg += "\nValid are : -register, -unregister, unregister_full, -embedding, and -enableapplogging";
string caption = GetAssemblyTitle();
MessageBox.Show( msg, caption, MessageBoxButton.OK, MessageBoxImage.Exclamation );

Expand Down
31 changes: 27 additions & 4 deletions DeviceHub/Business Object Classes/Globals.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
using System;
using System.Threading.Tasks;

using ASCOM.Utilities;

namespace ASCOM.DeviceHub
{
public static class Globals
Expand All @@ -17,10 +19,10 @@ static Globals()
public const double DegRad = Math.PI / 180.0;
public const double UTC_SECS_PER_SIDEREAL_SEC = 0.9972695677;

public const double DEG_TO_RAD = ( 2.0 * Math.PI ) / 360.0; // 0.017453 radians per degree
public const double RAD_TO_DEG = 1.0 / DEG_TO_RAD; // 57.29578 degrees per radian
public const double HRS_TO_RAD = ( 2.0 * Math.PI ) / 24.0; // 0.26180 radians per hour
public const double RAD_TO_HRS = 1.0 / HRS_TO_RAD; // 3.81972 hours per radian
public const double DEG_TO_RAD = ( 2.0 * Math.PI ) / 360.0; // 0.017453 radians per degree
public const double RAD_TO_DEG = 1.0 / DEG_TO_RAD; // 57.29578 degrees per radian
public const double HRS_TO_RAD = ( 2.0 * Math.PI ) / 24.0; // 0.26180 radians per hour
public const double RAD_TO_HRS = 1.0 / HRS_TO_RAD; // 3.81972 hours per radian
public const double HRS_TO_DEG = 15.0; // 15 degrees per hour

public const double SCOPE_FAST_UPDATE_MIN = 0.5;
Expand Down Expand Up @@ -67,5 +69,26 @@ static Globals()
public static DevHubTelescopeStatus LatestRawTelescopeStatus { get; set; }

public static TaskScheduler UISyncContext { get; set; }

public static bool ForceAppLogging { get; set; }

private static TraceLogger _appLogger = null;

public static TraceLogger AppLogger
{
get
{
if ( _appLogger == null )
{
_appLogger = new Utilities.TraceLogger( "", "DeviceHub.App" )
{
Enabled = Properties.Settings.Default.DeviceHubAppLoggingEnabled || ForceAppLogging,
IdentifierWidth = 50
};
}

return _appLogger;
}
}
}
}
15 changes: 15 additions & 0 deletions DeviceHub/DeviceManagers/DeviceManagerBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,18 @@ public class DeviceManagerBase : NormalizedValueBase, INotifyPropertyChanged

public DeviceManagerBase( DeviceTypeEnum deviceType )
{
string caller = $"DeviceManagerBase ctor for {deviceType}";

LogAppMessage( "Initializing Instance constructor", caller );

DeviceType = deviceType;

ThrowOnInvalidPropertyName = false;
_messageBoxService = null;

Exceptions = new PropertyExceptions();

LogAppMessage( "Instance constructor initialization complete.", caller );
}

public Exception GetLastPropertyException( [System.Runtime.CompilerServices.CallerMemberName] string propName = "???" )
Expand Down Expand Up @@ -311,6 +317,15 @@ private string GetMessageTypeName( ActivityMessageTypes msgType )

#endregion

#region Application Logging Methods

protected static void LogAppMessage( string message, [System.Runtime.CompilerServices.CallerMemberName] string callerName = "???" )
{
Globals.AppLogger.LogMessage( callerName, message );
}

#endregion Application Logging Methods

#region Message Box Support Members

private IMessageBoxService _messageBoxService;
Expand Down
12 changes: 12 additions & 0 deletions DeviceHub/DeviceManagers/DomeManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ public static DomeManager Instance

static DomeManager()
{
string caller = "DomeManager static ctor";

LogAppMessage( "Initialization started", caller );

DomeID = "";
}

Expand Down Expand Up @@ -74,6 +78,10 @@ public static void SetDomeID( string id )
private DomeManager()
: base( DeviceTypeEnum.Dome )
{
string caller = "DomeManager instance ctor";

LogAppMessage( "Initializing Instance constructor", caller );

IsConnected = false;
Capabilities = null;
Parameters = null;
Expand All @@ -88,10 +96,14 @@ private DomeManager()
PollingPeriod = POLLING_INTERVAL_NORMAL;
PollingChange = new ManualResetEvent( false );

LogAppMessage( "Registering message handlers.", caller );

Messenger.Default.Register<TelescopeParametersUpdatedMessage>( this, ( action ) => UpdateTelescopeParameters( action ) );
Messenger.Default.Register<TelescopeStatusUpdatedMessage>( this, ( action ) => UpdateTelescopeStatus( action ) );
Messenger.Default.Register<DeviceDisconnectedMessage>( this, ( action ) => ClearTelescopeStatus( action ) );
Messenger.Default.Register<SlewInProgressMessage>( this, ( action ) => InitiateSlavedSlew( action ) );

LogAppMessage( "Instance constructor initialization complete.", caller );
}

#endregion Instance Constructor
Expand Down
9 changes: 9 additions & 0 deletions DeviceHub/DeviceManagers/FocuserManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,11 @@ public static FocuserManager Instance

static FocuserManager()
{
string caller = "FocuserManager static ctor";

LogAppMessage( "Initialization started.", caller );
FocuserID = "";
LogAppMessage( "Initialization completed.", caller );
}

public static void SetFocuserID( string id )
Expand Down Expand Up @@ -63,6 +67,9 @@ public static void SetFocuserID( string id )
public FocuserManager()
: base( DeviceTypeEnum.Focuser )
{
string caller = "FocuserManager instance ctor";
LogAppMessage( "Initializing Instance constructor", caller );

IsConnected = false;
Parameters = null;
Status = null;
Expand All @@ -71,6 +78,8 @@ public FocuserManager()
MoveInProgress = false;
PollingPeriod = POLLING_PERIOD_NORMAL;
PollingChange = new ManualResetEvent( false );

LogAppMessage( "Instance constructor initialization complete.", caller );
}

#endregion Instance Constructor
Expand Down
21 changes: 20 additions & 1 deletion DeviceHub/DeviceManagers/TelescopeManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,23 @@ public static TelescopeManager Instance

static TelescopeManager()
{
string caller = "TelescopeManager static ctor";
TelescopeID = "";
LogAppMessage( "Initialization started.", caller );

AstroUtils = new AstroUtils();
try
{
LogAppMessage( "Creating AstroUtils instance", caller );

AstroUtils = new AstroUtils();
}
catch (Exception xcp)
{
string msg = $"Unable to create an instance of AstroUtils. Details follow:\r\n\r\n{xcp}";
LogAppMessage( msg, "TelescopeManager static constructor" );
}

LogAppMessage( "Initialization complete", caller );
}

public static void SetTelescopeID( string id )
Expand Down Expand Up @@ -93,6 +107,9 @@ private DateTime PulseGuideEnd
private TelescopeManager()
: base( DeviceTypeEnum.Telescope )
{
string caller = "TelescopeManager instance ctor";
LogAppMessage( "Initializing Instance constructor", caller );

IsConnected = false;
Capabilities = null;
Parameters = null;
Expand All @@ -105,6 +122,8 @@ private TelescopeManager()
PollingChange = new ManualResetEvent( false );

PreviousSlewInProgressMessage = new SlewInProgressMessage( false );

LogAppMessage( "Instance constructor initialization complete.", caller );
}

#endregion Instance Constructor
Expand Down
11 changes: 10 additions & 1 deletion DeviceHub/Properties/Settings.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions DeviceHub/Properties/Settings.settings
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,8 @@
<Setting Name="ServerLoggingEnabled" Type="System.Boolean" Scope="Application">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="DeviceHubAppLoggingEnabled" Type="System.Boolean" Scope="Application">
<Value Profile="(Default)">False</Value>
</Setting>
</Settings>
</SettingsFile>
9 changes: 9 additions & 0 deletions DeviceHub/ViewModel Classes/DeviceHubViewModelBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,15 @@ protected MessageBoxResult ShowMessage( string text, string caption, MessageBoxB

#endregion MessageBox Helpers

#region App Logger Members

protected static void LogAppMessage( string message, [System.Runtime.CompilerServices.CallerMemberName] string callerName = "???" )
{
Globals.AppLogger.LogMessage( callerName, message );
}

#endregion App Logger Members

#region INotifyPropertyChanged Members

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,15 @@ public class DomeCapabilitiesViewModel : DeviceHubViewModelBase
{
public DomeCapabilitiesViewModel()
{
string caller = "DomeCapabilitiesViewModel ctor";
LogAppMessage( "Initializing Instance constructor", caller );

LogAppMessage( "Registering message handlers", caller );

Messenger.Default.Register<DomeCapabilitiesUpdatedMessage>( this, ( action ) => UpdateCapabilities( action ) );
Messenger.Default.Register<DeviceDisconnectedMessage>( this, ( action ) => InvalidateCapabilities( action ) );

LogAppMessage( "Initialization complete", caller );
}

private DomeCapabilities _capabilities;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,23 @@ public class DomeMotionViewModel : DeviceHubViewModelBase

public DomeMotionViewModel( IDomeManager domeManager )
{
string caller = "DomeMotionViewModel ctor";
LogAppMessage( "Initializing Instance constructor", caller );

_domeManager = domeManager;
_status = null;
_slewAmounts = new DomeSlewAmounts();
_selectedSlewAmount = _slewAmounts[0];

LogAppMessage( "Registering message handlers", caller );

Messenger.Default.Register<DomeCapabilitiesUpdatedMessage>( this, ( action ) => DomeCapabilitiesUpdated( action ) );
Messenger.Default.Register<DomeParametersUpdatedMessage>( this, ( action ) => DomeParametersUpdated( action ) );
Messenger.Default.Register<DeviceDisconnectedMessage>( this, ( action ) => InvalidateDeviceData( action ) );
Messenger.Default.Register<DomeSlavedChangedMessage>( this, ( action ) => ChangeSlavedState( action ) );
RegisterStatusUpdateMessage( true );

LogAppMessage( "Initialization complete", caller );
}

#region Change Notification Properties
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,16 @@ public class DomeParametersViewModel : DeviceHubViewModelBase
{
public DomeParametersViewModel()
{
string caller = "DomeParametersViewModel ctor";

LogAppMessage( "Initializing Instance constructor", caller );

LogAppMessage( "Registering message handlers", caller );

Messenger.Default.Register<DomeParametersUpdatedMessage>( this, ( action ) => UpdateParameters( action ) );
Messenger.Default.Register<DeviceDisconnectedMessage>( this, ( action ) => InvalidateParameters( action ) );

LogAppMessage( "Initialization complete", caller );
}

private DomeParameters _parameters;
Expand Down
8 changes: 8 additions & 0 deletions DeviceHub/ViewModel Classes/Dome ViewModels/DomeViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,27 @@ public class DomeViewModel : DeviceHubViewModelBase

public DomeViewModel( IDomeManager domeManager )
{
string caller = "DomeViewModel ctor";
LogAppMessage( "Initializing Instance constructor", caller );

DomeManager = domeManager;
_isConnected = false;
_status = null;

LogAppMessage( "Creating child view models", caller );

ParametersVm = new DomeParametersViewModel();
CapabilitiesVm = new DomeCapabilitiesViewModel();
MotionVm = new DomeMotionViewModel( DomeManager );

LogAppMessage( "Registering message handlers", caller );

Messenger.Default.Register<ObjectCountMessage>( this, ( action ) => UpdateObjectsCount( action ) );
Messenger.Default.Register<DomeIDChangedMessage>( this, ( action ) => DomeIDChanged( action ) );
Messenger.Default.Register<DeviceDisconnectedMessage>( this, ( action ) => DeviceDisconnected( action ) );
RegisterStatusUpdateMessage( true );

LogAppMessage( "Initialization complete", caller );
}

#region Public Properties
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@ private bool IsValidAmount

public FocuserControlViewModel( IFocuserManager focuserManager )
{
string caller = "FocuserControlViewModel ctor";
LogAppMessage( "Initializing Instance constructor", caller );

_focuserManager = focuserManager;
_status = null;
_temperatureDisplayDegF = false;
Expand All @@ -76,11 +79,15 @@ public FocuserControlViewModel( IFocuserManager focuserManager )
TargetPosition = "0";
TargetAmount = "0";

LogAppMessage( "Registering message handlers", caller );

Messenger.Default.Register<FocuserParametersUpdatedMessage>( this, ( action ) => FocuserParametersUpdated( action ) );
Messenger.Default.Register<DeviceDisconnectedMessage>( this, ( action ) => InvalidateDeviceData( action ) );
Messenger.Default.Register<FocuserMoveAmountMessage>( this, ( action ) => UpdateAccumulatedMoves( action ) );
Messenger.Default.Register<FocuserMoveCompletedMessage>( this, ( action ) => FocuserMoveCompleted() );
RegisterStatusUpdateMessage( true );

LogAppMessage( "Initialization complete", caller );
}

#region Change Notification Properties
Expand Down
Loading

0 comments on commit f1afc36

Please sign in to comment.