Changeset 4825
- Timestamp:
- 09/20/07 23:22:42 (6 years ago)
- Location:
- lm-sensors/branches/lm-sensors-3.0.0/prog/sensord
- Files:
-
- 3 modified
Legend:
- Unmodified
- Added
- Removed
-
lm-sensors/branches/lm-sensors-3.0.0/prog/sensord/chips.c
r4824 r4825 192 192 /* terminate the list */ 193 193 voltage->dataNumbers[pos] = -1; 194 195 /* alarm if applicable */ 196 if (IN_FEATURE(SENSORS_FEATURE_IN_ALARM)) { 197 voltage->alarmNumber = IN_FEATURE_NR(SENSORS_FEATURE_IN_ALARM); 198 } else if (IN_FEATURE(SENSORS_FEATURE_IN_MIN_ALARM)) { 199 voltage->alarmNumber = IN_FEATURE_NR(SENSORS_FEATURE_IN_MIN_ALARM); 200 } else if (IN_FEATURE(SENSORS_FEATURE_IN_MAX_ALARM)) { 201 voltage->alarmNumber = IN_FEATURE_NR(SENSORS_FEATURE_IN_MAX_ALARM); 202 } else { 203 voltage->alarmNumber = -1; 204 } 205 /* beep support missing for now */ 206 voltage->beepNumber = -1; 194 207 } 195 208 … … 228 241 /* terminate the list */ 229 242 temperature->dataNumbers[pos] = -1; 243 244 /* alarm if applicable */ 245 if (TEMP_FEATURE(SENSORS_FEATURE_TEMP_ALARM)) { 246 temperature->alarmNumber = TEMP_FEATURE_NR(SENSORS_FEATURE_TEMP_ALARM); 247 } else if (TEMP_FEATURE(SENSORS_FEATURE_TEMP_MAX_ALARM)) { 248 temperature->alarmNumber = TEMP_FEATURE_NR(SENSORS_FEATURE_TEMP_MAX_ALARM); 249 } else { 250 temperature->alarmNumber = -1; 251 } 252 /* beep support missing for now */ 253 temperature->beepNumber = -1; 230 254 } 231 255 … … 262 286 /* terminate the list */ 263 287 fan->dataNumbers[pos] = -1; 288 289 /* alarm if applicable */ 290 if (FAN_FEATURE(SENSORS_FEATURE_FAN_ALARM)) { 291 fan->alarmNumber = FAN_FEATURE_NR(SENSORS_FEATURE_FAN_ALARM); 292 } else { 293 fan->alarmNumber = -1; 294 } 295 /* beep support missing for now */ 296 fan->beepNumber = -1; 264 297 } 265 298 … … 270 303 vid->rrd = rrdF3; 271 304 vid->type = DataType_voltage; 305 vid->alarmNumber = -1; 306 vid->beepNumber = -1; 272 307 vid->dataNumbers[0] = feature->number; 273 308 vid->dataNumbers[1] = -1; … … 280 315 beepen->rrd = rrdF0; 281 316 beepen->type = DataType_other; 317 beepen->alarmNumber = -1; 318 beepen->beepNumber = -1; 282 319 beepen->dataNumbers[0] = feature->number; 283 320 beepen->dataNumbers[1] = -1; -
lm-sensors/branches/lm-sensors-3.0.0/prog/sensord/sense.c
r4819 r4825 77 77 (const sensors_chip_name *chip, const ChipDescriptor *descriptor, int action) { 78 78 const FeatureDescriptor *features = descriptor->features; 79 int alarms = 0, beeps = 0;80 79 int index0, subindex; 81 80 int ret = 0; … … 84 83 if (action == DO_READ) 85 84 ret = idChip (chip); 86 if (!ret && descriptor->alarmNumber) {87 if ((ret = sensors_get_value (chip, descriptor->alarmNumber, &tmp))) {88 sensorLog (LOG_ERR, "Error getting sensor data: %s/#%d: %s", chip->prefix, descriptor->alarmNumber, sensors_strerror (ret));89 ret = 20;90 } else {91 alarms = (int) (tmp + 0.5);92 }93 }94 if (!ret && descriptor->beepNumber) {95 if ((ret = sensors_get_value (chip, descriptor->beepNumber, &tmp))) {96 sensorLog (LOG_ERR, "Error getting sensor data: %s/#%d: %s", chip->prefix, descriptor->beepNumber, sensors_strerror (ret));97 ret = 21;98 } else {99 beeps = (int) (tmp + 0.5);100 }101 }102 85 for (index0 = 0; (ret == 0) && features[index0].format; ++ index0) { 103 86 const FeatureDescriptor *feature = features + index0; 104 87 int labelNumber = feature->dataNumbers[0]; 105 int alarm = alarms & feature->alarmMask; 106 int beep = beeps & feature->beepMask; 88 int alarm, beep; 107 89 char *label = NULL; 108 90 109 if ((action == DO_SCAN) && !alarm) { 110 continue; 111 } else if (!(label = sensors_get_label (chip, labelNumber))) { 91 if (!(label = sensors_get_label (chip, labelNumber))) { 112 92 sensorLog (LOG_ERR, "Error getting sensor label: %s/#%d", chip->prefix, labelNumber); 113 93 ret = 22; 114 94 } else { 115 95 double values[MAX_DATA]; 96 97 alarm = 0; 98 if (!ret && feature->alarmNumber != -1) { 99 if ((ret = sensors_get_value (chip, feature->alarmNumber, &tmp))) { 100 sensorLog (LOG_ERR, "Error getting sensor data: %s/#%d: %s", chip->prefix, feature->alarmNumber, sensors_strerror (ret)); 101 ret = 20; 102 } else { 103 alarm = (int) (tmp + 0.5); 104 } 105 } 106 if ((action == DO_SCAN) && !alarm) 107 continue; 108 109 beep = 0; 110 if (!ret && feature->beepNumber != -1) { 111 if ((ret = sensors_get_value (chip, feature->beepNumber, &tmp))) { 112 sensorLog (LOG_ERR, "Error getting sensor data: %s/#%d: %s", chip->prefix, feature->beepNumber, sensors_strerror (ret)); 113 ret = 21; 114 } else { 115 beep = (int) (tmp + 0.5); 116 } 117 } 116 118 117 119 for (subindex = 0; !ret && (feature->dataNumbers[subindex] >= 0); ++ subindex) { -
lm-sensors/branches/lm-sensors-3.0.0/prog/sensord/sensord.h
r4817 r4825 90 90 RRDFN rrd; 91 91 DataType type; 92 int alarm Mask;93 int beep Mask;92 int alarmNumber; 93 int beepNumber; 94 94 int dataNumbers[MAX_DATA + 1]; /* First entry is used for the label */ 95 95 } FeatureDescriptor; … … 97 97 typedef struct { 98 98 FeatureDescriptor *features; 99 int alarmNumber;100 int beepNumber;101 99 } ChipDescriptor; 102 100
