From: Johan Vromans <jvromans-2pNSKKP3PSKEVqv0pETR8A@public.gmane.org>
To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: first shoot for smartbattery
Date: Sun, 09 Jan 2005 14:41:52 +0100 [thread overview]
Message-ID: <m2oefyzplr.fsf@phoenix.squirrel.nl> (raw)
In-Reply-To: <41DAB539.2020605-pQd4kjVL+REh2FBCd0jGRA@public.gmane.org> (Pedro Venda's message of "Tue, 04 Jan 2005 15:24:41 +0000")
[-- Attachment #1: Type: text/plain, Size: 611 bytes --]
Pedro Venda <pjvenda-pQd4kjVL+RHfqL7NgpvPWWD2FQJk+8+b@public.gmane.org> writes:
> I actually read some of the pdf you pointed me to and implemented a
> couple of functions on the smartbattery.c. It now gets much more
> information from the battery. If you find it relevant, I'll clean it
> up a bit and post a patch for you. I know it will soon be dumped,
> but it may show useful when debugging other driver informations.
The attached program produces a nice battery status display using your
modified version of battstat. It may be temporary, but at least now I
have decent battery info at hand.
-- Johan
[-- Attachment #2: battstat.pl --]
[-- Type: application/octet-stream, Size: 3068 bytes --]
#!/usr/bin/perl -w
# Quick hack to get a battery status display.
# Uses Pedro Venda's modified version of Bruno Ducrot's version
# of the smart battery reader (not included).
#
# Copyright 2005 Johan Vromans, Squirrel Consultancy.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
use strict;
use Tk;
use Tk::ProgressBar;
################ Configuration ################
my $interval = 10; # Poll interval
my $prog = "smartbattery2 0"; # command
# Regular output of $prog is:
#
# status: discharging initialized
# mode: capacity in 10 mW/mWh
# design voltage: 14800 mV
# design charge capacity: 4400 mAh or mWh
# absolute charge: 90%
# full charge capacity: 4270 mAh or mWh
# relative charge: 93%
# current: -908 mA
# voltage: 16271 mV
# remain: 3966 mA
# average time to empty: 261 minutes
# average time to full: 65535 minutes
# temperature: 24.2 C
# cycle count: 12
################ End Configuration ################
my $status = 0;
my $mw = MainWindow->new;
$mw->title("Battery: Starting");
my $p = $mw->ProgressBar
(-troughcolor => 'LightSkyBlue3',
-borderwidth => 0,
-length => 120,
-width => 8,
-variable => \$status,
-colors => [0 => 'red', 10 => 'yellow', 20 => 'green'],
# -blocks => 10, # default
-anchor => 'w',
-from => 0,
-to => 100,
)->pack(-expand => 1);
# Check every 10 seconds.
$mw->repeat (10000, \&update);
my $state = 0;
update();
MainLoop;
sub update {
my $res = `smartbattery2 $smbus 2>&1`;
return unless $res;
my ($current, $fill, $time, $tp);
$current = $1 if $res =~ /current:\s+(-?\d+)\s+ma/i;
$tp = $current < 0 ? 'empty' : 'full';
$fill = $1 if $res =~ /relative charge:\s+(\d+)%/i;
$time = $1 if $res =~ /average time to $tp:\s+(\d+)\s+minutes/i;
if ( $time ) {
my ($h, $m);
$h = int($time / 60);
$m = $time % 60;
$time = sprintf("%d:%02d", $h, $m);
}
if ( $current > 0 ) { # charging
$status = 0;
}
elsif ( $current < 0 ) { # discharging
$status = $fill;
}
else { # fully charged
$status = 100;
}
$mw->title("Battery: $time ($status%)");
# This is a kludge to get the ProgressBar to display uniform, but
# different colours depending on the fill status.
if ( $status >= 30 ) {
if ( $state < 30 ) {
$p->{Configure}{-colors} = [ 0, 'green' ];
$p->{Configure}{-troughcolor} = 'darkgreen';
Tk::ProgressBar::_layoutRequest($p, 1);
$state = 30;
}
}
elsif ( $status >= 10 ) {
if ( $state < 10 || $state >= 30 ) {
$p->{Configure}{-colors} = [ 0, 'yellow' ];
$p->{Configure}{-troughcolor} = 'orange';
Tk::ProgressBar::_layoutRequest($p, 1);
$state = 10;
}
}
elsif ( $state >= 10 ) {
$p->{Configure}{-colors} = [ 0, 'red' ];
$p->{Configure}{-troughcolor} = 'darkred';
Tk::ProgressBar::_layoutRequest($p, 1);
$state = 0;
}
}
next prev parent reply other threads:[~2005-01-09 13:41 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20041231092156.GA612@phys.ethz.ch>
[not found] ` <20041231092156.GA612-vpGm2Noi6jeZvKxeG3EEhw@public.gmane.org>
2004-12-31 14:19 ` i2c-acpi-ec.c Pedro Venda
[not found] ` <41D56002.5060008-aHmAgkVUFT6Joy8PIJZ9VA@public.gmane.org>
2004-12-31 15:07 ` i2c-acpi-ec.c Bruno Ducrot
[not found] ` <20041231150724.GK19199-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2004-12-31 18:16 ` first shoot for smartbattery (was Re: Re: i2c-acpi-ec.c) Bruno Ducrot
[not found] ` <20041231181628.GL19199-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2004-12-31 18:48 ` François Valenduc
[not found] ` <41D59F15.2030504-IWqWACnzNjyZIoH1IeqzKA@public.gmane.org>
2004-12-31 19:09 ` Bruno Ducrot
2005-01-01 8:26 ` Mathias Weyland
[not found] ` <20050101082605.GA24896-vpGm2Noi6jeZvKxeG3EEhw@public.gmane.org>
2005-01-01 10:08 ` first shoot for smartbattery Johan Vromans
[not found] ` <m2acrth375.fsf-KjnUIgV0B0bak1Ioo/c9IoRWq/SkRNHw@public.gmane.org>
2005-01-01 22:33 ` François Valenduc
2005-01-03 13:45 ` Bruno Ducrot
2005-01-03 14:39 ` Bruno Ducrot
[not found] ` <20050103143902.GQ19199-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2005-01-03 14:55 ` Mathias Weyland
[not found] ` <41D95CDC.8050802-vpGm2Noi6jeZvKxeG3EEhw@public.gmane.org>
2005-01-03 15:05 ` François Valenduc
[not found] ` <41D95F53.5000008-IWqWACnzNjyZIoH1IeqzKA@public.gmane.org>
2005-01-03 15:41 ` François Valenduc
[not found] ` <41D967B5.7040002-IWqWACnzNjyZIoH1IeqzKA@public.gmane.org>
2005-01-03 17:02 ` liste-9nAOAgdJVo4b1SvskN2V4Q
[not found] ` <Pine.LNX.4.60.0501031751590.5329-KnfdeQs3A3X/9pzu0YdTqQ@public.gmane.org>
2005-01-03 17:54 ` Bruno Ducrot
[not found] ` <20050103175449.GW19199-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2005-01-04 1:56 ` Pedro Venda
[not found] ` <41D9F7CA.7030408-pQd4kjVL+REh2FBCd0jGRA@public.gmane.org>
2005-01-04 10:24 ` Bruno Ducrot
[not found] ` <20050104102424.GC19199-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2005-01-04 15:27 ` Pedro Venda
[not found] ` <41DAB5C7.9040605-pQd4kjVL+REh2FBCd0jGRA@public.gmane.org>
2005-01-06 8:51 ` Bruno Ducrot
[not found] ` <20050106085149.GJ19199-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2005-01-11 10:05 ` Pedro Venda
2005-01-03 15:08 ` Bruno Ducrot
2005-01-03 17:03 ` Pedro Venda
[not found] ` <41D97AF3.7000409-pQd4kjVL+REh2FBCd0jGRA@public.gmane.org>
2005-01-03 17:34 ` Bruno Ducrot
2005-01-03 17:35 ` Pedro Venda
[not found] ` <41D98251.9020002-pQd4kjVL+REh2FBCd0jGRA@public.gmane.org>
2005-01-03 18:02 ` Bruno Ducrot
[not found] ` <20050103180219.GX19199-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2005-01-03 19:50 ` Pedro Venda
[not found] ` <41D9A1F5.1060508-pQd4kjVL+REh2FBCd0jGRA@public.gmane.org>
2005-01-03 20:30 ` Johan Vromans
[not found] ` <m2mzvq5k7u.fsf-KjnUIgV0B0bak1Ioo/c9IoRWq/SkRNHw@public.gmane.org>
2005-01-13 12:44 ` Johannes Kuhlmann
[not found] ` <47e0449d05011304446094c8b-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2005-01-16 20:44 ` Johan Vromans
[not found] ` <m2fz11gl3c.fsf-KjnUIgV0B0bak1Ioo/c9IoRWq/SkRNHw@public.gmane.org>
2005-01-17 9:31 ` Fionn Behrens
2005-01-17 9:55 ` Johan Vromans
[not found] ` <m2pt04qt1j.fsf-KjnUIgV0B0bak1Ioo/c9IoRWq/SkRNHw@public.gmane.org>
2005-01-17 11:49 ` Johannes Kuhlmann
[not found] ` <47e0449d050117034912fb9ae3-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2005-01-17 12:37 ` Fernando Gómez
2005-01-17 19:41 ` Johannes Kuhlmann
[not found] ` <47e0449d050117114113973694-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2005-01-18 9:49 ` Johan Vromans
2005-01-04 7:47 ` Jeroen Wijnhout
2005-01-04 10:08 ` Bruno Ducrot
[not found] ` <20050104100844.GA19199-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2005-01-04 14:33 ` François Valenduc
[not found] ` <41DAA92C.4080605-IWqWACnzNjyZIoH1IeqzKA@public.gmane.org>
2005-01-04 14:45 ` Johannes Kuhlmann
[not found] ` <47e0449d05010406454e59b16a-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2005-01-05 18:14 ` Pavel Machek
2005-01-04 15:24 ` Pedro Venda
[not found] ` <41DAB539.2020605-pQd4kjVL+REh2FBCd0jGRA@public.gmane.org>
2005-01-09 13:41 ` Johan Vromans [this message]
[not found] ` <m2oefyzplr.fsf-KjnUIgV0B0bak1Ioo/c9IoRWq/SkRNHw@public.gmane.org>
2005-01-10 13:51 ` Zdzisław A. Kaleta
[not found] ` <200501101451.36702.sanskryt-FWhLrETftxM@public.gmane.org>
2005-01-11 10:12 ` Pedro Venda
[not found] ` <41E3A69B.2020506-pQd4kjVL+REh2FBCd0jGRA@public.gmane.org>
2005-01-11 10:49 ` z.a.kaleta
[not found] ` <200501111149.55615.sanskryt-h7QdYz1kt/Q@public.gmane.org>
2005-01-11 11:44 ` Pedro Venda
[not found] ` <41E3BC06.30408-pQd4kjVL+REh2FBCd0jGRA@public.gmane.org>
2005-01-11 12:30 ` Zdzisław A. Kaleta
2005-01-10 14:24 ` Zdzisław A. Kaleta
[not found] ` <200501101524.58077.sanskryt-FWhLrETftxM@public.gmane.org>
2005-01-10 14:57 ` Johan Vromans
[not found] ` <m28y71fi1s.fsf-KjnUIgV0B0bak1Ioo/c9IoRWq/SkRNHw@public.gmane.org>
2005-01-10 15:43 ` Pedro Venda
2005-01-10 19:44 ` Johan Vromans
2005-01-10 16:36 ` Zdzisław A. Kaleta
[not found] ` <200501101736.24293.sanskryt-FWhLrETftxM@public.gmane.org>
2005-01-10 19:34 ` Johan Vromans
[not found] ` <m27jmlf57y.fsf-KjnUIgV0B0bak1Ioo/c9IoRWq/SkRNHw@public.gmane.org>
2005-01-10 22:41 ` Zdzisław A. Kaleta
[not found] ` <200501102341.07731.sanskryt-FWhLrETftxM@public.gmane.org>
2005-01-11 9:29 ` Johan Vromans
[not found] ` <m2sm58mhzg.fsf-KjnUIgV0B0bak1Ioo/c9IoRWq/SkRNHw@public.gmane.org>
2005-01-11 10:10 ` Pedro Venda
2005-01-01 17:05 ` first shoot for smartbattery (was Re: Re: i2c-acpi-ec.c) Pedro Venda
2005-01-01 12:35 ` Hendrik Jürgens
2005-01-01 19:21 ` John Belmonte
[not found] ` <41D6F826.8090906-wanGne27zNesTnJN9+BGXg@public.gmane.org>
2005-01-03 13:13 ` Bruno Ducrot
2005-01-09 3:08 ` ultrakorne
[not found] ` <41E0A01C.6060607-XtQPfPCVGG7srOwW+9ziJQ@public.gmane.org>
2005-01-09 12:04 ` Pedro Venda
[not found] ` <41E11DD0.2090809-pQd4kjVL+REh2FBCd0jGRA@public.gmane.org>
2005-01-09 16:12 ` Ultrakorne
2005-01-09 17:08 ` ultrakorne
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m2oefyzplr.fsf@phoenix.squirrel.nl \
--to=jvromans-2pnskkp3pskevqv0petr8a@public.gmane.org \
--cc=acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.