Exemplo n.º 1
0
        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);
            });
        }
        private void btnStartCharge_Click(object sender, EventArgs e)
        {
            try
            {
                EnumAddressDirection chargeDirection = (EnumAddressDirection)boxChargeDirection.SelectedItem;

                asePackage.StartCharge(chargeDirection);
            }
            catch (Exception ex)
            {
                LogException(GetType().Name + ":" + MethodBase.GetCurrentMethod().Name, ex.Message);
            }
        }
Exemplo n.º 3
0
 public void StartCharge(EnumAddressDirection chargeDirection)
 {
     if (!LocalPackage.MainFlowHandler.localData.MIPCData.Charging)
     {
         Task.Run(() =>
         {
             LocalPackage.MainFlowHandler.StartChargingByAddressID(Vehicle.Instance.MoveStatus.LastAddress.Id);
             SpinWait.SpinUntil(() => LocalPackage.MainFlowHandler.localData.MIPCData.Charging, 30 * 1000);
             OnUpdateChargeStatusEvent?.Invoke(this, LocalPackage.MainFlowHandler.localData.MIPCData.Charging);
         });
     }
     else
     {
         OnUpdateChargeStatusEvent?.Invoke(this, LocalPackage.MainFlowHandler.localData.MIPCData.Charging);
     }
 }