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; } }
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")}"; */ }