Beispiel #1
0
        /// <summary>
        /// Starts the training
        /// </summary>
        /// <param name="enduranceDataService">Service to communicate with the peripheral.</param>
        /// <param name="gpsService">Service to get GPS coordinates from the environment.</param>
        public void Start(EnduranceDataService enduranceDataService, IGpsService gpsService)
        {
            cancellation = new CancellationTokenSource();
            Task.Factory.StartNew(() =>
            {
                laps      = new List <Lap>();
                heartRate = new HeartRate();

                enduranceDataService.StartActivitiy();
                gpsService.StartTracking();

                while (!cancellation.Token.IsCancellationRequested)
                {
                    Thread.Sleep(trainingsReadIntervalMs);

                    var nextLapDto    = enduranceDataService.GetNextRawLap();
                    var nextHeartRate = enduranceDataService.GetHeartRate();

                    var lap = new Lap(nextLapDto.LapDistance, nextLapDto.LapTime);

                    laps.Add(lap);
                    heartRate = heartRate.AddPulses(nextHeartRate.Select(h => (h.Item1, h.Item2.Pulse)).ToList());
                }

                enduranceDataService.StopActivity();
                gpsService.StopTracking();

                gpsCoordinates = gpsService.GetCoordinates().Select(c => new GpsCoordinate(c.Item1, c.Item2)).ToList();
            }
                                  );
        }
 public TrainingController(IUnityContainer unityContainer)
 {
     enduranceDataService = unityContainer.Resolve <EnduranceDataService>();
     trainingService      = unityContainer.Resolve <ITrainingService>();
     repository           = unityContainer.Resolve <ITrainingRepository>();
 }
 /// <summary>
 /// Starts a training on the backend service.
 /// </summary>
 public void StartTraining(EnduranceDataService enduranceDataService)
 {
     client.PostAsync($"{baseUrl}/Training/start", null).GetAwaiter().GetResult();
 }
Beispiel #4
0
 public StartActivityUiCommand(ITrainingService trainingService, EnduranceDataService enduranceDataService)
 {
     this.trainingService      = trainingService;
     this.enduranceDataService = enduranceDataService;
 }
 /// <summary>
 /// Starts a new training.
 /// </summary>
 /// <param name="enduranceDataService">Service to communicate with the peripheral.</param>
 public void StartTraining(EnduranceDataService enduranceDataService)
 {
     training = new Training(Type.Running);
     training.Start(enduranceDataService, gpsService);
 }