aboutsummaryrefslogtreecommitdiff
path: root/modules/devices/sensors.c
diff options
context:
space:
mode:
authorOndrej Čerman <ondrej.cerman@gmail.com>2020-02-02 22:29:23 +0100
committerLeandro A. F. Pereira <leandro@hardinfo.org>2020-02-08 15:37:30 -0800
commit2080dc81b7d53e5830f570a2563da5c96cb63b11 (patch)
treef246f8c67f93e50a8bddf679148b2a67a5d0fb2a /modules/devices/sensors.c
parent1cb992627f4ae9e95b4ca079bdb88eb9b08c062d (diff)
Sensors: Added device sections
Diffstat (limited to 'modules/devices/sensors.c')
-rw-r--r--modules/devices/sensors.c37
1 files changed, 33 insertions, 4 deletions
diff --git a/modules/devices/sensors.c b/modules/devices/sensors.c
index 6d9a628e..21206075 100644
--- a/modules/devices/sensors.c
+++ b/modules/devices/sensors.c
@@ -134,10 +134,10 @@ static void add_sensor(const char *type,
const char *unit) {
char key[64];
- sensors = h_strdup_cprintf("%s/%s=%.2f%s|%s\n", sensors,
- parent, sensor, value, unit, type);
-
snprintf(key, sizeof(key), "%s/%s", parent, sensor);
+ sensors = h_strdup_cprintf("$%s$%s=%.2f%s|%s\n", sensors,
+ key, sensor, value, unit, type);
+
moreinfo_add_with_prefix("DEV", key, g_strdup_printf("%.2f%s", value, unit));
lginterval = h_strdup_cprintf("UpdateInterval$%s=1000\n", lginterval, key);
@@ -287,6 +287,7 @@ static void read_sensors_hwmon(void) {
int hwmon, count, min, max;
gchar *path_hwmon, *tmp, *devname, *name, *mon, *key;
const char **prefix, *entry;
+ gboolean first_sensor;
GDir *dir;
GRegex *regex;
GMatchInfo *match_info;
@@ -304,6 +305,8 @@ static void read_sensors_hwmon(void) {
read_sensor_labels(devname);
}
+ first_sensor = TRUE;
+
dir = g_dir_open(path_hwmon, 0, NULL);
if (!dir)
continue;
@@ -360,6 +363,11 @@ static void read_sensors_hwmon(void) {
float adjusted = adjust_sensor(key,
atof(tmp) / sensor->adjust_ratio);
+ if (first_sensor) {
+ sensors = h_strdup_cprintf("[%s]\n", sensors, devname);
+ first_sensor = FALSE;
+ }
+
add_sensor(sensor->friendly_name,
name,
devname,
@@ -387,6 +395,7 @@ static void read_sensors_hwmon(void) {
static void read_sensors_acpi(void) {
const gchar *path_tz = "/proc/acpi/thermal_zone";
+ gboolean first = TRUE;
if (g_file_test(path_tz, G_FILE_TEST_EXISTS)) {
GDir *tz;
@@ -402,6 +411,11 @@ static void read_sensors_acpi(void) {
if (g_file_get_contents(path, &contents, NULL, NULL)) {
int temperature;
+ if (first) {
+ sensors = h_strdup_cprintf("[Thermal zones]\n", sensors);
+ first = FALSE;
+ }
+
sscanf(contents, "temperature: %d C", &temperature);
add_sensor("Temperature",
@@ -419,6 +433,7 @@ static void read_sensors_acpi(void) {
static void read_sensors_sys_thermal(void) {
const gchar *path_tz = "/sys/class/thermal";
+ gboolean first = TRUE;
if (g_file_test(path_tz, G_FILE_TEST_EXISTS)) {
GDir *tz;
@@ -434,6 +449,11 @@ static void read_sensors_sys_thermal(void) {
if (g_file_get_contents(path, &contents, NULL, NULL)) {
int temperature;
+ if (first) {
+ sensors = h_strdup_cprintf("[Thermal]\n", sensors);
+ first = FALSE;
+ }
+
sscanf(contents, "%d", &temperature);
add_sensor("Temperature",
@@ -458,13 +478,15 @@ static void read_sensors_omnibook(void) {
if (g_file_get_contents(path_ob, &contents, NULL, NULL)) {
int temperature;
+ sensors = h_strdup_cprintf("[Omnibook]\n", sensors);
+
sscanf(contents, "CPU temperature: %d C", &temperature);
add_sensor("Temperature",
"CPU",
"omnibook",
temperature,
- "\302\260C\n");
+ "\302\260C");
g_free(contents);
}
@@ -478,6 +500,8 @@ static void read_sensors_hddtemp(void) {
if (!(s = sock_connect("127.0.0.1", 7634)))
return;
+ sensors = h_strdup_cprintf("[Hddtemp]\n", sensors);
+
while (!len)
len = sock_read(s, buffer, sizeof(buffer));
sock_close(s);
@@ -517,6 +541,11 @@ void read_sensors_udisks2(void) {
udiskt *disk;
temps = get_udisks2_temps();
+ if (temps == NULL)
+ return;
+
+ sensors = h_strdup_cprintf("[Udisks2]\n", sensors);
+
for (node = temps; node != NULL; node = node->next) {
disk = (udiskt *)node->data;
add_sensor("Hard Drive",