public PowerStatusConfiguration(PowerStatusChoice chosenstatus, BatteryChargeStatus chosenBCS, int percentage) { ChosenStatus = chosenstatus; Percentage = percentage; ChosenBCS = chosenBCS; InitializeComponent(); }
/// <summary> /// Initializes a new instance of MachineStatus /// </summary> /// <param name="ip">IP Address of the monitored device</param> /// <param name="blf">The remaining Battery Life Percentage</param> /// <param name="bcs">the Battery Charge Status</param> /// <param name="cpu">The Average CPU usage percentage</param> /// <param name="mem">The Average Memory usage percentage</param> /// <param name="disk">The percentage of free space in the deault HDD</param> /// <param name="info">Sores aditional info</param> internal MachineStatus(IPAddress ip, int blf, BatteryChargeStatus bcs, int cpu, int mem, int disk, string info) { this.ip = ip; this.batteryLifePercent = blf; this.batteryChargeStatus = bcs; if ((cpu > 100) || (cpu < -1)) { throw new ArgumentOutOfRangeException("cpu"); } if ((mem > 100) || (mem < -1)) { throw new ArgumentOutOfRangeException("mem"); } if ((disk > 100) || (disk < -1)) { throw new ArgumentOutOfRangeException("disk"); } this.cpu = cpu; this.memory = mem; this.disk = disk; if (info == null) { info = ""; } else { this.info = info.Trim(); } }
internal PowerStatus (BatteryChargeStatus batteryChargeStatus, int batteryFullLifetime, float batteryLifePercent, int batteryLifeRemaining, PowerLineStatus powerLineStatus) { this.battery_charge_status = batteryChargeStatus; this.battery_full_lifetime = batteryFullLifetime; this.battery_life_percent = batteryLifePercent; this.battery_life_remaining = batteryLifeRemaining; this.power_line_status = powerLineStatus; }
public void OnSaved(WpfConfiguration configurationControl) { var config = (PowerStatusConfiguration)configurationControl; chosenStatus = config.ChosenStatus; chosenBCS = config.ChosenBCS; percentage = config.Percentage; }
public TimeData(DateTime time) { noData = true; this.time = time; charger = PowerLineStatus.Unknown; status = BatteryChargeStatus.Unknown; }
private void ProcessMessage(string message) { string[] info = message.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); BatteryChargeStatus status = (BatteryChargeStatus)Enum.Parse(typeof(BatteryChargeStatus), info[1]); PowerLineStatus charger = (PowerLineStatus)Enum.Parse(typeof(PowerLineStatus), info[2]); ApplicationStartup.UpdateIcon(int.Parse(info[0]), status, charger); }
internal PowerStatus(BatteryChargeStatus batteryChargeStatus, int batteryFullLifetime, float batteryLifePercent, int batteryLifeRemaining, PowerLineStatus powerLineStatus) { this.battery_charge_status = batteryChargeStatus; this.battery_full_lifetime = batteryFullLifetime; this.battery_life_percent = batteryLifePercent; this.battery_life_remaining = batteryLifeRemaining; this.power_line_status = powerLineStatus; }
public TimeData(DateTime date, string line) { string[] data = line.Split(new char[] { ';', '=' }); data[0] = FixNumeric(data[0]); time = date.Add(TimeSpan.Parse(data[0])); percentage = Convert.ToInt32(data[1]); status = (BatteryChargeStatus)Enum.Parse(typeof(BatteryChargeStatus), data[2]); charger = (PowerLineStatus)Enum.Parse(typeof(PowerLineStatus), data[3]); }
/// <summary> /// <para>Returns the current Power status</para> /// </summary> /// <returns></returns> public static TreeNode GetStatus() { TreeNode tnMain = new TreeNode("Power"); tnMain.Nodes.Add("Active power scheme: " + ActivePowerScheme.Name + " (" + ActivePowerScheme.Guid.ToString() + ")"); tnMain.Nodes.Add("Power Line Status: " + PowerLineStatus.ToString()); tnMain.Nodes.Add("Battery charge status: " + BatteryChargeStatus.ToString()); tnMain.Nodes.Add("Battery available: " + BatteryAvailable.ToString()); tnMain.Nodes.Add("Battery full life time: " + BatteryFullLifetime.ToString()); tnMain.Nodes.Add("Battery remaining life time: " + BatteryLifeRemaining.ToString()); tnMain.Nodes.Add("Battery charge percent: " + BatteryLifePercent + "%"); return(tnMain); }
private void HandleBatteryStatus(BatteryChargeStatus chargeStatus) { if (chargeStatus == BatteryChargeStatus.Low && !infoShown) { Button.ToolTip = text.Get(TextKey.SystemControl_BatteryChargeLowInfo); infoShown = true; } if (chargeStatus == BatteryChargeStatus.Critical && !warningShown) { Button.ToolTip = text.Get(TextKey.SystemControl_BatteryChargeCriticalWarning); warningShown = true; } }
public void SetBatteryCharge(double charge, BatteryChargeStatus status) { Dispatcher.InvokeAsync(() => { var width = BATTERY_CHARGE_MAX_WIDTH * charge; width = width > BATTERY_CHARGE_MAX_WIDTH ? BATTERY_CHARGE_MAX_WIDTH : width; width = width < 0 ? 0 : width; BatteryCharge.Width = width; BatteryCharge.Fill = status == BatteryChargeStatus.Low ? Brushes.Orange : BatteryCharge.Fill; BatteryCharge.Fill = status == BatteryChargeStatus.Critical ? Brushes.Red : BatteryCharge.Fill; Warning.Visibility = status == BatteryChargeStatus.Critical ? Visibility.Visible : Visibility.Collapsed; }); }
public void OnBatteryInfoUpdate(object sender, System.Timers.ElapsedEventArgs args) { lastPercentage = percentage; lastStatus = status; lastCharger = charger; percentage = (int)(SystemInformation.PowerStatus.BatteryLifePercent * 100); status = SystemInformation.PowerStatus.BatteryChargeStatus; charger = SystemInformation.PowerStatus.PowerLineStatus; if (client != null && (percentage != lastPercentage || status != lastStatus || charger != lastCharger)) { client.SendToClient(percentage + ";" + status + ";" + charger); } }
private async void CheckBatteryStatusAsync() { while (!_stop) { if (_statusLastCheck != SystemInformation.PowerStatus.BatteryChargeStatus || Math.Abs(_percentLastCheck - SystemInformation.PowerStatus.BatteryLifePercent) >= 0.01) { _statusLastCheck = SystemInformation.PowerStatus.BatteryChargeStatus; _percentLastCheck = SystemInformation.PowerStatus.BatteryLifePercent; OnPropertyChanged(nameof(BatteryStatusVisual)); OnPropertyChanged(nameof(BatteryStatusVisualVisibility)); OnPropertyChanged(nameof(BatteryStatusPercent)); } await Task.Delay(CheckDelay); } }
private async void CheckBatteryStatusAsync() { while(!_stop) { if(_statusLastCheck != SystemInformation.PowerStatus.BatteryChargeStatus || Math.Abs(_percentLastCheck - SystemInformation.PowerStatus.BatteryLifePercent) >= 0.01) { _statusLastCheck = SystemInformation.PowerStatus.BatteryChargeStatus; _percentLastCheck = SystemInformation.PowerStatus.BatteryLifePercent; OnPropertyChanged(nameof(BatteryStatusVisual)); OnPropertyChanged(nameof(BatteryStatusVisualVisibility)); OnPropertyChanged(nameof(BatteryStatusPercent)); } await Task.Delay(CheckDelay); } }
private void GetInformation() { DateTime last = DateTime.Now.Subtract(new TimeSpan(0, 2, 0)); while (!stopThread) { if (last.AddMinutes(1) <= DateTime.Now) { percentage = SystemInformation.PowerStatus.BatteryLifePercent; timeLeft = SystemInformation.PowerStatus.BatteryLifeRemaining; status = SystemInformation.PowerStatus.BatteryChargeStatus; charger = SystemInformation.PowerStatus.PowerLineStatus; last = DateTime.Now; } Thread.Sleep(50); } }
private void RenderCharge(double charge, BatteryChargeStatus status) { var width = maxWidth * charge; BatteryCharge.Width = width > maxWidth ? maxWidth : (width < 0 ? 0 : width); switch (status) { case BatteryChargeStatus.Critical: BatteryCharge.Fill = Brushes.Red; break; case BatteryChargeStatus.Low: BatteryCharge.Fill = Brushes.Orange; break; default: BatteryCharge.Fill = initialBrush; break; } }
private MenuItem GeneratePowerData() { string pluggedStatus, powerDescription; MenuItem powerDataMenuItem = new MenuItem(); powerDataMenuItem.Enabled = false; float batteryPercentage = SystemInformation.PowerStatus.BatteryLifePercent; BatteryChargeStatus batteryStatus = SystemInformation.PowerStatus.BatteryChargeStatus; if (batteryStatus == BatteryChargeStatus.NoSystemBattery) { powerDescription = "No battery detected"; powerDataMenuItem.Text = powerDescription; return(powerDataMenuItem); } PowerLineStatus powerLineStatus = SystemInformation.PowerStatus.PowerLineStatus; pluggedStatus = SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online ? "Plugged in" : "Unplugged"; // Discharging, time to battery die if (powerLineStatus == PowerLineStatus.Offline) { powerDescription = GenerateBatteryOfflineData(batteryPercentage); } else { int secondsToFullCharge = SystemInformation.PowerStatus.BatteryFullLifetime; powerDescription = $"{batteryPercentage * 100}% - {pluggedStatus}"; } powerDataMenuItem.Text = powerDescription; return(powerDataMenuItem); }
private void HandleBatteryStatus(BatteryChargeStatus status) { if (status == BatteryChargeStatus.Low && !infoShown) { foreach (var control in controls) { control.ShowLowBatteryInfo(text.Get(TextKey.SystemControl_BatteryChargeLowInfo)); } infoShown = true; logger.Info("Informed the user about low battery charge."); } if (status == BatteryChargeStatus.Critical && !warningShown) { foreach (var control in controls) { control.ShowCriticalBatteryWarning(text.Get(TextKey.SystemControl_BatteryChargeCriticalWarning)); } warningShown = true; logger.Warn("Warned the user about critical battery charge."); } }
protected override void OnLoadDefaults() { chosenStatus = PowerStatusChoice.PowerState; chosenBCS = BatteryChargeStatus.Charging; percentage = 30; }
/// <summary> /// Initializes a new instance of MachineStatus /// </summary> /// <param name="ip">IP Address of the monitored device</param> /// <param name="blf">The remaining Battery Life Percentage</param> /// <param name="bcs">the Battery Charge Status</param> /// <param name="cpu">The Average CPU usage percentage</param> /// <param name="mem">The Average Memory usage percentage</param> /// <param name="disk">The percentage of free space in the deault HDD</param> internal MachineStatus(IPAddress ip, int blf, BatteryChargeStatus bcs, int cpu, int mem, int disk) : this(ip, blf, bcs, cpu, mem, disk, "") { }
/// <summary> /// Initializes a new instance of MachineStatus /// </summary> /// <param name="ip">IP Address of the monitored device</param> /// <param name="blf">The remaining Battery Life Percentage</param> /// <param name="bcs">the Battery Charge Status</param> /// <param name="cpu">The Average CPU usage percentage</param> internal MachineStatus(IPAddress ip, int blf, BatteryChargeStatus bcs, int cpu) : this(ip, blf, bcs, cpu, -1, -1, "") { }
public void Battery() { ACStatus.Text = "電源状態不明"; BatteryStatus.Text = "???%"; DateTime dt = DateTime.Now; TimeLabel.Text = dt.ToString("HH:mm:ss"); PowerLineStatus PowerLineStatus = SystemInformation.PowerStatus.PowerLineStatus; BatteryChargeStatus BatteryChargeStatus = SystemInformation.PowerStatus.BatteryChargeStatus; float BatteryPercent = SystemInformation.PowerStatus.BatteryLifePercent; switch (PowerLineStatus) { case PowerLineStatus.Online: switch (BatteryChargeStatus) { case BatteryChargeStatus.Charging: ACStatus.Text = "AC電源\nバッテリー充電中"; break; case BatteryChargeStatus.NoSystemBattery: ACStatus.Text = "AC電源"; break; case BatteryChargeStatus.Critical: ACStatus.Text = "AC電源\nバッテリー僅少"; break; case BatteryChargeStatus.High: ACStatus.Text = "AC電源\nバッテリー高"; break; case BatteryChargeStatus.Low: ACStatus.Text = "AC電源\nバッテリー少"; break; case BatteryChargeStatus.Unknown: ACStatus.Text = "AC電源\nバッテリー不明"; break; default: ACStatus.Text = "AC電源\nバッテリー中"; break; } if (BatteryChargeStatus == BatteryChargeStatus.NoSystemBattery) { BatteryStatus.Text = ""; } else { BatteryStatus.Text = (BatteryPercent * 100).ToString() + "%"; } break; case PowerLineStatus.Offline: switch (BatteryChargeStatus) { case BatteryChargeStatus.Charging: ACStatus.Text = "バッテリー充電中"; break; case BatteryChargeStatus.Critical: ACStatus.Text = "バッテリー僅少"; break; case BatteryChargeStatus.High: ACStatus.Text = "バッテリー高"; break; case BatteryChargeStatus.Low: ACStatus.Text = "バッテリー少"; break; case BatteryChargeStatus.Unknown: ACStatus.Text = "バッテリー不明"; break; default: ACStatus.Text = "バッテリー中"; break; } BatteryStatus.Text = (BatteryPercent * 100).ToString() + "%"; break; default: ACStatus.Text = "お手上げ"; break; } }
internal void Win32_SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e) { if (OnPowerModeChanged != null) { OnPowerModeChanged(this, new EventArgsValue <PowerModes>(e.Mode)); } switch (e.Mode) { case PowerModes.Resume: if (OnResume != null) { OnResume(this, new EventArgs()); } break; case PowerModes.Suspend: if (OnSuspend != null) { OnSuspend(this, new EventArgs()); } break; case PowerModes.StatusChange: if (OnPowerLineStatusChanged != null) { PowerLineStatus oldValuePLS = (PowerLineStatus)oldValues[EventType.PowerLineStatusChanged]; PowerLineStatus newValuePLS = Status.Power.PowerLineStatus; if (oldValuePLS != newValuePLS) { OnPowerLineStatusChanged(this, new EventArgsValues <PowerLineStatus>(oldValuePLS, newValuePLS)); oldValues[EventType.PowerLineStatusChanged] = newValuePLS; } } BatteryChargeStatus oldValueBCS = (BatteryChargeStatus)oldValues[EventType.BatteryStatusChanged]; BatteryChargeStatus newValueBCS = Status.Power.BatteryChargeStatus; if (OnBatteryStatusChanged != null) { if (oldValueBCS != newValueBCS) { OnBatteryStatusChanged(this, new EventArgsValues <BatteryChargeStatus>(oldValueBCS, newValueBCS)); oldValues[EventType.BatteryStatusChanged] = newValueBCS; } } if (OnBatteryAvailabilityChanged != null) { bool?oldValueBCSb = null, newValueBCSb = null; if (oldValueBCS == BatteryChargeStatus.NoSystemBattery) { oldValueBCSb = false; } else if (oldValueBCS != BatteryChargeStatus.Unknown) { oldValueBCSb = true; } if (newValueBCS == BatteryChargeStatus.NoSystemBattery) { newValueBCSb = false; } else if (newValueBCS != BatteryChargeStatus.Unknown) { newValueBCSb = true; } if (oldValueBCSb != newValueBCSb) { OnBatteryAvailabilityChanged(this, new EventArgsValue <bool?>(newValueBCSb)); } } break; } }
public BatteryStatus(BatteryChargeStatus status, int chargeLevel, double?voltage = null) { Status = status; ChargeLevel = chargeLevel; Voltage = voltage; }
public BatteryStatusResult(BatteryChargeStatus status, int chargeLevel, int voltage) { Status = status; ChargeLevel = chargeLevel; Voltage = voltage; }
public static void UpdateIcon(int percentage, BatteryChargeStatus status, PowerLineStatus charger) { int index = (int)(percentage / 11.5f); if (charger == PowerLineStatus.Online) { index += 13; } if ((status & BatteryChargeStatus.Low) == BatteryChargeStatus.Low && charger == PowerLineStatus.Offline) { index = 9; } else if ((status & BatteryChargeStatus.Critical) == BatteryChargeStatus.Critical && charger == PowerLineStatus.Offline) { index = 10; } else if ((status & BatteryChargeStatus.NoSystemBattery) == BatteryChargeStatus.NoSystemBattery) { index = 11; } try { instance.trayIcon.Icon = instance.parse.GetIcon(index); } catch (Exception) { } string text = percentage + "% " + TranslationManager.Get("remaining"); string msg = ""; if (percentage == 100 && charger == PowerLineStatus.Online) { msg = TranslationManager.Get("FullyCharged"); } else if (charger == PowerLineStatus.Online) { msg = TranslationManager.Get("PluggedIn"); if ((status & BatteryChargeStatus.Charging) == BatteryChargeStatus.Charging) { msg += ", " + TranslationManager.Get("Charging"); } else { msg += ", " + TranslationManager.Get("NotCharging"); } } if ((status & BatteryChargeStatus.NoSystemBattery) == BatteryChargeStatus.NoSystemBattery) { instance.currentText = TranslationManager.Get("NoBattery"); } else { instance.currentText = text + (msg == "" ? "" : (" (" + msg + ")")); } instance.trayIcon.Text = instance.currentText; if (instance.currentState != status && ((status & BatteryChargeStatus.Low) == BatteryChargeStatus.Low || (status & BatteryChargeStatus.Critical) == BatteryChargeStatus.Critical) && (status & BatteryChargeStatus.Charging) != BatteryChargeStatus.Charging) { instance.trayIcon.ShowBalloonTip(3000, TranslationManager.Get("warning1"), TranslationManager.Get("warning2"), ToolTipIcon.Warning); } if (((status & BatteryChargeStatus.Low) == BatteryChargeStatus.Low || (status & BatteryChargeStatus.Critical) == BatteryChargeStatus.Critical) && charger == PowerLineStatus.Offline) { instance.warningText = TranslationManager.Get("warning1") + "\n" + TranslationManager.Get("warning2"); } else { instance.warningText = ""; } try { instance.baseImage = instance.parse.GetBitmap(index); } catch (Exception) { } instance.currentState = status; GC.Collect(); }
private void timer_Tick(object sender, EventArgs e) { PowerStatus powerStatus = SystemInformation.PowerStatus; bool fullyCharged = (powerStatus.BatteryLifePercent == 1.0); BatteryChargeStatus chargeStatus = SystemInformation.PowerStatus.BatteryChargeStatus; bool charging = chargeStatus.HasFlag(BatteryChargeStatus.Charging); bool critical = chargeStatus.HasFlag(BatteryChargeStatus.Critical); bool noBattery = chargeStatus.HasFlag(BatteryChargeStatus.NoSystemBattery); PowerLineStatus powerLineStatus = SystemInformation.PowerStatus.PowerLineStatus; bool pluggedIn = (powerLineStatus == PowerLineStatus.Online); batteryPercentage = (powerStatus.BatteryLifePercent * 100).ToString(); Color fontColor = Color.White; if (!noBattery) { if (charging || (pluggedIn && fullyCharged)) { fontColor = Color.Lime; } else if (critical) { fontColor = Color.Red; } } using (Bitmap bitmap = new Bitmap(DrawText(batteryPercentage, new Font(iconFont, iconFontSize), fontColor, Color.Black))) { System.IntPtr intPtr = bitmap.GetHicon(); try { using (Icon icon = Icon.FromHandle(intPtr)) { string description = ""; if (noBattery) { description = "No Battery Detected"; } else if (pluggedIn) { if (charging) { description = string.Format("Charging ({0}%)", batteryPercentage); } else if (fullyCharged) { description = string.Format("Fully Charged ({0}%)", batteryPercentage); } else { description = string.Format("Not Charging ({0}%)", batteryPercentage); } } else { int totalRemaining = SystemInformation.PowerStatus.BatteryLifeRemaining; if (totalRemaining > 0) { TimeSpan timeSpan = TimeSpan.FromSeconds(totalRemaining); description = string.Format("{1} hr {2:D2} min ({0}%) remaining", batteryPercentage, timeSpan.Hours, timeSpan.Minutes); } else { description = string.Format("{0}% remaining", batteryPercentage); } } notifyIcon.Icon = icon; notifyIcon.Text = description; descriptionMenuItem.Text = description; } } finally { DestroyIcon(intPtr); } } }
private void iconUpdate() { PowerStatus powerStatus = SystemInformation.PowerStatus; batteryPercentage = (int)Math.Round((powerStatus.BatteryLifePercent * 100), 0); Color foreground = Color.White; BatteryChargeStatus batteryChargeStatus = SystemInformation.PowerStatus.BatteryChargeStatus; bool charging = batteryChargeStatus.HasFlag(BatteryChargeStatus.Charging); if (charging) { foreground = Color.FromArgb(255, 0, 255, 0); } else if (batteryPercentage < 30) { foreground = Color.FromArgb(255, 255, 0, 0); } else { foreground = Color.FromArgb(255, 255, 255, 255); } // Color background = Color.Black; Color background = Color.Transparent; string drawMe = batteryPercentage.ToString(); Font fontToUse; Brush brushToUse = new SolidBrush(foreground); Rectangle rect; Bitmap bitmapText; Graphics g; if (batteryPercentage == 100) { // reduce size to fit "100" fontToUse = new Font("Tahoma", 20, FontStyle.Regular, GraphicsUnit.Pixel); } else { fontToUse = new Font("Tahoma", 28, FontStyle.Regular, GraphicsUnit.Pixel); } rect = new Rectangle(-6, 2, 42, 32); bitmapText = new Bitmap(32, 32); g = Graphics.FromImage(bitmapText); g.Clear(background); using (SolidBrush brush = new SolidBrush(background)) { g.FillRectangle(brush, 0, 0, 32, 32); } g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit; StringFormat sf = new StringFormat(); sf.Alignment = StringAlignment.Center; sf.LineAlignment = StringAlignment.Center; g.DrawString(drawMe, fontToUse, brushToUse, rect, sf); g.Save(); System.IntPtr intPtr = bitmapText.GetHicon(); try { using (Icon icon = Icon.FromHandle(intPtr)) { notifyIcon.Icon = icon; if (!charging) { int seconds = SystemInformation.PowerStatus.BatteryLifeRemaining; int mins = seconds / 60; int hours = mins / 60; mins = mins % 60; notifyIcon.Text = hours + ":" + mins + " remaining"; } else { notifyIcon.Text = "Charging"; } } } finally { DestroyIcon(intPtr); } // hIcon = (bitmapText.GetHicon()); // notifyIcon.Icon = System.Drawing.Icon.FromHandle(hIcon); // notifyIcon.Text = "Remaining " + batteryPercentage.ToString() + "%"; }