diff --git a/src/battery.c b/src/battery.c
index 185442c10d319aa53011b2e1c87f058f28fd254c..c4c050d7ff1cd11cc70cd2d17323f90da747e542 100644 (file)
--- a/src/battery.c
+++ b/src/battery.c
if (fgets (buffer, buffer_size, fp) == NULL)
{
- char errbuf[1024];
status = errno;
- WARNING ("battery plugin: fgets failed: %s",
- sstrerror (status, errbuf, sizeof (errbuf)));
+ if (status != ENODEV)
+ {
+ char errbuf[1024];
+ WARNING ("battery plugin: fgets (%s) failed: %s", filename,
+ sstrerror (status, errbuf, sizeof (errbuf)));
+ }
fclose (fp);
return status;
}
v *= -1.0;
battery_submit (plugin_instance, "power", v * SYSFS_FACTOR);
}
+ if (sysfs_file_to_gauge (dir, power_supply, "current_now", &v) == 0)
+ {
+ if (discharging)
+ v *= -1.0;
+ battery_submit (plugin_instance, "current", v * SYSFS_FACTOR);
+ }
if (sysfs_file_to_gauge (dir, power_supply, "voltage_now", &v) == 0)
battery_submit (plugin_instance, "voltage", v * SYSFS_FACTOR);
-#if 0
- if (sysfs_file_to_gauge (dir, power_supply, "voltage_min_design", &v) == 0)
- battery_submit (plugin_instance, "voltage", v * SYSFS_FACTOR);
-#endif
return (0);
} /* }}} int read_sysfs_callback */
ssnprintf (filename, sizeof (filename), "%s/%s/info", dir, power_supply);
fh = fopen (filename, "r");
- if ((fh = fopen (filename, "r")) == NULL)
+ if (fh == NULL)
return (errno);
/* last full capacity: 40090 mWh */
ssnprintf (filename, sizeof (filename), "%s/%s/state", dir, power_supply);
fh = fopen (filename, "r");
- if ((fh = fopen (filename, "r")) == NULL)
+ if (fh == NULL)
{
if ((errno == EAGAIN) || (errno == EINTR) || (errno == ENOENT))
return (0);