private void UpdateChargeData(object sender, EventArgs e) { Battery battery = BatteryChargeService.Instance.BatteryService.BatteryData; ChargeData chargeData = new ChargeData { DateTime = DateTime.Now, SOC = battery.SOCPercentage, ChargeCurrentA = BatteryChargeService.Instance.ChargerActualCurrent, ChargeVoltagemV = BatteryChargeService.Instance.ChargerActualVoltage, PackmA = battery.BatteryCurrent, PackmV = battery.BatteryVoltage, MinCellmV = battery.MinCellVoltage, MaxCellmV = battery.MaxCellVoltage, MinCellTemp = battery.MinCellTemp, MaxCellTemp = battery.MaxCellTemp, BalanceVoltageThresholdFalling = battery.BalanceVoltageThresholdFalling, BalanceVoltageThresholdRising = battery.BalanceVoltageThresholdRising, ChargeCellVoltageError = battery.MinChargeCellVoltageError, DischargeCellVoltageError = battery.MinDischargeCellVoltageError }; if (BatteryChargeService.Instance.IsCharging && BatteryDischargeService.Instance.IsDischarging) { chargeData.State = ChargeData.STATE_ERROR; } else if (BatteryChargeService.Instance.IsCharging) { chargeData.State = ChargeData.STATE_CHARGE; } else if (BatteryDischargeService.Instance.IsDischarging) { chargeData.State = ChargeData.STATE_DISCHARGE; } else { chargeData.State = ChargeData.STATE_IDLE; } chargeDataSet.Add(chargeData); BatteryMonitorUpdateEventHandler?.Invoke(new ChargeDataReceivedEventArgs(chargeData)); }
private void UpdateChargeData(object sender, EventArgs e) { Battery battery = BatteryChargeService.Instance.BatteryService.BatteryData; ChargeData chargeData = new ChargeData { DateTime = DateTime.Now, SOC = battery.SOCPercentage, ChargeCurrentA = BatteryChargeService.Instance.ChargerActualCurrent, ChargeVoltagemV = BatteryChargeService.Instance.ChargerActualVoltage, PackmA = battery.BatteryCurrent, PackmV = battery.BatteryVoltage, MinCellmV = battery.MinCellVoltage, MaxCellmV = battery.MaxCellVoltage, MinCellTemp = battery.MinCellTemp, MaxCellTemp = battery.MaxCellTemp, BalanceVoltageThresholdFalling = battery.BalanceVoltageThresholdFalling, BalanceVoltageThresholdRising = battery.BalanceVoltageThresholdRising, ChargeCellVoltageError = battery.MinChargeCellVoltageError, DischargeCellVoltageError = battery.MinDischargeCellVoltageError }; if (BatteryChargeService.Instance.IsCharging && BatteryDischargeService.Instance.IsDischarging) { chargeData.State = ChargeData.STATE_ERROR; } else if (BatteryChargeService.Instance.IsCharging) { chargeData.State = ChargeData.STATE_CHARGE; } else if (BatteryDischargeService.Instance.IsDischarging) { chargeData.State = ChargeData.STATE_DISCHARGE; } else { chargeData.State = ChargeData.STATE_IDLE; } // Add all of the CMU voltages foreach (BMU bmu in battery.GetActiveBMUs()) { foreach (CMU cmu in bmu.GetActiveCMUs()) { if (cmu.State == CanReceivingNode.STATE_ON) { uint?[] voltages = new uint?[9]; voltages[0] = cmu.Cell0mV; voltages[1] = cmu.Cell1mV; voltages[2] = cmu.Cell2mV; voltages[3] = cmu.Cell3mV; voltages[4] = cmu.Cell4mV; voltages[5] = cmu.Cell5mV; voltages[6] = cmu.Cell6mV; voltages[7] = cmu.Cell7mV; voltages[8] = (uint?)cmu.SerialNumber; if (chargeData.CellVoltages == null) { chargeData.CellVoltages = new List <uint?[]>(); } chargeData.CellVoltages.Add(voltages); } } } chargeDataSet.Add(chargeData); if (IsSavingCharge) { SaveChargeData(chargeData); } BatteryMonitorUpdateEventHandler?.Invoke(new ChargeDataReceivedEventArgs(chargeData)); }