Exemple #1
0
        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();
        }
Exemple #2
0
        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()));
        }