Exemple #1
0
        public void Start()
        {
            if (!m_started)
            {
                m_splits = ZAMsettings.Settings.Splits;

                m_splitGoals = SplitsManager.GetSplitGoals(); // returns null if no goals

                m_eventCount      = 0;
                m_splitCount      = 0;
                m_startTime       = DateTime.Now;
                m_splitStartTime  = m_startTime;
                m_lastSplitMeters = 0;

                m_started = true;
            }
        }
Exemple #2
0
        protected override void UserControlBase_Load(object sender, EventArgs e)
        {
            if (DesignMode)
            {
                return;
            }

            // for handling UI events
            m_dispatcher = Dispatcher.CurrentDispatcher;

            this.Logger = ZAMsettings.LoggerFactory.CreateLogger <SplitsViewControl>();

            m_splitsManager = new SplitsManager();

            m_splitsManager.SplitGoalCompletedEvent += SplitGoalCompletedEventHandler;
            m_splitsManager.SplitUpdatedEvent       += SplitEventHandler;
            m_splitsManager.SplitCompletedEvent     += SplitEventHandler;

            this.lvSplits.Items.Clear();

            this.lvSplits.ListViewItemSorter = new SplitListViewColumnSorter(SortOrder.Descending);

            base.UserControlBase_Load(sender, e);
        }
        private void LoadSplitChart()
        {
            lvSplits.Items.Clear();
            lblGoalSpeed.Text = "";

            SplitsManager.SplitGoals splitGoals = SplitsManager.GetSplitGoals();

            if (splitGoals == null)
            {
                return;
            }

            foreach (SplitsManager.SplitGoal goal in splitGoals.Goals)
            {
                SplitItem item = new SplitItem()
                {
                    Distance      = goal.SplitDistanceStr,
                    Time          = goal.SplitTimeStr,
                    TotalDistance = goal.TotalDistanceStr,
                    TotalTime     = goal.TotalTimeStr
                };
                lvSplits.Items.Add(new SplitListViewItem(item));
            }

            lblGoalSpeed.Text = splitGoals.GoalSpeedStr;

            /*
             * if (!ckbShowSplits.Checked || !ckbCalculateGoal.Checked)
             *  return;
             *
             * Splits splits = ZAMsettings.Settings.Splits;
             *
             * double numSplits = splits.GoalDistance / splits.SplitDistance;
             * if (numSplits < 1)
             *  return;
             *
             * TimeSpan goalTime = new TimeSpan(splits.GoalHours, splits.GoalMinutes, splits.GoalSeconds);
             * if (goalTime.TotalSeconds < 1)
             *  return;
             *
             * TimeSpan splitTime = new TimeSpan(0, 0, (int)Math.Round(goalTime.TotalSeconds / numSplits, 0));
             * string splitTimeStr = splitTime.Hours.ToString("0#") + ":" + splitTime.Minutes.ToString("0#") + ":" + splitTime.Seconds.ToString("0#");
             *
             * int curDistance = 0;
             * TimeSpan curTime = new TimeSpan();
             *
             * for (int i=0; i<(int)numSplits; i++)
             * {
             *  if (lvSplits.Items.Count >= 100)
             *      break;
             *
             *  int totalDistance = curDistance + splits.SplitDistance;
             *  TimeSpan totalTime = curTime.Add(splitTime);
             *
             *  SplitItem item = new SplitItem()
             *  {
             *      Distance = $"{splits.SplitDistance} {splits.SplitUom}",
             *      Time = splitTimeStr,
             *      TotalDistance = $"{totalDistance} {splits.SplitUom}",
             *      TotalTime = $"{totalTime.Hours.ToString("0#") + ":" + totalTime.Minutes.ToString("0#") + ":" + totalTime.Seconds.ToString("0#")}"
             *  };
             *  lvSplits.Items.Add(new SplitListViewItem(item));
             *
             *  curDistance = totalDistance;
             *  curTime = totalTime;
             * }
             *
             * if (numSplits != (int)numSplits)
             * {
             *  double lastSplitDistance = Math.Round(splits.GoalDistance - curDistance, 1);
             *  TimeSpan lastSplitTime = goalTime.Subtract(curTime);
             *
             *  SplitItem item = new SplitItem()
             *  {
             *      Distance = $"{lastSplitDistance} {splits.SplitUom}",
             *      Time = $"{lastSplitTime.Hours.ToString("0#") + ":" + lastSplitTime.Minutes.ToString("0#") + ":" + lastSplitTime.Seconds.ToString("0#")}",
             *      TotalDistance = $"{Math.Round(splits.GoalDistance, 1)} {splits.SplitUom}",
             *      TotalTime = $"{goalTime.Hours.ToString("0#") + ":" + goalTime.Minutes.ToString("0#") + ":" + goalTime.Seconds.ToString("0#")}"
             *  };
             *  lvSplits.Items.Add(new SplitListViewItem(item));
             * }
             *
             * double goalSpeed = Math.Round((splits.GoalDistance / goalTime.TotalSeconds) * 3600, 1);
             * lblGoalSpeed.Text = $"{goalSpeed.ToString("#.#")} {(splits.SplitUom == "km" ? "km/h" : "mph")}";
             */
        }