/*
- * Copyright (C) 2010-2011 jeanfi@gmail.com
+ * Copyright (C) 2010-2013 jeanfi@gmail.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
err = sensors_get_value(name, sub->number, &val);
if (err) {
- fprintf(stderr,
- _("ERROR: Can't get value of subfeature %s: %s\n"),
+ log_err(_("lmsensor: cannot get value of subfeature %s: %s."),
sub->name, sensors_strerror(err));
val = UNKNOWN_DBL_VALUE;
}
return ;
while (*s_ptr) {
- struct psensor *sensor = *s_ptr;
-
- if (sensor->type == SENSOR_TYPE_LMSENSOR_TEMP)
- psensor_set_current_value
- (sensor, get_temp_input(sensor));
- else if (sensor->type == SENSOR_TYPE_LMSENSOR_FAN)
- psensor_set_current_value(sensor,
- get_fan_input(sensor));
+ struct psensor *s = *s_ptr;
+
+ if (!(s->type & SENSOR_TYPE_REMOTE)
+ && s->type & SENSOR_TYPE_LMSENSOR) {
+ if (s->type & SENSOR_TYPE_TEMP)
+ psensor_set_current_value(s,
+ get_temp_input(s));
+ else if (s->type & SENSOR_TYPE_RPM)
+ psensor_set_current_value(s, get_fan_input(s));
+ }
s_ptr++;
}
{
char name[200];
const sensors_subfeature *sf;
- char *label;
int type;
- char *id;
+ char *id, *label, *cname;
struct psensor *psensor;
sensors_subfeature_type fault_subfeature;
if (feature->type == SENSORS_FEATURE_TEMP) {
fault_subfeature = SENSORS_SUBFEATURE_TEMP_FAULT;
-
} else if (feature->type == SENSORS_FEATURE_FAN) {
fault_subfeature = SENSORS_SUBFEATURE_FAN_FAULT;
-
} else {
- fprintf(stderr,
- _("ERROR: create_sensor, wrong feature type\n"));
+ log_err(_(
+"lmsensor: lmsensor_psensor_create failure: wrong feature type."));
return NULL;
}
if (!label)
return NULL;
- type = 0;
+ type = SENSOR_TYPE_LMSENSOR;
if (feature->type == SENSORS_FEATURE_TEMP)
- type = SENSOR_TYPE_LMSENSOR_TEMP;
+ type |= SENSOR_TYPE_TEMP;
else if (feature->type == SENSORS_FEATURE_FAN)
- type = SENSOR_TYPE_LMSENSOR_FAN;
+ type |= (SENSOR_TYPE_RPM|SENSOR_TYPE_FAN);
else
return NULL;
1);
sprintf(id, "lmsensor %s %s", name, label);
- psensor = psensor_create(id, label, type, values_max_length);
+ if (!strcmp(chip->prefix, "coretemp"))
+ cname = strdup("Intel CPU");
+ else if (!strcmp(chip->prefix, "k10temp")
+ || !strcmp(chip->prefix, "k8temp")
+ || !strcmp(chip->prefix, "fam15h_power"))
+ cname = strdup("AMD CPU");
+ else if (!strcmp(chip->prefix, "nouveau"))
+ cname = strdup("Nvidia GPU");
+ else if (!strcmp(chip->prefix, "via-cputemp"))
+ cname = strdup("VIA CPU");
+ else
+ cname = strdup(chip->prefix);
+
+ psensor = psensor_create(id, label, cname, type, values_max_length);
psensor->iname = chip;
psensor->feature = feature;
int err = sensors_init(NULL);
if (err) {
- fprintf(stderr,
- _("ERROR: lm-sensors initialization failure: %s\n"),
+ log_err(_("lmsensor: initialization failure: %s."),
sensors_strerror(err));
init_done = 0;
} else {