private void InitializeWorkspaceFromDataflash([NotNull] ArcticFoxConfiguration.CustomBattery battery) { if (battery == null) { throw new ArgumentNullException("battery"); } for (var i = 0; i < battery.Data.Length; i++) { var data = battery.Data[i]; var percents = Math.Max(MinPrc, Math.Min(data.Percents, MaxPrc)); var voltage = Math.Max(MinVolts, Math.Min(data.Voltage / 100m, MaxVolts)); var point = new DataPoint(percents, (double)voltage) { MarkerStyle = MarkerStyle.Circle, MarkerSize = 7, Label = string.Format("{0} %", percents), Tag = "draggable" }; m_curveControls[i].PercentsUpDown.Value = percents; m_curveControls[i].PercentsUpDown.Tag = point; m_curveControls[i].PercentsUpDown.ValueChanged += PercentsUpDown_ValueChanged; m_curveControls[i].VoltsUpDown.Value = voltage; m_curveControls[i].VoltsUpDown.Tag = point; m_curveControls[i].VoltsUpDown.ValueChanged += VoltsUpDown_ValueChanged; DischargeChart.Series[0].Points.Add(point); } CutoffUpDown.Value = battery.Cutoff / 100m; }
public DischargeProfileWindow([NotNull] ArcticFoxConfiguration.CustomBattery battery) { if (battery == null) { throw new ArgumentNullException("battery"); } m_battery = battery; InitializeComponent(); InitializeChart(); InitializeControls(); InitializeWorkspaceFromDataflash(m_battery); }
private void SaveWorkspaceToDataflash([NotNull] ArcticFoxConfiguration.CustomBattery battery) { if (battery == null) { throw new ArgumentNullException("battery"); } for (var i = 0; i < battery.Data.Length; i++) { var data = m_curveControls[i]; battery.Data[i].Percents = (ushort)data.PercentsUpDown.Value; battery.Data[i].Voltage = (ushort)(data.VoltsUpDown.Value * 100); } battery.Cutoff = (ushort)(CutoffUpDown.Value * 100); }
private void ImportButton_Click(object sender, EventArgs e) { string filePath; using (var op = new OpenFileDialog { Filter = FileFilters.XmlFilter }) { if (op.ShowDialog() != DialogResult.OK) { return; } filePath = op.FileName; } try { using (var fs = File.Open(filePath, FileMode.Open)) { var data = Serializer.Read <BatteryProfile>(fs); if (data == null || data.Points == null || data.Points.Length != m_curveControls.Length) { InfoBox.Show("Invalid battery profile file."); return; } var custom = new ArcticFoxConfiguration.CustomBattery { Cutoff = (ushort)(data.Cutoff * 100), Data = data.Points.Select(x => new ArcticFoxConfiguration.PercentsVoltage { Percents = x.Percent, Voltage = (ushort)(x.Voltage * 100) }).ToArray() }; InstallPreset(custom); } } catch (Exception ex) { Trace.Warn(ex); InfoBox.Show("An error occurred during battery profile import."); } }
private void InstallPreset(ArcticFoxConfiguration.CustomBattery customBattery) { m_isInstallingPreset = true; for (var i = 0; i < customBattery.Data.Length; i++) { var data = customBattery.Data[i]; var group = m_curveControls[i]; var percents = Math.Max(MinPrc, Math.Min(data.Percents, MaxPrc)); var voltage = Math.Max(MinVolts, Math.Min(data.Voltage / 100m, MaxVolts)); group.PercentsUpDown.Minimum = MinPrc; group.PercentsUpDown.Maximum = MaxPrc; group.PercentsUpDown.Value = percents; group.VoltsUpDown.Minimum = MinVolts; group.VoltsUpDown.Maximum = MaxVolts; group.VoltsUpDown.Value = voltage; } m_isInstallingPreset = false; UpdatePointsMinMax(); }