private void SaveWorkspaceToDataflash([NotNull] Dataflash dataflash) { if (dataflash == null) { throw new ArgumentNullException("dataflash"); } // General -> Power & Temp Tab dataflash.ParamsBlock.Power = (ushort)(PowerUpDown.Value * 10); dataflash.ParamsBlock.TCPower = (ushort)(TCPowerUpDown.Value * 10); dataflash.ParamsBlock.Status.Step1W = Step1WCheckBox.Checked; dataflash.ParamsBlock.IsCelsius = TemperatureTypeComboBox.GetSelectedItem <bool>(); dataflash.ParamsBlock.Temperature = (ushort)TemperatureUpDown.Value; dataflash.ParamsBlock.Status.TemperatureDominant = TemperatureDominantCheckBox.Checked; dataflash.ParamsBlock.Status.PreheatPercent = PreheatTypeComboBox.GetSelectedItem <bool>(); dataflash.ParamsBlock.PreheatPwr = (ushort)(dataflash.ParamsBlock.Status.PreheatPercent ? PreheatPowerUpDown.Value : PreheatPowerUpDown.Value * 10); dataflash.ParamsBlock.PreheatTime = (byte)(PreheatTimeUpDown.Value * 100); // General -> Coils Manager Tab dataflash.ParamsBlock.ResistanceNi = (ushort)(ResistanceNiUpDown.Value * 100); dataflash.ParamsBlock.ResistanceNiLocked = ResistanceNiCheckBox.Checked; dataflash.ParamsBlock.ResistanceTi = (ushort)(ResistanceTiUpDown.Value * 100); dataflash.ParamsBlock.ResistanceTiLocked = ResistanceTiCheckBox.Checked; dataflash.ParamsBlock.ResistanceSS = (ushort)(ResistanceSSUpDown.Value * 100); dataflash.ParamsBlock.ResistanceSSLocked = ResistanceSSCheckBox.Checked; dataflash.ParamsBlock.ResistanceTCR = (ushort)(ResistanceTCRUpDown.Value * 100); dataflash.ParamsBlock.ResistanceTCRLocked = ResistanceTCRCheckBox.Checked; dataflash.ParamsBlock.TCR[0] = (ushort)TCRM1UpDown.Value; dataflash.ParamsBlock.TCR[1] = (ushort)TCRM2UpDown.Value; dataflash.ParamsBlock.TCR[2] = (ushort)TCRM3UpDown.Value; // General -> Modes Tab dataflash.ParamsBlock.SelectedMode = SelectedModeComboBox.GetSelectedItem <VapeMode>(); dataflash.ParamsBlock.SelectedTCRIndex = (byte)SelectedTCRComboBox.SelectedIndex; dataflash.ParamsBlock.DisabledModes = VapeModes.None; { if (!TempNiModeCheckBox.Checked) { dataflash.ParamsBlock.DisabledModes |= VapeModes.TempNi; } if (!TempTiModeCheckBox.Checked) { dataflash.ParamsBlock.DisabledModes |= VapeModes.TempTi; } if (!TempSSModeCheckBox.Checked) { dataflash.ParamsBlock.DisabledModes |= VapeModes.TempSS; } if (!TCRModeCheckBox.Checked) { dataflash.ParamsBlock.DisabledModes |= VapeModes.TCR; } if (!PowerModeCheckBox.Checked) { dataflash.ParamsBlock.DisabledModes |= VapeModes.Power; } if (!BypassModeCheckBox.Checked) { dataflash.ParamsBlock.DisabledModes |= VapeModes.Bypass; } if (!SmartModeCheckBox.Checked) { dataflash.ParamsBlock.DisabledModes |= VapeModes.Start; } } // General -> Controls Tab dataflash.ParamsBlock.MClicks[0] = Clicks2ComboBox.GetSelectedItem <ClickAction>(); dataflash.ParamsBlock.MClicks[1] = Clicks3ComboBox.GetSelectedItem <ClickAction>(); dataflash.ParamsBlock.MClicks[2] = Clicks4ComboBox.GetSelectedItem <ClickAction>(); dataflash.ParamsBlock.Status.WakeUpByPlusMinus = WakeUpByPlusMinusCheckBox.Checked; // General -> Stats Tab dataflash.InfoBlock.PuffCount = (uint)PuffsUpDown.Value; dataflash.InfoBlock.TimeCount = (uint)PuffsTimeUpDown.Value * 10; // Screen -> Display Tab dataflash.ParamsBlock.Contrast = (byte)BrightnessTrackBar.Value; dataflash.ParamsBlock.ScreenDimTimeout = (byte)IdleTimeUpDow.Value; dataflash.ParamsBlock.StealthOn = StealthModeCheckBox.Checked; dataflash.ParamsBlock.Status.Flipped = FlippedModeCheckBox.Checked; // Screen -> Layout Tab dataflash.ParamsBlock.ThirdLineContent = ThirdLineContentComboBox.GetSelectedItem <LineContentType>(); dataflash.ParamsBlock.Status.BatteryPercent = BatteryPercentsCheckBox.Checked; dataflash.ParamsBlock.Status.NoLogo = !ShowLogoCheckBox.Checked; var clockMode = ClockTypeComboBox.GetSelectedItem <ClockType>(); switch (clockMode) { case ClockType.Disabled: { dataflash.ParamsBlock.Status.AnalogClock = false; dataflash.ParamsBlock.Status.DigitalClock = false; break; } case ClockType.Analog: { dataflash.ParamsBlock.Status.AnalogClock = true; dataflash.ParamsBlock.Status.DigitalClock = false; break; } case ClockType.Digital: { dataflash.ParamsBlock.Status.AnalogClock = true; dataflash.ParamsBlock.Status.DigitalClock = true; break; } default: throw new ArgumentOutOfRangeException(); } dataflash.ParamsBlock.Status.UseClassicMenu = UseClassicMenuCheckBox.Checked; // Screen -> Screensaver Tab dataflash.ParamsBlock.ScreensaverType = ScreensaverTypeComboBox.GetSelectedItem <ScreensaverType>(); dataflash.ParamsBlock.ScreenProtectionTime = ScreenProtectionTimeComboBox.GetSelectedItem <ScreenProtectionTime>(); // Developer -> Expert dataflash.ParamsBlock.ShuntCorrection = (byte)ShuntCorrectionUpDown.Value; dataflash.ParamsBlock.SelectedBatteryModel = BatteryModelComboBox.GetSelectedItem <BatteryModel>(); // Setup DateTime dataflash.InfoBlock.Year = (ushort)DateTime.Now.Year; dataflash.InfoBlock.Month = (byte)DateTime.Now.Month; dataflash.InfoBlock.Day = (byte)DateTime.Now.Day; dataflash.InfoBlock.Hour = (byte)DateTime.Now.Hour; dataflash.InfoBlock.Minute = (byte)DateTime.Now.Minute; dataflash.InfoBlock.Second = (byte)DateTime.Now.Second; }
private void SaveWorkspace() { var general = m_deviceConfiguration.General; { // Profiles Tab for (var i = 0; i < general.Profiles.Length; i++) { var tabContent = (ProfileTabContent)ProfilesTabControl.TabPages[i].Controls[0]; tabContent.Save(general.Profiles[i]); } general.SelectedProfile = SelectedProfleComboBox.GetSelectedItem <byte>(); general.IsSmartEnabled = SmartCheckBox.Checked; } var ui = m_deviceConfiguration.Interface; { // General -> Screen Tab ui.Brightness = (byte)BrightnessTrackBar.Value; ui.DimTimeout = (byte)IdleTimeUpDow.Value; ui.PuffScreenDelay = (byte)(PuffScreenDelayUpDown.Value * 10); ui.IsStealthMode = StealthModeCheckBox.Checked; ui.IsFlipped = FlippedModeCheckBox.Checked; ui.MainScreenSkin = MainScreenSkinComboBox.GetSelectedItem <ArcticFoxConfiguration.Skin>(); ui.IsClassicMenu = UseClassicMenuCheckBox.Checked; ui.IsLogoEnabled = ShowLogoCheckBox.Checked; ui.IsClockOnMainScreen = ShowClockCheckBox.Checked; ui.ClockType = ClockTypeComboBox.GetSelectedItem <ArcticFoxConfiguration.ClockType>(); ui.ScreensaveDuration = ScreensaverTimeComboBox.GetSelectedItem <ArcticFoxConfiguration.ScreenProtectionTime>(); ui.ChargeScreenType = ChargeScreenComboBox.GetSelectedItem <ArcticFoxConfiguration.ChargeScreenType>(); // General -> Layout Tab -> Classic Screen ui.ClassicSkinVWLines.Line1 = SaveLineContent(ClassicVWLine1ComboBox, ClassicVWLine1FireCheckBox); ui.ClassicSkinVWLines.Line2 = SaveLineContent(ClassicVWLine2ComboBox, ClassicVWLine2FireCheckBox); ui.ClassicSkinVWLines.Line3 = SaveLineContent(ClassicVWLine3ComboBox, ClassicVWLine3FireCheckBox); ui.ClassicSkinVWLines.Line4 = SaveLineContent(ClassicVWLine4ComboBox, ClassicVWLine4FireCheckBox); ui.ClassicSkinTCLines.Line1 = SaveLineContent(ClassicTCLine1ComboBox, ClassicTCLine1FireCheckBox); ui.ClassicSkinTCLines.Line2 = SaveLineContent(ClassicTCLine2ComboBox, ClassicTCLine2FireCheckBox); ui.ClassicSkinTCLines.Line3 = SaveLineContent(ClassicTCLine3ComboBox, ClassicTCLine3FireCheckBox); ui.ClassicSkinTCLines.Line4 = SaveLineContent(ClassicTCLine4ComboBox, ClassicTCLine4FireCheckBox); // General -> Layout Tab -> Circle Screen ui.CircleSkinVWLines.Line1 = SaveLineContent(CircleVWLine1ComboBox); ui.CircleSkinVWLines.Line2 = SaveLineContent(CircleVWLine2ComboBox); ui.CircleSkinVWLines.Line3 = SaveLineContent(CircleVWLine3ComboBox, CircleVWLine3FireCheckBox); ui.CircleSkinTCLines.Line1 = SaveLineContent(CircleTCLine1ComboBox); ui.CircleSkinTCLines.Line2 = SaveLineContent(CircleTCLine2ComboBox); ui.CircleSkinTCLines.Line3 = SaveLineContent(CircleTCLine3ComboBox, CircleTCLine3FireCheckBox); // General -> Layout Tab -> Small Screen ui.SmallSkinVWLines.Line1 = SaveLineContent(SmallVWLine1ComboBox, SmallVWLine1FireCheckBox); ui.SmallSkinVWLines.Line2 = SaveLineContent(SmallVWLine2ComboBox, SmallVWLine2FireCheckBox); ui.SmallSkinTCLines.Line1 = SaveLineContent(SmallTCLine1ComboBox, SmallTCLine1FireCheckBox); ui.SmallSkinTCLines.Line2 = SaveLineContent(SmallTCLine2ComboBox, SmallTCLine2FireCheckBox); // General -> Controls Tab ui.ClicksVW[0] = ClicksVW2ComboBox.GetSelectedItem <ArcticFoxConfiguration.ClickAction>(); ui.ClicksVW[1] = ClicksVW3ComboBox.GetSelectedItem <ArcticFoxConfiguration.ClickAction>(); ui.ClicksVW[2] = ClicksVW4ComboBox.GetSelectedItem <ArcticFoxConfiguration.ClickAction>(); ui.ClicksTC[0] = ClicksTC2ComboBox.GetSelectedItem <ArcticFoxConfiguration.ClickAction>(); ui.ClicksTC[1] = ClicksTC3ComboBox.GetSelectedItem <ArcticFoxConfiguration.ClickAction>(); ui.ClicksTC[2] = ClicksTC4ComboBox.GetSelectedItem <ArcticFoxConfiguration.ClickAction>(); ui.IsUpDownSwapped = UpDownButtonsComboBox.GetSelectedItem <bool>(); ui.WakeUpByPlusMinus = WakeUpByPlusMinusCheckBox.Checked; ui.IsPowerStep1W = Step1WCheckBox.Checked; } var stats = m_deviceConfiguration.Counters; { var now = DateTime.Now; // General -> Stats Tab stats.PuffsCount = (uint)PuffsUpDown.Value; stats.PuffsTime = (uint)(PuffsTimeUpDown.Value * 10); // Time sync stats.DateTime.Year = (ushort)now.Year; stats.DateTime.Month = (byte)now.Month; stats.DateTime.Day = (byte)now.Day; stats.DateTime.Hour = (byte)now.Hour; stats.DateTime.Minute = (byte)now.Minute; stats.DateTime.Second = (byte)now.Second; ui.PuffsTimeFormat = PuffsTimeFormatComboBox.GetSelectedItem <ArcticFoxConfiguration.PuffsTimeFormat>(); } var advanced = m_deviceConfiguration.Advanced; { advanced.PuffCutOff = (byte)(PuffCutOffUpDown.Value * 10); advanced.ShuntCorrection = (byte)ShuntCorrectionUpDown.Value; advanced.BatteryModel = BatteryModelComboBox.GetSelectedItem <ArcticFoxConfiguration.BatteryModel>(); advanced.IsX32 = X32CheckBox.Checked; advanced.IsLightSleepMode = LightSleepCheckBox.Checked; advanced.ResetCountersOnStartup = ResetCountersCheckBox.Checked; advanced.CheckTCR = CheckTCRCheckBox.Checked; advanced.IsUsbCharge = UsbChargeCheckBox.Checked; advanced.UsbNoSleep = UsbNoSleepCheckBox.Checked; advanced.BatteryVoltageOffsets[0] = (sbyte)(Battery1OffsetUpDown.Value * 100); advanced.BatteryVoltageOffsets[1] = (sbyte)(Battery2OffsetUpDown.Value * 100); advanced.BatteryVoltageOffsets[2] = (sbyte)(Battery3OffsetUpDown.Value * 100); advanced.BatteryVoltageOffsets[3] = (sbyte)(Battery4OffsetUpDown.Value * 100); } }
private void InitializeControls() { var errorIcon = BitmapProcessor.CreateIcon(Resources.exclamation); if (errorIcon != null) { MainErrorProvider.Icon = errorIcon; } MainContainer.SelectedPage = WelcomePage; FirmwareVersionTextBox.ReadOnly = true; FirmwareVersionTextBox.BackColor = Color.White; BuildTextBox.ReadOnly = true; BuildTextBox.BackColor = Color.White; HardwareVersionTextBox.ReadOnly = true; HardwareVersionTextBox.BackColor = Color.White; BootModeTextBox.ReadOnly = true; BootModeTextBox.BackColor = Color.White; TraceTextBox.ReadOnly = true; TraceTextBox.BackColor = Color.White; InititalizeComboBoxes(); TemperatureTypeComboBox.SelectedValueChanged += (s, e) => { var isCelcius = TemperatureTypeComboBox.GetSelectedItem <bool>(); if (isCelcius) { TemperatureUpDown.Minimum = 100; TemperatureUpDown.Maximum = 315; } else { TemperatureUpDown.Minimum = 200; TemperatureUpDown.Maximum = 600; } }; PreheatTypeComboBox.SelectedValueChanged += (s, e) => { var isPercents = PreheatTypeComboBox.GetSelectedItem <bool>(); if (isPercents) { PreheatPowerUpDown.DecimalPlaces = 0; PreheatPowerUpDown.Increment = 1; PreheatPowerUpDown.Minimum = 100; PreheatPowerUpDown.Maximum = 250; } else { PreheatPowerUpDown.DecimalPlaces = 1; PreheatPowerUpDown.Increment = 0.1m; PreheatPowerUpDown.Minimum = 1; PreheatPowerUpDown.Maximum = 75; } }; SelectedModeComboBox.SelectedValueChanged += (s, e) => { var mode = SelectedModeComboBox.GetSelectedItem <VapeMode>(); switch (mode) { case VapeMode.TempNi: SetupModesCheckBoxes(TempNiModeCheckBox); break; case VapeMode.TempTi: SetupModesCheckBoxes(TempTiModeCheckBox); break; case VapeMode.TempSS: SetupModesCheckBoxes(TempSSModeCheckBox); break; case VapeMode.TCR: SetupModesCheckBoxes(TCRModeCheckBox); break; case VapeMode.Power: SetupModesCheckBoxes(PowerModeCheckBox); break; case VapeMode.Bypass: SetupModesCheckBoxes(BypassModeCheckBox); break; case VapeMode.Start: SetupModesCheckBoxes(SmartModeCheckBox); break; default: throw new ArgumentOutOfRangeException(); } SelectedTCRComboBox.SelectedIndex = Math.Min(m_dataflash.ParamsBlock.SelectedTCRIndex, (byte)2); SelectedTCRComboBox.Visible = TCRIndexLabel.Visible = mode == VapeMode.TCR; }; BatteryModelComboBox.SelectedValueChanged += (s, e) => { var batteryModel = BatteryModelComboBox.GetSelectedItem <BatteryModel>(); BatteryEditButton.Visible = batteryModel == BatteryModel.Custom; }; PortComboBox.SelectedIndex = 0; BrightnessTrackBar.ValueChanged += (s, e) => BrightnessPercentLabel.Text = (int)(BrightnessTrackBar.Value * 100m / 255) + @"%"; DownloadButton.Click += DownloadButton_Click; UploadButton.Click += UploadButton_Click; ResetButton.Click += ResetButton_Click; BatteryEditButton.Click += BatteryEditButton_Click; TakeScreenshotButton.Click += TakeScreenshotButton_Click; SaveScreenshotButton.Click += SaveScreenshotButton_Click; BroadcastButton.Click += BroadcastButton_Click; RebootButton.Click += RebootButton_Click; ComConnectButton.Click += ComConnectButton_Click; ComDisconnectButton.Click += ComDisconnectButton_Click; CommandTextBox.KeyDown += CommandTextBox_KeyDown; }
private void InitializeComboBoxes() { // Fill Classic Skin ComboBoxes foreach (var comboBox in new[] { ClassicVWLine1ComboBox, ClassicVWLine2ComboBox, ClassicVWLine3ComboBox, ClassicVWLine4ComboBox, ClassicTCLine1ComboBox, ClassicTCLine2ComboBox, ClassicTCLine3ComboBox, ClassicTCLine4ComboBox, }) { comboBox.Fill(PredefinedData.ArcticFox.ClassicSkinLineContentItems); } // Fill Circle Skin ComboBoxes foreach (var comboBox in new[] { CircleVWLine1ComboBox, CircleVWLine2ComboBox, CircleTCLine1ComboBox, CircleTCLine2ComboBox }) { comboBox.Fill(PredefinedData.ArcticFox.CircleSkinLineContentItems); } CircleVWLine3ComboBox.Fill(PredefinedData.ArcticFox.CircleSkin3RdLineContentItems); CircleTCLine3ComboBox.Fill(PredefinedData.ArcticFox.CircleSkin3RdLineContentItems); // Fill Small Skin ComboBoxes foreach (var comboBox in new[] { SmallVWLine1ComboBox, SmallVWLine2ComboBox, SmallTCLine1ComboBox, SmallTCLine2ComboBox, }) { comboBox.Fill(PredefinedData.ArcticFox.SmallScreenLineContentItems); } MainScreenSkinComboBox.Fill(PredefinedData.ArcticFox.MainScreenSkins); ChargeScreenComboBox.Fill(PredefinedData.ArcticFox.ChargeScreenTypes); ClockTypeComboBox.Fill(PredefinedData.ArcticFox.ClockTypes); ScreensaverTimeComboBox.Fill(PredefinedData.ArcticFox.ScreenSaverTimes); foreach (var clickComboBox in new[] { ClicksVW2ComboBox, ClicksVW3ComboBox, ClicksVW4ComboBox, ClicksTC2ComboBox, ClicksTC3ComboBox, ClicksTC4ComboBox }) { clickComboBox.Fill(PredefinedData.ArcticFox.ClickActions); } UpDownButtonsComboBox.Fill(PredefinedData.ArcticFox.UpDownButtons); PuffsTimeFormatComboBox.Fill(PredefinedData.ArcticFox.PuffTimeFormats); BatteryModelComboBox.Fill(PredefinedData.ArcticFox.BatteryModels); BatteryModelComboBox.SelectedValueChanged += (s, e) => { var batteryModel = BatteryModelComboBox.GetSelectedItem <ArcticFoxConfiguration.BatteryModel>(); BatteryEditButton.Visible = batteryModel == ArcticFoxConfiguration.BatteryModel.Custom; }; SelectedProfleComboBox.SelectedValueChanged += (s, e) => { var profileIndex = SelectedProfleComboBox.GetSelectedItem <byte>(); if (profileIndex >= ProfilesTabControl.TabCount) { return; } for (var i = 0; i < ProfilesTabControl.TabCount; i++) { var tabPage = ProfilesTabControl.TabPages[i]; var tabContent = tabPage.Controls[0] as ProfileTabContent; if (tabContent == null) { return; } if (i == profileIndex) { tabContent.CanDeactive = false; tabContent.IsProfileActivated = true; } else { tabContent.CanDeactive = true; } } }; }