public void ProgramStarted() { DebugOnly.Print("Program started!"); // Initialize screen WindowManager.Init(); // Set scan window scanWindow.SetText("Please scan your NFC card now..."); scanWindow.SetNegativeButton("Cancel", delegate { scanWindow.Dismiss(); }); // Windows and window manager pinWindow.Id = WindowPinId; scanWindow.Id = WindowScanId; // Button button.ButtonPressed += DoorOpen; button.ButtonReleased += DoorClosed; doorOpen = button.Pressed; if (doorOpen) { pinWindow.SetText("Door open"); } else { pinWindow.SetText("Door closed"); } unlockedTimer = new GT.Timer(unlockPeriod); unlockedTimer.Tick += UnlockTimeout; pinWindow.Show(); // Event Setup adafruit_PN532.TagFound += TagFound; adafruit_PN532.Error += NfcError; pinWindow.PinFound += PinFound; DataHelper.DataSourceChanged += DataSourceChanged; WindowManager.WindowChanged += WindowChanged; // Start NFC adafruit_PN532.StartScan(NfcScanPeriod, NfcScanTimeout); //Init CacheManager.Init(sdCard); SettingsManager.Init(); DataHelper.Init(ethernetJ11D); adafruit_PN532.Init(); }
private static IDisposable ShowPinWindow(IntPtr hWnd, PinOperations operation) { var vmodel = new NotificationWindowViewModel { Title = ProductInfo.Title, Body = $"{(operation.HasFlag(PinOperations.Window) ? "Window" : "Application")} {(operation.HasFlag(PinOperations.Pin) ? "Pinned" : "Unpinned")}", }; var source = new CancellationTokenSource(); var window = new PinWindow(hWnd) { DataContext = vmodel, }; window.Show(); Task.Delay(TimeSpan.FromMilliseconds(Settings.General.NotificationDuration), source.Token) .ContinueWith(_ => window.Close(), TaskScheduler.FromCurrentSynchronizationContext()); return(Disposable.Create(() => source.Cancel())); }