Beispiel #1
0
        /// <summary>
        /// 步数变化
        /// </summary>
        private void Pedometer_ReadingChanged(Pedometer sender, PedometerReadingChangedEventArgs args)
        {
            PedometerReading reding = args.Reading;

            if (reding.StepKind == PedometerStepKind.Running)
            {
                if (rs == reding.CumulativeSteps)
                {
                    return;
                }
                rs = reding.CumulativeSteps;
            }
            else
            {
                if (ws == reding.CumulativeSteps)
                {
                    return;
                }
                ws = reding.CumulativeSteps;
            }
            double h    = Math.Round(nowH, 1);
            double p    = pressure.GetCurrentReading().StationPressureInHectopascals;
            int    s    = args.Reading.CumulativeSteps;
            long   time = TimeUtil.getNowStamp();

            dm.insertHeight(time, h, p, ws, rs);
        }
        /// <summary>
        /// Invoked when the underlying Pedometer sees a change in the step count for a step kind
        /// </summary>
        /// <param name="sender">unused</param>
        /// <param name="args">Pedometer reading that is being notified</param>
        async private void Pedometer_ReadingChanged(Pedometer sender, PedometerReadingChangedEventArgs args)
        {
            await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
            {
                PedometerReading reading = args.Reading;
                int newCount             = 0;

                // update step counts based on the step kind
                switch (reading.StepKind)
                {
                case PedometerStepKind.Unknown:
                    if (reading.CumulativeSteps < unknownStepCount)
                    {
                        unknownStepCount = 0;
                    }
                    newCount         = reading.CumulativeSteps - unknownStepCount;
                    unknownStepCount = reading.CumulativeSteps;
                    ScenarioOutput_UnknownCount.Text    = unknownStepCount.ToString();
                    ScenarioOutput_UnknownDuration.Text = reading.CumulativeStepsDuration.TotalMilliseconds.ToString();
                    break;

                case PedometerStepKind.Walking:
                    if (reading.CumulativeSteps < walkingStepCount)
                    {
                        walkingStepCount = 0;
                    }
                    newCount         = reading.CumulativeSteps - walkingStepCount;
                    walkingStepCount = reading.CumulativeSteps;
                    ScenarioOutput_WalkingCount.Text    = walkingStepCount.ToString();
                    ScenarioOutput_WalkingDuration.Text = reading.CumulativeStepsDuration.TotalMilliseconds.ToString();
                    break;

                case PedometerStepKind.Running:
                    if (reading.CumulativeSteps < runningStepCount)
                    {
                        runningStepCount = 0;
                    }
                    newCount         = reading.CumulativeSteps - runningStepCount;
                    runningStepCount = reading.CumulativeSteps;
                    ScenarioOutput_RunningCount.Text    = runningStepCount.ToString();
                    ScenarioOutput_RunningDuration.Text = reading.CumulativeStepsDuration.TotalMilliseconds.ToString();
                    break;

                default:
                    break;
                }

                totalCumulativeSteps += newCount;
                ScenarioOutput_TotalStepCount.Text = totalCumulativeSteps.ToString();

                DateTimeFormatter timestampFormatter = new DateTimeFormatter("shortdate longtime");
                ScenarioOutput_Timestamp.Text        = timestampFormatter.Format(reading.Timestamp);
            });
        }
        /// <summary>
        /// Invoked when the underlying Pedometer sees a change in the step count for a step kind
        /// </summary>
        /// <param name="sender">unused</param>
        /// <param name="args">Pedometer reading that is being notified</param>
        async private void Pedometer_ReadingChanged(Pedometer sender, PedometerReadingChangedEventArgs args)
        {
            await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
            {
                PedometerReading reading = args.Reading;
                int newCount = 0;

                // update step counts based on the step kind
                switch (reading.StepKind)
                {
                    case PedometerStepKind.Unknown:
                        if (reading.CumulativeSteps < unknownStepCount)
                        {
                            unknownStepCount = 0;
                        }
                        newCount = reading.CumulativeSteps - unknownStepCount;
                        unknownStepCount = reading.CumulativeSteps;
                        ScenarioOutput_UnknownCount.Text = unknownStepCount.ToString();
                        ScenarioOutput_UnknownDuration.Text = reading.CumulativeStepsDuration.TotalMilliseconds.ToString();
                        break;
                    case PedometerStepKind.Walking:
                        if (reading.CumulativeSteps < walkingStepCount)
                        {
                            walkingStepCount = 0;
                        }
                        newCount = reading.CumulativeSteps - walkingStepCount;
                        walkingStepCount = reading.CumulativeSteps;
                        ScenarioOutput_WalkingCount.Text = walkingStepCount.ToString();
                        ScenarioOutput_WalkingDuration.Text = reading.CumulativeStepsDuration.TotalMilliseconds.ToString();
                        break;
                    case PedometerStepKind.Running:
                        if (reading.CumulativeSteps < runningStepCount)
                        {
                            runningStepCount = 0;
                        }
                        newCount = reading.CumulativeSteps - runningStepCount;
                        runningStepCount = reading.CumulativeSteps;
                        ScenarioOutput_RunningCount.Text = runningStepCount.ToString();
                        ScenarioOutput_RunningDuration.Text = reading.CumulativeStepsDuration.TotalMilliseconds.ToString();
                        break;
                    default:
                        break;
                }

                totalCumulativeSteps += newCount;
                ScenarioOutput_TotalStepCount.Text = totalCumulativeSteps.ToString();

                DateTimeFormatter timestampFormatter = new DateTimeFormatter("shortdate longtime");
                ScenarioOutput_Timestamp.Text = timestampFormatter.Format(reading.Timestamp);
            });
        }
Beispiel #4
0
 private void PedometerReadingChanged(Pedometer sender, PedometerReadingChangedEventArgs args)
 {
     _lastReading = args.Reading.CumulativeSteps;
     OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <int>(_lastReading));
 }