コード例 #1
0
        /// <summary>
        /// Display values stored in settings in controls.  Updates split grid.
        /// </summary>
        private void SystemSettings_LoadFields()
        {
            SplitsV2 settings = ZAMsettings.Settings.SplitsV2;

            ckbShowSplits.Checked = settings.ShowSplits;

            tbSplitDistance.Text = settings.SplitDistance.ToString();

            if (cbSplitUom.Items.Contains(settings.SplitDistanceUom))
            {
                cbSplitUom.SelectedItem = settings.SplitDistanceUom;
            }

            lblGoalDistanceUom.Text = settings.SplitDistanceUom.Value;

            ckbCalculateGoal.Checked = settings.CalculateGoal;

            dtpGoalTime.Value = new DateTime(2021, 1, 1, settings.GoalTime.Hours, settings.GoalTime.Minutes, settings.GoalTime.Seconds);

            tbGoalDistance.Text = settings.GoalDistance.ToString();

            lblGoalSpeed.Text      = $"Goal Speed {lblGoalDistanceUom.Text}/h:";
            lblGoalSpeedValue.Text = $"{settings.GoalSpeed}";

            ckbCustomized.Checked = settings.Customized;

            this.LoadSplitChart();
        }
コード例 #2
0
 private ZAMsettings()
 {
     UserProfiles = new SortedList <string, UserProfile>();
     Collectors   = new SortedList <string, Collector>();
     //Splits          = new Splits();
     Laps     = new Lap();
     SplitsV2 = new SplitsV2();
 }
コード例 #3
0
 public SplitV2(double splitDistance, TimeSpan splitTime, double splitSpeed, double totalDistance, TimeSpan totalTime, double averageSpeed, SplitsV2 parentSplitContainer)
 {
     this.SplitDistance        = splitDistance;
     this.SplitTime            = splitTime;
     this.SplitSpeed           = splitSpeed;
     this.TotalDistance        = totalDistance;
     this.TotalTime            = totalTime;
     this.AverageSpeed         = averageSpeed;
     this.ParentSplitContainer = parentSplitContainer;
 }
コード例 #4
0
        public void Start()
        {
            if (!m_started)
            {
                m_splits = ZAMsettings.Settings.SplitsV2;

                //m_splitGoals = SplitsManagerV2.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;
            }
        }
コード例 #5
0
        /// <summary>
        /// Recalculate splits based upon user selections.  This wipes out any customizations.
        /// </summary>
        //private void RecalculateSplits()
        //{
        //    ZAMsettings.Settings.SplitsV2.Splits.Clear();
        //    ZAMsettings.Settings.SplitsV2.GoalSpeed = 0;

        //    SplitsManagerV2.SplitGoals splitGoals = SplitsManagerV2.GetSplitGoals();

        //    if (splitGoals == null)
        //        return;

        //    foreach (SplitsManagerV2.SplitGoal goal in splitGoals.Goals)
        //    {
        //        ZAMsettings.Settings.SplitsV2.Splits.Add(new SplitV2(goal.SplitDistance, goal.SplitTime, 0.0, goal.TotalDistance, goal.TotalTime, 0.0));
        //    }

        //    ZAMsettings.Settings.SplitsV2.GoalSpeed = splitGoals.GoalSpeed;
        //}

        private void SaveSplits()
        {
            DataTable table = (DataTable)dgvSplits.DataSource;

            SplitsV2 splits = ZAMsettings.Settings.SplitsV2;

            splits.Splits.Clear();

            foreach (DataRow row in ((DataTable)dgvSplits.DataSource).Rows)
            {
                if (this.IsNullorDBNull(row.Field <object>(SplitDistanceCol)) > 0 || this.IsNullorDBNull(row.Field <object>(SplitTimeCol)) > 0)
                {
                    continue;
                }

                ZAMsettings.Settings.SplitsV2.Splits.Add(new SplitV2(
                                                             row.Field <double>(SplitDistanceCol),
                                                             row.Field <TimeSpan>(SplitTimeCol),
                                                             row.Field <double>(SplitSpeedCol),
                                                             row.Field <double>(TotalDistanceCol),
                                                             row.Field <TimeSpan>(TotalTimeCol),
                                                             row.Field <double>(AverageSpeedCol),
                                                             splits
                                                             ));
            }

            splits.Customized = true;

            // the last split row has the totals
            int lastSplitRow = splits.Splits.Count - 1;

            if (lastSplitRow >= 0)
            {
                SplitV2 lastSplit = splits.Splits[lastSplitRow];

                // Setting of these values to invalid numbers can throw an exception

                splits.GoalDistance = lastSplit.TotalDistance;
                splits.GoalTime     = lastSplit.TotalTime;
                splits.GoalSpeed    = lastSplit.AverageSpeed;
            }
            else
            {
                throw new FormatException("No goals entered.");
            }
        }