public void StartCharge(EnumAddressDirection chargeDirection) { Task.Run(() => { try { SpinWait.SpinUntil(() => false, 2000); IsCharging = true; OnUpdateChargeStatusEvent?.Invoke(this, IsCharging); while (BatteryStatus.Percentage < 100 && IsCharging) { SpinWait.SpinUntil(() => false, 2000); BatteryStatus.Percentage = Math.Min(BatteryStatus.Percentage + 10, 100); OnUpdateBatteryStatusEvent?.Invoke(this, BatteryStatus); } } catch (Exception ex) { OnLogErrorEvent?.Invoke(this, new MessageHandlerArgs() { ClassMethodName = GetType().Name + ":" + System.Reflection.MethodBase.GetCurrentMethod().Name, Message = ex.Message }); } SpinWait.SpinUntil(() => false, 2000); IsCharging = false; OnUpdateChargeStatusEvent?.Invoke(this, IsCharging); }); }
public void GetBatteryAndChargeStatus() { var localData = LocalPackage.MainFlowHandler.localData; OnUpdateBatteryStatusEvent?.Invoke(this, new BatteryStatus() { Percentage = (int)localData.BatteryInfo.SOC, Voltage = localData.BatteryInfo.V }); OnUpdateChargeStatusEvent?.Invoke(this, localData.MIPCData.Charging); }
public void GetBatteryAndChargeStatus() { OnUpdateBatteryStatusEvent?.Invoke(this, BatteryStatus); OnUpdateChargeStatusEvent?.Invoke(this, IsCharging); }
public void SetPercentageTo(int percentage) { BatteryStatus.Percentage = percentage; OnUpdateBatteryStatusEvent?.Invoke(this, BatteryStatus); }