X-Git-Url: http://git.wpitchoune.net/gitweb/?p=psensor.git;a=blobdiff_plain;f=src%2Flib%2Flmsensor.c;h=ca553f3464557ba02c17a0ab83e8dcea273d45e3;hp=d72da3e6beed242a59c8332f3b70323a960e86e1;hb=dd9cbee87e002a9954d5f9dd743311cccd4cedef;hpb=d6141b1d4fea0db9b115b06c668be6195ac4e5c6 diff --git a/src/lib/lmsensor.c b/src/lib/lmsensor.c index d72da3e..ca553f3 100644 --- a/src/lib/lmsensor.c +++ b/src/lib/lmsensor.c @@ -124,7 +124,7 @@ void lmsensor_psensor_list_update(struct psensor **sensors) struct psensor *s; double v; - if (!init_done) + if (!init_done || !sensors) return; while (*sensors) { @@ -156,15 +156,20 @@ lmsensor_psensor_create(const sensors_chip_name *chip, int type; char *id, *label, *cname; struct psensor *psensor; - sensors_subfeature_type fault_subfeature; + sensors_subfeature_type fault_subfeature, min_subfeature, + max_subfeature; if (sensors_snprintf_chip_name(name, 200, chip) < 0) return NULL; if (feature->type == SENSORS_FEATURE_TEMP) { fault_subfeature = SENSORS_SUBFEATURE_TEMP_FAULT; + max_subfeature = SENSORS_SUBFEATURE_TEMP_MAX; + min_subfeature = SENSORS_SUBFEATURE_TEMP_MIN; } else if (feature->type == SENSORS_FEATURE_FAN) { fault_subfeature = SENSORS_SUBFEATURE_FAN_FAULT; + max_subfeature = SENSORS_SUBFEATURE_FAN_MAX; + min_subfeature = SENSORS_SUBFEATURE_FAN_MIN; } else { log_err(_("%s: Wrong feature type."), PROVIDER_NAME); return NULL; @@ -211,6 +216,14 @@ lmsensor_psensor_create(const sensors_chip_name *chip, psensor = psensor_create(id, label, cname, type, values_max_length); + sf = sensors_get_subfeature(chip, feature, max_subfeature); + if (sf) + psensor->max = get_value(chip, sf); + + sf = sensors_get_subfeature(chip, feature, min_subfeature); + if (sf) + psensor->min = get_value(chip, sf); + lmsensor_data_set(psensor, chip, feature); if (feature->type == SENSORS_FEATURE_TEMP