internal BatteryState() { PowerManagementNativeMethods.SystemBatteryState battState = Power.GetSystemBatteryState(); acOnline = battState.AcOnLine; maxCharge = (int)battState.MaxCapacity; currentCharge = (int)battState.RemainingCapacity; dischargeRate = (int)battState.Rate; long estimatedTime = (long)battState.EstimatedTime; int minutes = (int)(estimatedTime / 60); int seconds = (int)(estimatedTime % 60); estimatedTimeRemaining = new TimeSpan(0, minutes, seconds); suggestedCriticalBatteryCharge = (int)battState.DefaultAlert1; suggestedBatteryWarningCharge = (int)battState.DefaultAlert2; }
internal BatteryState() { PowerManagementNativeMethods.SystemBatteryState state = Power.GetSystemBatteryState(); if (!state.BatteryPresent) { throw new InvalidOperationException(LocalizedMessages.PowerManagerBatteryNotPresent); } ACOnline = state.AcOnLine; MaxCharge = (int)state.MaxCapacity; CurrentCharge = (int)state.RemainingCapacity; ChargeRate = (int)state.Rate; uint estimatedTime = state.EstimatedTime; EstimatedTimeRemaining = estimatedTime != uint.MaxValue ? new TimeSpan(0, 0, (int)estimatedTime) : TimeSpan.MaxValue; SuggestedCriticalBatteryCharge = (int)state.DefaultAlert1; SuggestedBatteryWarningCharge = (int)state.DefaultAlert2; }