-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathMainPage.xaml.cs
69 lines (56 loc) · 1.65 KB
/
MainPage.xaml.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
using System;
using System.Threading.Tasks;
using Windows.UI.Core;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Waher.Events;
// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
namespace ActuatorMqtt
{
/// <summary>
/// An empty page that can be used on its own or navigated to within a Frame.
/// </summary>
public sealed partial class MainPage : Page
{
private static MainPage instance = null;
private Events events;
public MainPage()
{
this.InitializeComponent();
this.events = new Events();
Log.Register(this.events);
if (instance is null)
instance = this;
}
private void Page_Unloaded(object sender, RoutedEventArgs e)
{
Log.Unregister(this.events);
this.events = null;
if (instance == this)
instance = null;
}
public static MainPage Instance
{
get { return instance; }
}
public async void AddLogMessage(string Message)
{
DateTime TP = DateTime.Now;
await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
this.EventsPanel.Children.Insert(0, new TextBlock() { Text = Message, TextWrapping = TextWrapping.Wrap });
while (this.EventsPanel.Children.Count > 1000)
this.EventsPanel.Children.RemoveAt(1000);
});
}
private void Relay_Click(object sender, RoutedEventArgs e)
{
bool On = this.Relay.IsChecked.HasValue && this.Relay.IsChecked.Value;
Task.Run(() => App.Instance.SetOutput(On, null));
}
internal async Task OutputSet(bool On)
{
await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => this.Relay.IsChecked = On);
}
}
}