Beispiel #1
0
        public void Save(ArcticFoxConfiguration.Profile profile)
        {
            profile.Flags.IsEnabled = ProfileEnabledCheckBox.Checked;
            profile.Name            = ProfileNameTextBox.Text;
            profile.Power           = (ushort)(PowerUpDown.Value * 10);
            profile.PreheatType     = PreheatTypeComboBox.GetSelectedItem <ArcticFoxConfiguration.PreheatType>();
            if (profile.PreheatType == ArcticFoxConfiguration.PreheatType.Watts)
            {
                profile.PreheatPower = (ushort)(PreheatPowerUpDown.Value * 10);
            }
            else if (profile.PreheatType == ArcticFoxConfiguration.PreheatType.Percents)
            {
                profile.PreheatPower = (ushort)PreheatPowerUpDown.Value;
            }
            else if (profile.PreheatType == ArcticFoxConfiguration.PreheatType.Curve)
            {
                profile.SelectedCurve = (byte)PowerCurveComboBox.SelectedIndex;
            }
            profile.PreheatTime  = (byte)(PreheatTimeUpDown.Value * 100);
            profile.PreheatDelay = (byte)PreheatDelayUpDown.Value;

            profile.Flags.IsCelcius             = TemperatureTypeComboBox.GetSelectedItem <bool>();
            profile.Temperature                 = (ushort)TemperatureUpDown.Value;
            profile.Flags.IsTemperatureDominant = TemperatureDominantCheckBox.Checked;

            var mode = ModeComboBox.GetSelectedItem <Mode>();

            profile.Flags.Material = mode == Mode.TemperatureControl
                                ? MaterialComboBox.GetSelectedItem <ArcticFoxConfiguration.Material>()
                                : ArcticFoxConfiguration.Material.VariWatt;

            profile.TCR        = (ushort)TCRUpDown.Value;
            profile.Resistance = (ushort)(ResistanceUpDown.Value * 1000);
            profile.Flags.IsResistanceLocked = ResistanceLockedCheckBox.Checked;
        }
        public void Initialize([NotNull] ArcticFoxConfiguration configuration, int profileIndex)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }

            m_configuration = configuration;
            m_profile       = configuration.General.Profiles[profileIndex];

            ProfileEnabledCheckBox.Checked = m_profile.Flags.IsEnabled;
            ProfileNameTextBox.Text        = m_profile.Name;
            PowerUpDown.Maximum            = configuration.Info.MaxDevicePower / 10m;
            PowerUpDown.SetValue(m_profile.Power / 10m);

            var selectedPreheatType = PreheatTypeComboBox.SelectedItem as NamedItemContainer <ArcticFoxConfiguration.PreheatType>;

            if (selectedPreheatType != null && selectedPreheatType.Data == m_profile.PreheatType)
            {
                PreheatTypeComboBox_SelectedValueChanged(null, EventArgs.Empty);
            }
            else
            {
                PreheatTypeComboBox.SelectItem(m_profile.PreheatType);
            }

            PowerCurveComboBox.SelectItem(m_profile.SelectedCurve);
            PreheatTimeUpDown.SetValue(m_profile.PreheatTime / 100m);
            PreheatDelayUpDown.SetValue(m_profile.PreheatDelay);

            ResistanceLockedCheckBox_CheckedChanged(null, EventArgs.Empty);

            TemperatureTypeComboBox.SelectItem(m_profile.Flags.IsCelcius);
            TemperatureUpDown.SetValue(m_profile.Temperature);
            TemperatureDominantCheckBox.Checked = m_profile.Flags.IsTemperatureDominant;

            if (m_profile.Flags.Material == ArcticFoxConfiguration.Material.VariWatt)
            {
                MaterialComboBox.SelectedIndex = 0;
                ModeComboBox.SelectItem(Mode.Power);
            }
            else
            {
                MaterialComboBox.SelectItem(m_profile.Flags.Material);
                ModeComboBox.SelectItem(Mode.TemperatureControl);
            }

            TCRUpDown.SetValue(m_profile.TCR);
            ResistanceUpDown.SetValue(m_profile.Resistance / 1000m);
            ResistanceLockedCheckBox.Checked = m_profile.Flags.IsResistanceLocked;
        }