Changeset 4825

Show
Ignore:
Timestamp:
09/20/07 23:22:42 (6 years ago)
Author:
khali
Message:

Restore support for alarms.

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  
    192192  /* terminate the list */ 
    193193  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; 
    194207} 
    195208 
     
    228241  /* terminate the list */ 
    229242  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; 
    230254} 
    231255 
     
    262286  /* terminate the list */ 
    263287  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; 
    264297} 
    265298 
     
    270303  vid->rrd = rrdF3; 
    271304  vid->type = DataType_voltage; 
     305  vid->alarmNumber = -1; 
     306  vid->beepNumber = -1; 
    272307  vid->dataNumbers[0] = feature->number; 
    273308  vid->dataNumbers[1] = -1; 
     
    280315  beepen->rrd = rrdF0; 
    281316  beepen->type = DataType_other; 
     317  beepen->alarmNumber = -1; 
     318  beepen->beepNumber = -1; 
    282319  beepen->dataNumbers[0] = feature->number; 
    283320  beepen->dataNumbers[1] = -1; 
  • lm-sensors/branches/lm-sensors-3.0.0/prog/sensord/sense.c

    r4819 r4825  
    7777(const sensors_chip_name *chip, const ChipDescriptor *descriptor, int action) { 
    7878  const FeatureDescriptor *features = descriptor->features; 
    79   int alarms = 0, beeps = 0; 
    8079  int index0, subindex; 
    8180  int ret = 0; 
     
    8483  if (action == DO_READ) 
    8584    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   } 
    10285  for (index0 = 0; (ret == 0) && features[index0].format; ++ index0) { 
    10386    const FeatureDescriptor *feature = features + index0; 
    10487    int labelNumber = feature->dataNumbers[0]; 
    105     int alarm = alarms & feature->alarmMask; 
    106     int beep = beeps & feature->beepMask; 
     88    int alarm, beep; 
    10789    char *label = NULL; 
    10890 
    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))) { 
    11292      sensorLog (LOG_ERR, "Error getting sensor label: %s/#%d", chip->prefix, labelNumber); 
    11393      ret = 22; 
    11494    } else { 
    11595      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      } 
    116118 
    117119      for (subindex = 0; !ret && (feature->dataNumbers[subindex] >= 0); ++ subindex) { 
  • lm-sensors/branches/lm-sensors-3.0.0/prog/sensord/sensord.h

    r4817 r4825  
    9090  RRDFN rrd; 
    9191  DataType type; 
    92   int alarmMask; 
    93   int beepMask; 
     92  int alarmNumber; 
     93  int beepNumber; 
    9494  int dataNumbers[MAX_DATA + 1]; /* First entry is used for the label */ 
    9595} FeatureDescriptor; 
     
    9797typedef struct { 
    9898  FeatureDescriptor *features; 
    99   int alarmNumber; 
    100   int beepNumber; 
    10199} ChipDescriptor; 
    102100