【问题标题】:UWP calculate time until chargedUWP 计算直到收费的时间
【发布时间】:2017-08-03 14:54:30
【问题描述】:

我可以访问 UWP 的电池 API,并且可以显示与系统百分比相同的当前电池百分比。但是,我想知道 windows 如何计算充满电的时间?

我对电子学中的公式和计量单位知之甚少。

我查找了不同的公式,但它们再次使用了我不理解的单位,我真的不明白 Battery 类给了我什么。

我的最大值 -> 64250 MilliWattHours 评分 -> 8516

所以 64250/8516 = ~7.544 大约是 7.5 分钟,在这种情况下,Windows UI 是错误的?

Windows 报告还剩 5 分钟

所以这里有一些代码:

if (report.Status == BatteryStatus.Charging)
            {
                var report = sender.GetReport(); //<-- where sender is Type<Battery>
                //(double)TryGetValue(report.FullChargeCapacityInMilliwattHours)

//(double)TryGetValue(report.ChargeRateInMilliwatts) <-- I don't understand how to use this with the max value of the battery to get the rate at which is is charging per Hr, Min, etc.
                    var rate = //Formula goes here
                    var remainingTime = DateTime.Now;
                }

【问题讨论】:

    标签: c# uwp battery


    【解决方案1】:

    您必须找到电池充电/放电的速率(充电/放电电流)(以查找电池的剩余时间)以及电池的总容量以估计剩余时间。如果您有这两个参数,则计算起来非常简单。

    剩余时间为秒 =(以 mA 为单位的充电容量 * 60 * 60)/(以 mA 为单位的充电电流)。

    在 WH 的情况下也是如此。

    【讨论】:

    • 电池给了我一个费率和最大容量,但最大值以小时为单位,费率没有单位?
    • report.DesignCapacityInMilliwattHours 将为您提供以 mWh 为单位的总容量和 report.RemainingCapacityInMilliwattHours 将为您提供剩余容量,您可以通过从总容量中减去剩余来找出要充电的 mWh 并将其代入等式.
    • 你能提供所有这些单元的上下文吗?所以我取 max millwatthour - currentmillwatthour。我将该值乘以 x60x60,然后除以我的费率?那又回来了?
    • 这将使您在充满电之前还剩几秒钟。如果你想要几个小时,你不需要乘以 3600。它只是(瓦特小时/瓦特)= 剩余小时数。此外,如果您保持系统开启,充电速率也不会相同,因为保持系统开启需要一些电流,并且会根据 CPU 负载和其他因素而变化。所以你必须采取平均收费率。这就是 windows 显示不同值的原因。
    • 我知道他们是从系统中恢复过来的,这就是为什么监控电池百分比和充电不能完全准确的原因,因为简单地执行计算会占用 CPU 资源和一些额外的电量系统排水。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 2012-11-20
    • 1970-01-01
    • 2016-12-27
    相关资源
    最近更新 更多