TCP Work, Log cleanup, Message parsing

This commit is contained in:
2022-11-05 13:50:27 -05:00
parent 57ca80df77
commit 2176ca4488
14 changed files with 200 additions and 158 deletions
@@ -5,6 +5,8 @@ using System.Linq;
using Foundation;
using UIKit;
using Serilog;
using Serilog.Events;
namespace QControlKitXamDemo.iOS
{
// The UIApplicationDelegate for the application. This class is responsible for launching the
@@ -23,7 +25,7 @@ namespace QControlKitXamDemo.iOS
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init();
Log.Logger = new LoggerConfiguration().WriteTo.NSLog().MinimumLevel.Verbose().CreateLogger();
Log.Logger = new LoggerConfiguration().WriteTo.NSLog(outputTemplate: "[{Level}] ({SourceContext}) {Message}{NewLine}{Exception}").MinimumLevel.Verbose().CreateLogger();
LoadApplication(new App());
return base.FinishedLaunching(app, options);
@@ -7,6 +7,7 @@ using Xamarin.Forms;
using QControlKit.Events;
using QControlKit.Constants;
using Serilog;
namespace QControlKitXamDemo
{
@@ -64,6 +65,18 @@ namespace QControlKitXamDemo
});
}
void updateCuePropertes(QCue cue)
{
cue.workspace.fetchDefaultPropertiesForCue(cue);
if (cue.cues.Count > 0)
{
foreach (QCue childCue in cue.cues)
{
childCue.workspace.fetchDefaultPropertiesForCue(childCue);
}
}
}
void Workspace_WorkspaceUpdated(object source, QWorkspaceUpdatedArgs args)
{
if(connectedWorkspace.cueLists.Count > 0)
@@ -71,6 +84,7 @@ namespace QControlKitXamDemo
List<Task> cueAddTasks = new List<Task>();
foreach(var aCue in connectedWorkspace.cueLists)
{
updateCuePropertes(aCue);
Grid cueGrid = cueToGrid(aCue);
cueGridDict.Add(aCue.uid, cueGrid);
MainThread.InvokeOnMainThreadAsync(() =>
@@ -95,7 +109,7 @@ namespace QControlKitXamDemo
HorizontalOptions = LayoutOptions.StartAndExpand,
VerticalTextAlignment = TextAlignment.Center,
};
cueLabel.SetBinding(Label.TextProperty, "status", BindingMode.OneWay);
cueLabel.SetBinding(Label.TextProperty, "name", BindingMode.OneWay);
var cueBackground = new Frame
{
BindingContext = qCueViewModel,
@@ -30,7 +30,7 @@ namespace QControlKitXamDemo
qBrowserViewModel.autoUpdate = false;
QWorkspace selectedWorkspace = (e.SelectedItem as QWorkspaceViewModel).workspace;
Log.Debug($"[demo] workspace: {selectedWorkspace.nameWithoutPathExtension} has been selected");
Log.Debug($"workspace: {selectedWorkspace.nameWithoutPathExtension} has been selected");
((ListView)sender).SelectedItem = null;
if (selectedWorkspace.hasPasscode)
@@ -13,11 +13,15 @@ namespace QControlKitXamDemo.ViewModels
{
public class QBrowserViewModel : INotifyPropertyChanged
{
private ILogger _log = Log.Logger.ForContext<QBrowserViewModel>();
QBrowser browser;
public event PropertyChangedEventHandler PropertyChanged;
public bool autoUpdate = false;
public ObservableCollection<QServerViewModel> ServersGrouped { get; set; }
bool connected = false;
public QBrowserViewModel(QBrowser browser)
{
this.browser = browser;
@@ -31,9 +35,10 @@ namespace QControlKitXamDemo.ViewModels
{
if (autoUpdate)
{
_log.Verbose($"Auto Update is enabled running probe");
Device.BeginInvokeOnMainThread(() =>
{
Log.Debug("[QBrowserViewModel] QBrowser probe triggered");
_log.Debug("QBrowser probe triggered");
this.browser.ProbeForQLabInstances();
});
}
@@ -47,7 +52,7 @@ namespace QControlKitXamDemo.ViewModels
{
Device.BeginInvokeOnMainThread(() =>
{
Log.Debug($"[QBrowserViewModel] adding server: {args.server.description}");
_log.Debug($"adding server: {args.server.description}");
ServersGrouped.Add(new QServerViewModel(args.server));
});
}
@@ -70,7 +75,7 @@ namespace QControlKitXamDemo.ViewModels
{
Device.BeginInvokeOnMainThread(() =>
{
Log.Debug($"[QBrowserViewModel] removing server: {args.server.description}");
_log.Debug($"removing server: {args.server.description}");
ServersGrouped.Remove(serverToRemove);
});
}
@@ -85,7 +90,7 @@ namespace QControlKitXamDemo.ViewModels
{
if (!autoUpdate)
{
Log.Debug("[QBrowserViewModel] Manual Scan Initiated");
_log.Debug("Manual Scan Initiated");
browser.ProbeForQLabInstances();
}
}
@@ -11,6 +11,8 @@ namespace QControlKitXamDemo.ViewModels
{
public class QCueViewModel : INotifyPropertyChanged
{
private ILogger _log = Log.Logger.ForContext<QCueViewModel>();
QCue cue;
bool isSelected = false;
public event PropertyChangedEventHandler PropertyChanged;
@@ -18,16 +20,20 @@ namespace QControlKitXamDemo.ViewModels
public QCueViewModel(QCue cue, bool checkPlayback)
{
this.cue = cue;
if(checkPlayback)
if (checkPlayback)
{
this.cue.workspace.CueListChangedPlaybackPosition += Workspace_CueListChangedPlaybackPosition;
}
this.cue.CuePropertiesUpdated += OnCuePropertiesUpdated;
}
private void OnCuePropertiesUpdated(object source, QCuePropertiesUpdatedArgs args)
{
foreach(var property in args.properties)
_log.Debug($"properties updated from cue");
foreach (var property in args.properties)
{
Log.Debug($"[cueviewmodel] property <{property}> has been updated for cue {name}.");
_log.Debug($"property <{property}> has been updated for cue {name}.");
if (property.Equals(QOSCKey.Name) || property.Equals(QOSCKey.ListName))
{
OnPropertyChanged("name");
@@ -5,11 +5,14 @@ using Xamarin.Forms;
using QControlKit;
using QControlKit.Events;
using Serilog;
namespace QControlKitXamDemo.ViewModels
{
public class QServerViewModel : ObservableCollection<QWorkspaceViewModel>, INotifyPropertyChanged
{
private ILogger _log = Log.Logger.ForContext<QServerViewModel>();
QServer server;
public new event PropertyChangedEventHandler PropertyChanged;
public string name