Added status_unk to battery_info

This commit is contained in:
eoin 2016-03-21 22:41:22 +00:00
parent dbc59d7376
commit d59589bf9e
4 changed files with 17 additions and 8 deletions

View File

@ -360,6 +360,7 @@ int main(int argc, char *argv[]) {
CFG_STR("format_down", "No battery", CFGF_NONE),
CFG_STR("status_chr", "CHR", CFGF_NONE),
CFG_STR("status_bat", "BAT", CFGF_NONE),
CFG_STR("status_unk", "UNK", CFGF_NONE),
CFG_STR("status_full", "FULL", CFGF_NONE),
CFG_STR("path", "/sys/class/power_supply/BAT%d/uevent", CFGF_NONE),
CFG_INT("low_threshold", 30, CFGF_NONE),
@ -661,7 +662,7 @@ int main(int argc, char *argv[]) {
CASE_SEC_TITLE("battery") {
SEC_OPEN_MAP("battery");
print_battery_info(json_gen, buffer, atoi(title), cfg_getstr(sec, "path"), cfg_getstr(sec, "format"), cfg_getstr(sec, "format_down"), cfg_getstr(sec, "status_chr"), cfg_getstr(sec, "status_bat"), cfg_getstr(sec, "status_full"), cfg_getint(sec, "low_threshold"), cfg_getstr(sec, "threshold_type"), cfg_getbool(sec, "last_full_capacity"), cfg_getbool(sec, "integer_battery_capacity"), cfg_getbool(sec, "hide_seconds"));
print_battery_info(json_gen, buffer, atoi(title), cfg_getstr(sec, "path"), cfg_getstr(sec, "format"), cfg_getstr(sec, "format_down"), cfg_getstr(sec, "status_chr"), cfg_getstr(sec, "status_bat"), cfg_getstr(sec, "status_unk"), cfg_getstr(sec, "status_full"), cfg_getint(sec, "low_threshold"), cfg_getstr(sec, "threshold_type"), cfg_getbool(sec, "last_full_capacity"), cfg_getbool(sec, "integer_battery_capacity"), cfg_getbool(sec, "hide_seconds"));
SEC_CLOSE_MAP;
}

View File

@ -170,6 +170,7 @@ char *pct_mark;
typedef enum { CS_DISCHARGING,
CS_CHARGING,
CS_UNKNOWN,
CS_FULL } charging_status_t;
/*
@ -207,7 +208,7 @@ const char *first_eth_interface(const net_type_t type);
void print_ipv6_info(yajl_gen json_gen, char *buffer, const char *format_up, const char *format_down);
void print_disk_info(yajl_gen json_gen, char *buffer, const char *path, const char *format, const char *format_not_mounted, const char *prefix_type, const char *threshold_type, const double low_threshold);
void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char *path, const char *format, const char *format_down, const char *status_chr, const char *status_bat, const char *status_full, int low_threshold, char *threshold_type, bool last_full_capacity, bool integer_battery_capacity, bool hide_seconds);
void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char *path, const char *format, const char *format_down, const char *status_chr, const char *status_bat, const char *status_unk, const char *status_full, int low_threshold, char *threshold_type, bool last_full_capacity, bool integer_battery_capacity, bool hide_seconds);
void print_time(yajl_gen json_gen, char *buffer, const char *title, const char *format, const char *tz, const char *format_time, time_t t);
void print_ddate(yajl_gen json_gen, char *buffer, const char *format, time_t t);
const char *get_ip_addr(const char *interface);

View File

@ -76,6 +76,7 @@ battery 0 {
format_down = "No battery"
status_chr = "⚡ CHR"
status_bat = "🔋 BAT"
status_unk = "? UNK"
status_full = "☻ FULL"
path = "/sys/class/power_supply/BAT%d/uevent"
low_threshold = 10
@ -315,7 +316,7 @@ network interface found on the system (excluding devices starting with "lo").
=== Battery
Gets the status (charging, discharging, running), percentage, remaining
Gets the status (charging, discharging, unknown, full), percentage, remaining
time and power consumption (in Watts) of the given battery and when it's
estimated to be empty. If you want to use the last full capacity instead of the
design capacity (when using the design capacity, it may happen that your
@ -339,10 +340,10 @@ colored red. The low_threshold type can be of threshold_type "time" or
Optionally custom strings including any UTF-8 symbols can be used for different
battery states. This makes it possible to display individual symbols
for each state (charging, discharging, full)
for each state (charging, discharging, unknown, full)
Of course it will also work with special iconic fonts, such as FontAwesome.
If any of this special status strings is omitted, the default (CHR, BAT, FULL)
is used.
If any of these special status strings are omitted, the default (CHR, BAT, UNK,
FULL) is used.
*Example order*: +battery 0+
@ -354,6 +355,8 @@ is used.
*Example status_bat*: +🔋 BAT+
*Example status_unk*: +? UNK+
*Example status_full*: +☻ FULL+
*Example low_threshold*: +30+

View File

@ -34,7 +34,7 @@
* worn off your battery is.
*
*/
void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char *path, const char *format, const char *format_down, const char *status_chr, const char *status_bat, const char *status_full, int low_threshold, char *threshold_type, bool last_full_capacity, bool integer_battery_capacity, bool hide_seconds) {
void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char *path, const char *format, const char *format_down, const char *status_chr, const char *status_bat, const char *status_unk, const char *status_full, int low_threshold, char *threshold_type, bool last_full_capacity, bool integer_battery_capacity, bool hide_seconds) {
time_t empty_time;
struct tm *empty_tm;
char buf[1024];
@ -64,7 +64,7 @@ void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char
INSTANCE(batpath);
#define BATT_STATUS_NAME(status) \
(status == CS_CHARGING ? status_chr : (status == CS_DISCHARGING ? status_bat : status_full))
(status == CS_CHARGING ? status_chr : (status == CS_DISCHARGING ? status_bat : (status == CS_UNKNOWN ? status_unk : status_full)))
#if defined(LINUX)
if (!slurp(batpath, buf, sizeof(buf))) {
@ -101,6 +101,10 @@ void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char
status = CS_CHARGING;
else if (BEGINS_WITH(last, "POWER_SUPPLY_STATUS=Full"))
status = CS_FULL;
else if (BEGINS_WITH(last, "POWER_SUPPLY_STATUS=Discharging"))
status = CS_DISCHARGING;
else if (BEGINS_WITH(last, "POWER_SUPPLY_STATUS="))
status = CS_UNKNOWN;
else {
/* The only thing left is the full capacity */
if (last_full_capacity) {