UserCalibrationTask GetData(UserCalibrationTask.Calibrating currentlyCalibrating, int waitTime)
        {
            var task       = new UserCalibrationTask(currentlyCalibrating);
            var manager    = new MyomiTaskManager((1000 / 50), task);
            var taskThread = new Thread(manager.Run);

            Console.WriteLine("Starting new Manager task");

            //we are giving the users 5 seconds to calibrate their arm motion
            taskThread.Start();
            CommonOperations.Sleep(waitTime);

            manager.StopExecution = true;
            return(task);
        }
        private List <MyoData> GetData()
        {
            var task       = new GestureCreatorTask();
            var manager    = new MyomiTaskManager((1000 / 20), task);
            var taskThread = new Thread(manager.Run);

            taskThread.Start();

            Console.WriteLine("To start recording, please perform the double tap gesture at rest");
            Console.WriteLine("To finish recording, please perform the double tap gesture at rest");
            //we will put this thread in an infinite loop until it has finished
            while (!manager.StopExecution)
            {
            }

            return(task.GetData());
        }
        public void Run()
        {
            Console.WriteLine("The program is now running profile {0}", Context.Instance.CurrentProfile.Name);
            Console.WriteLine("Please press enter to start");
            Console.ReadLine();
            var task       = new GestureMatchingTask();
            var manager    = new MyomiTaskManager((1000 / 20), task);
            var taskThread = new Thread(manager.Run);

            taskThread.Start();

            Console.WriteLine("To stop, press enter");
            Console.ReadLine();
            manager.StopExecution = true;

            Console.WriteLine("The task has stopped, returning back to main menu");
        }
        private bool CalibrateGesture(MyomiGesture gesture, MyomiGestureOptions options)
        {
            var task    = new GestureCreatorMatchingTask(gesture.SegmentsWithOptions, options);
            var manager = new MyomiTaskManager(Context.Instance.DefaultFrequency, task);

            for (int i = 0; i < 3 || task.Matched; i++)
            {
                var taskThread = new Thread(manager.Run);
                taskThread.Start();
                //sleep until it has finished
                while (!manager.StopExecution)
                {
                }
                if (!task.Matched)
                {
                    return(false);
                }
            }
            return(true);
        }