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;
        }
Exemple #2
0
        public void UpdatePowerCurveNames(ArcticFoxConfiguration.PowerCurve[] curves)
        {
            var selectedValue = PowerCurveComboBox.GetSelectedItem <byte>();

            PowerCurveComboBox.BeginUpdate();
            for (byte i = 0; i < curves.Length; i++)
            {
                // 4 : Default Non-TFR materials, Ni, Ti, SS, TCR
                var item = PowerCurveComboBox.Items[i] as NamedItemContainer <byte>;
                if (item == null)
                {
                    continue;
                }

                PowerCurveComboBox.Items.RemoveAt(i);
                PowerCurveComboBox.Items.Insert(i, new NamedItemContainer <byte>(curves[i].Name, i));
            }
            PowerCurveComboBox.EndUpdate();
            PowerCurveComboBox.SelectItem(selectedValue);
        }
Exemple #3
0
        private void InitializeControls()
        {
            ProfileNameTextBox.TextChanged += (s, e) =>
            {
                var position = ProfileNameTextBox.SelectionStart;
                var input    = ProfileNameTextBox.Text;
                var matches  = s_blackList.Matches(input);
                foreach (Match match in matches)
                {
                    if (!match.Success)
                    {
                        continue;
                    }
                    input = input.Replace(match.Value, string.Empty);
                }
                ProfileNameTextBox.Text           = input;
                ProfileNameTextBox.SelectionStart = position;
            };

            PowerUpDown.Minimum = MinimumWatts;
            PowerUpDown.Maximum = 60;

            PreheatTypeComboBox.Fill(PredefinedData.ArcticFox.Profile.PreheatTypes);
            PreheatTypeComboBox.SelectedValueChanged += PreheatTypeComboBox_SelectedValueChanged;

            PowerCurveComboBox.Fill(PredefinedData.ArcticFox.Profile.PowerCurves);
            TemperatureTypeComboBox.Fill(PredefinedData.ArcticFox.Profile.TemperatureTypes);
            TemperatureTypeComboBox.SelectedValueChanged += (s, e) =>
            {
                var isCelcius = TemperatureTypeComboBox.GetSelectedItem <bool>();
                if (isCelcius)
                {
                    TemperatureUpDown.Minimum = 100;
                    TemperatureUpDown.Maximum = 315;
                }
                else
                {
                    TemperatureUpDown.Minimum = 200;
                    TemperatureUpDown.Maximum = 600;
                }
            };

            ModeComboBox.Items.Clear();
            ModeComboBox.Items.AddRange(new object[]
            {
                new NamedItemContainer <Mode>(LocalizableStrings.VapeModePower, Mode.Power),
                new NamedItemContainer <Mode>(LocalizableStrings.VapeModeTempControl, Mode.TemperatureControl)
            });
            ModeComboBox.SelectedValueChanged += (s, e) =>
            {
                var isTemperatureSensing = ModeComboBox.GetSelectedItem <Mode>() == Mode.TemperatureControl;

                SetupTempControlButton.Visible = isTemperatureSensing;

                MaterialComboBox.Visible = isTemperatureSensing;
                MaterialLabel.Visible    = isTemperatureSensing;

                ResistanceLabel.Visible          = isTemperatureSensing;
                ResistanceUpDown.Visible         = isTemperatureSensing;
                ResistanceLockedCheckBox.Visible = isTemperatureSensing;
                OhmLabel.Visible = isTemperatureSensing;

                TemperatureLabel.Visible            = isTemperatureSensing;
                TemperatureUpDown.Visible           = isTemperatureSensing;
                TemperatureTypeComboBox.Visible     = isTemperatureSensing;
                TemperatureDominantCheckBox.Visible = isTemperatureSensing;

                var selectedMaterial = MaterialComboBox.GetSelectedItem <ArcticFoxConfiguration.Material>();
                TCRUpDown.Visible          = isTemperatureSensing && selectedMaterial == ArcticFoxConfiguration.Material.TCR;
                TFRCurveEditButton.Visible = isTemperatureSensing &&
                                             (int)selectedMaterial >= (int)ArcticFoxConfiguration.Material.TFR1 &&
                                             (int)selectedMaterial <= (int)ArcticFoxConfiguration.Material.TFR8;
            };

            MaterialComboBox.Fill(PredefinedData.ArcticFox.Profile.Materials);
            MaterialComboBox.SelectedValueChanged += (s, e) =>
            {
                if (MaterialComboBox.SelectedItem == null)
                {
                    return;
                }

                var selectedMaterial = MaterialComboBox.GetSelectedItem <ArcticFoxConfiguration.Material>();
                TCRUpDown.Visible          = selectedMaterial == ArcticFoxConfiguration.Material.TCR;
                TFRCurveEditButton.Visible = (int)selectedMaterial >= (int)ArcticFoxConfiguration.Material.TFR1 &&
                                             (int)selectedMaterial <= (int)ArcticFoxConfiguration.Material.TFR8;
            };

            PowerCurveEditButton.Click   += PowerCurveEditButton_Click;
            TFRCurveEditButton.Click     += TFRCurveEditButton_Click;
            SetupTempControlButton.Click += SetupTempControlButton_Click;
        }