/// <summary> /// Start the camera configuration step. /// The person has to stand still for the defined amount of time until the coordinates are calculated. /// </summary> public void Start() { if (initialized) { // reset state before the next position Cancel(); } else { initialized = true; } manager.SetInstructions("Go to the position and stand still"); isActiveStep = true; lastMove = 0; lastCoordinates = null; // give the person 5s time to go to the next position Task.Delay(5000).ContinueWith(_ => { System.Windows.Application.Current.Dispatcher.Invoke(() => { if (manager.IsTerminated()) { return; } workerThread.ResultReady += ResultReady; }); }); if (!initialBalancingValue) { initialBalancingValue = workerThread.IsBalancing(); } workerThread.SetCalibrating(true); workerThread.SetBalancing(false); }