Exemplo n.º 1
0
        protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            if (pixyCam == null)
            {
                pixyCam = new PixyCam();

                // Initialize camera
                await pixyCam.Init();
            }

            if (!isCameraThreadRunning)
            {
                stopCameraThread = false;

                // Set LED to blue
                pixyCam.SetLED(0, 0, 255);
                
                // Start reading frames from camera
                await ThreadPool.RunAsync((s) =>
                {
                    isCameraThreadRunning = true;

                    while (!stopCameraThread)
                    {
                        var blocks = pixyCam.GetBlocks(10);

                        if (blocks != null && blocks.Count > 0)
                        {
                            var trackedBlock = trackBlock(blocks.ToArray());
                            if (trackedBlock != null)
                            {
                                followBlock(trackedBlock);
                                updateUI(trackedBlock);
                            }
                        }
                    }

                    isCameraThreadRunning = false;
                });
            }
        }