Hi,
On some kind of batteries, energy_now file is not available, but charge_now
instead. Please, find attached the patch to add support to read charge_now
file also.
- energy_now exports value in uWh
- charge_now exports value in uAh
Regards,
David Cohen
Index: powertop.c
===================================================================
--- a/powertop.c (revision 298)
+++ b/powertop.c (working copy)
@@ -587,9 +587,9 @@
while ((dirent = readdir(dir))) {
int dontcount = 0;
+ int energy = 1;
double voltage = 0.0;
double amperes_drawn = 0.0;
- double watts_drawn = 0.0;
double watts_left = 0.0;
char line[1024];
@@ -630,11 +630,18 @@
sprintf(filename, "/sys/class/power_supply/%s/energy_now", dirent->d_name);
file = fopen(filename, "r");
- if (!file)
- continue;
+ if (!file) {
+ sprintf(filename, "/sys/class/power_supply/%s/charge_now", dirent->d_name);
+ file = fopen(filename, "r");
+ if (!file)
+ continue;
+ energy = 0;
+ }
memset(line, 0, 1024);
if (fgets(line, 1024, file) != NULL) {
watts_left = strtoull(line, NULL, 10) / 1000000.0;
+ if (!energy)
+ watts_left *= voltage;
}
fclose(file);
@@ -644,12 +651,12 @@
continue;
memset(line, 0, 1024);
if (fgets(line, 1024, file) != NULL) {
- watts_drawn = strtoull(line, NULL, 10) / 1000000.0;
+ amperes_drawn = strtoull(line, NULL, 10) / 1000000.0;
}
fclose(file);
if (!dontcount) {
- rate += watts_drawn + voltage * amperes_drawn;
+ rate += voltage * amperes_drawn;
}
cap += watts_left;
_______________________________________________
Power mailing list
[email protected]
http://www.bughost.org/mailman/listinfo/power