From e5dbcfd4fd346608bfe1fe0ce48786d2692deed5 Mon Sep 17 00:00:00 2001 From: kivinen Date: Wed, 9 Jun 2004 22:15:41 +0000 Subject: Fixed the charging status checking, and do not give out time estimate if discharge rate is negative. --- sysutils/asapm/distinfo | 4 ++-- sysutils/asapm/patches/patch-af | 28 ++++++++++++++-------------- 2 files changed, 16 insertions(+), 16 deletions(-) (limited to 'sysutils') diff --git a/sysutils/asapm/distinfo b/sysutils/asapm/distinfo index 697e37a191c..c66245f4361 100644 --- a/sysutils/asapm/distinfo +++ b/sysutils/asapm/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.5 2004/06/09 21:00:05 kivinen Exp $ +$NetBSD: distinfo,v 1.6 2004/06/09 22:15:41 kivinen Exp $ SHA1 (asapm-2.11.tar.gz) = cd89c5557d76dbb19ee565435b533ab48f05f102 Size (asapm-2.11.tar.gz) = 58729 bytes @@ -7,4 +7,4 @@ SHA1 (patch-ab) = 8796f1f6220ecdbd23d360bb18f721e1ef83febf SHA1 (patch-ac) = edfe7deae628b9e2aa57b67666f4e7dea13c19bf SHA1 (patch-ad) = f6a82aa2cff611f03e999a0773f8b47156b9550f SHA1 (patch-ae) = 28b0e4c446c466a90d4a2ae0952b2326385a8c6c -SHA1 (patch-af) = 92a01d1079c62916cc6dd7fa069214f99045fd0a +SHA1 (patch-af) = ff8256e82e79155708b61fab3f04323c68e8d26d diff --git a/sysutils/asapm/patches/patch-af b/sysutils/asapm/patches/patch-af index f1eb73488fc..6fe3850a4a1 100644 --- a/sysutils/asapm/patches/patch-af +++ b/sysutils/asapm/patches/patch-af @@ -1,4 +1,4 @@ -$NetBSD: patch-af,v 1.1 2004/06/09 21:00:05 kivinen Exp $ +$NetBSD: patch-af,v 1.2 2004/06/09 22:15:41 kivinen Exp $ --- apm_read.c.orig 2001-11-23 23:07:19.000000000 +0200 +++ apm_read.c @@ -34,7 +34,7 @@ $NetBSD: patch-af,v 1.1 2004/06/09 21:00:05 kivinen Exp $ + envsys_basic_info_t ebis; + envsys_tre_data_t etds; + int32_t design, charge, warn_cap, low_cap, rate; -+ int connected, percent, time_units, battery_status; ++ int connected, charging, percent, time_units, battery_status; + + if ((fd = open(sysmon_device_file, O_RDONLY)) == -1) { + error_handle(1, ""); @@ -47,6 +47,7 @@ $NetBSD: patch-af,v 1.1 2004/06/09 21:00:05 kivinen Exp $ + low_cap = 0; + rate = 0; + connected = 0; ++ charging = 0; + percent = 0; + time_units = 0; + @@ -75,23 +76,26 @@ $NetBSD: patch-af,v 1.1 2004/06/09 21:00:05 kivinen Exp $ + + if (etds.units == ENVSYS_SWATTHOUR) { + /* Watt hours, this must be battery capacity info. */ -+ if (match_end(ebis.desc, "design cap")) { ++ if (match_end(ebis.desc, " design cap")) { + design += etds.cur.data_s; -+ } else if (match_end(ebis.desc, "charge")) { ++ } else if (match_end(ebis.desc, " charge")) { + charge += etds.cur.data_s; -+ } else if (match_end(ebis.desc, "warn cap")) { ++ } else if (match_end(ebis.desc, " warn cap")) { + warn_cap += etds.cur.data_s; -+ } else if (match_end(ebis.desc, "low cap")) { ++ } else if (match_end(ebis.desc, " low cap")) { + low_cap += etds.cur.data_s; + } + } else if (etds.units == ENVSYS_INDICATOR) { + /* Indicator of something, check for connected. */ + if (match_end(ebis.desc, " connected")) { + connected = etds.cur.data_us; ++ } else if (match_end(ebis.desc, " charging")) { ++ charging = etds.cur.data_us; + } ++ + } else if (etds.units == ENVSYS_SWATTS) { + /* Watts, this must discharge rate. */ -+ if (match_end(ebis.desc, "discharge rate")) { ++ if (match_end(ebis.desc, " discharge rate")) { + rate += etds.cur.data_s; + } + } @@ -105,12 +109,8 @@ $NetBSD: patch-af,v 1.1 2004/06/09 21:00:05 kivinen Exp $ + else + state.flags |= CHANGE_AC_OFF; + } -+ if (connected) { -+ if (charge > design) { -+ battery_status = BATTERY_HIGH; -+ } else { -+ battery_status = BATTERY_CHARGING; -+ } ++ if (charging) { ++ battery_status = BATTERY_CHARGING; + } else { + if (charge > warn_cap) { + battery_status = BATTERY_HIGH; @@ -144,7 +144,7 @@ $NetBSD: patch-af,v 1.1 2004/06/09 21:00:05 kivinen Exp $ + ++state.update; + } + -+ if (rate != 0) { ++ if (rate > 0) { + time_units = charge / (rate / 60); + } + -- cgit v1.2.3