Пример #1
0
        // Called when the x-axis selection is changed. Updates the plotting mapper also
        private void OnXAxisSelectionChanged(object sender, EventArgs e)
        {
            currentXAxis = (ControlEnums.AXISOPTIONS)FindSelectedTextInEnum(XAxisSelectionBox.Text, typeof(ControlEnums.AXISOPTIONS));

            // Populate the unit selection box with available units
            XAxisUnitSelectionBox.Items.Clear();
            foreach (Enum unit in Enum.GetValues(ControlEnums.GetAttribute(currentXAxis).units.GetType()))
            {
                XAxisUnitSelectionBox.Items.Add(ControlEnums.GetAttribute(unit).disp);
            }
            XAxisUnitSelectionBox.SelectedIndex = 0;

            // Update mapper based on selected axis and unit
            if (currentXAxis == ControlEnums.AXISOPTIONS.TIME)
            {
                CalculateTimeUnitConversion(series1Mapper, (ControlEnums.TIMEUNITS)currentXAxisUnit, true);
            }
            else if (currentXAxis == ControlEnums.AXISOPTIONS.VOLTAGE)
            {
                CalculateVoltageUnitConversion(series1Mapper, (ControlEnums.VOLTAGEUNITS)currentXAxisUnit, true);
            }
            else
            {
                CalculateBaseUnitConversion(series1Mapper, currentXAxis, (ControlEnums.BASEUNITS)currentXAxisUnit, true);
            }
            WipeGraph();
        }
Пример #2
0
 // Calculates the unit conversion factors for position, velocity and acceleration, in deg, rad and revs
 public double GetBaseUnitConversionFactor(ControlEnums.AXISOPTIONS axis, ControlEnums.BASEUNITS unit)
 {
     if (unit == ControlEnums.BASEUNITS.DEG)
     {
         return(360.0 / 2000.0);
     }
     if (unit == ControlEnums.BASEUNITS.RAD)
     {
         return(2.0 * Math.PI / 2000.0);
     }
     if (unit == ControlEnums.BASEUNITS.REVS)
     {
         if (axis == ControlEnums.AXISOPTIONS.POSITION)
         {
             return(1.0 / 2000.0);
         }
         else
         {
             return(60.0 / 2000.0);
         }
     }
     return(1.0);
 }
Пример #3
0
        // Called when the y-axis 2 selection changes. Updates the plotting mapper also
        private void OnYAxis2SelectionChanged(object sender, EventArgs e)
        {
            currentYAxis2 = (ControlEnums.AXISOPTIONS)FindSelectedTextInEnum(YAxis2SelectionBox.Text, typeof(ControlEnums.AXISOPTIONS));

            // Populate unit selection box with available units
            YAxis2UnitSelectionBox.Items.Clear();
            foreach (Enum unit in Enum.GetValues(ControlEnums.GetAttribute(currentYAxis2).units.GetType()))
            {
                YAxis2UnitSelectionBox.Items.Add(ControlEnums.GetAttribute(unit).disp);
            }
            YAxis2UnitSelectionBox.SelectedIndex = 0;

            // Update mapper based on selected axis and unit
            if (currentYAxis2 == ControlEnums.AXISOPTIONS.TIME)
            {
                CalculateTimeUnitConversion(series2Mapper, (ControlEnums.TIMEUNITS)currentYAxis2Unit, false);
            }
            else if (currentYAxis2 == ControlEnums.AXISOPTIONS.VOLTAGE)
            {
                CalculateVoltageUnitConversion(series2Mapper, (ControlEnums.VOLTAGEUNITS)currentYAxis2Unit, false);
            }
            else
            {
                CalculateBaseUnitConversion(series2Mapper, currentYAxis2, (ControlEnums.BASEUNITS)currentYAxis2Unit, false);
            }

            if (currentYAxis2 == ControlEnums.AXISOPTIONS.ACCELERATION && Series2EnabledCheckbox.Checked)
            {
                Chart.Series.Add(setLine3);
            }
            else if (Chart.Series.Contains(setLine3))
            {
                Chart.Series.Remove(setLine3);
            }
            WipeGraph();
        }
Пример #4
0
 // Sets the unit conversion factors for position, velocity and acceleration, for either axis mapper
 public void CalculateBaseUnitConversion(CartesianMapper <GraphingEntry> mapper, ControlEnums.AXISOPTIONS axis, ControlEnums.BASEUNITS unit, bool xAxis)
 {
     if (axis == ControlEnums.AXISOPTIONS.POSITION)
     {
         if (xAxis)
         {
             mapper.X(entry => entry.position * GetBaseUnitConversionFactor(axis, unit));
         }
         else
         {
             mapper.Y(entry => entry.position * GetBaseUnitConversionFactor(axis, unit));
         }
     }
     if (axis == ControlEnums.AXISOPTIONS.VELOCITY)
     {
         if (xAxis)
         {
             mapper.X(entry => entry.velocity * GetBaseUnitConversionFactor(axis, unit));
         }
         else
         {
             mapper.Y(entry => entry.velocity * GetBaseUnitConversionFactor(axis, unit));
         }
     }
     if (axis == ControlEnums.AXISOPTIONS.ACCELERATION)
     {
         if (xAxis)
         {
             mapper.X(entry => entry.acceleration * GetBaseUnitConversionFactor(axis, unit));
         }
         else
         {
             mapper.Y(entry => entry.acceleration * GetBaseUnitConversionFactor(axis, unit));
         }
     }
 }