Changeset 117

Show
Ignore:
Timestamp:
12/25/98 20:44:00 (14 years ago)
Author:
frodo
Message:

/prog/sensors LM80 support

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/trunk/prog/sensors/chips.c

    r112 r117  
    397397} 
    398398 
     399void print_lm80(const sensors_chip_name *name) 
     400{ 
     401  char *label = NULL; 
     402  double cur,min,max,min2,max2,fdiv; 
     403  int alarms; 
     404 
     405  if (!sensors_get_feature(*name,SENSORS_LM80_ALARMS,&cur))  
     406    alarms = cur + 0.5; 
     407  else { 
     408    printf("ERROR: Can't get alarm data!\n"); 
     409    alarms = 0; 
     410  } 
     411 
     412  if (!sensors_get_label(*name,SENSORS_LM80_IN0,&label) && 
     413      !sensors_get_feature(*name,SENSORS_LM80_IN0,&cur) && 
     414      !sensors_get_feature(*name,SENSORS_LM80_IN0_MIN,&min) && 
     415      !sensors_get_feature(*name,SENSORS_LM80_IN0_MAX,&max)) { 
     416    print_label(label,10); 
     417    printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)   %s\n", 
     418           cur,min,max,alarms&LM80_ALARM_IN0?"ALARM":""); 
     419  } else 
     420    printf("ERROR: Can't get IN0 data!\n"); 
     421  free_the_label(&label); 
     422  if (!sensors_get_label(*name,SENSORS_LM80_IN1,&label) && 
     423      !sensors_get_feature(*name,SENSORS_LM80_IN1,&cur) && 
     424      !sensors_get_feature(*name,SENSORS_LM80_IN1_MIN,&min) && 
     425      !sensors_get_feature(*name,SENSORS_LM80_IN1_MAX,&max)) { 
     426    print_label(label,10); 
     427    printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)   %s\n", 
     428           cur,min,max,alarms&LM80_ALARM_IN1?"ALARM":""); 
     429  } else 
     430    printf("ERROR: Can't get IN1 data!\n"); 
     431  free_the_label(&label); 
     432  if (!sensors_get_label(*name,SENSORS_LM80_IN2,&label) && 
     433      !sensors_get_feature(*name,SENSORS_LM80_IN2,&cur) && 
     434      !sensors_get_feature(*name,SENSORS_LM80_IN2_MIN,&min) && 
     435      !sensors_get_feature(*name,SENSORS_LM80_IN2_MAX,&max)) { 
     436    print_label(label,10); 
     437    printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)   %s\n", 
     438           cur,min,max,alarms&LM80_ALARM_IN2?"ALARM":""); 
     439  } else 
     440    printf("ERROR: Can't get IN2 data!\n"); 
     441  free_the_label(&label); 
     442  if (!sensors_get_label(*name,SENSORS_LM80_IN3,&label) && 
     443      !sensors_get_feature(*name,SENSORS_LM80_IN3,&cur) && 
     444      !sensors_get_feature(*name,SENSORS_LM80_IN3_MIN,&min) && 
     445      !sensors_get_feature(*name,SENSORS_LM80_IN3_MAX,&max)) { 
     446    print_label(label,10); 
     447    printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)   %s\n", 
     448           cur,min,max,alarms&LM80_ALARM_IN3?"ALARM":""); 
     449  } else 
     450    printf("ERROR: Can't get IN3 data!\n"); 
     451  free_the_label(&label); 
     452  if (!sensors_get_label(*name,SENSORS_LM80_IN4,&label) && 
     453      !sensors_get_feature(*name,SENSORS_LM80_IN4,&cur) && 
     454      !sensors_get_feature(*name,SENSORS_LM80_IN4_MIN,&min) && 
     455      !sensors_get_feature(*name,SENSORS_LM80_IN4_MAX,&max)) { 
     456    print_label(label,10); 
     457    printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)   %s\n", 
     458           cur,min,max,alarms&LM80_ALARM_IN4?"ALARM":""); 
     459  } else 
     460    printf("ERROR: Can't get IN4 data!\n"); 
     461  free_the_label(&label); 
     462  if (!sensors_get_label(*name,SENSORS_LM80_IN5,&label) && 
     463      !sensors_get_feature(*name,SENSORS_LM80_IN5,&cur) && 
     464      !sensors_get_feature(*name,SENSORS_LM80_IN5_MIN,&min) && 
     465      !sensors_get_feature(*name,SENSORS_LM80_IN5_MAX,&max)) { 
     466    print_label(label,10); 
     467    printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)   %s\n", 
     468           cur,min,max,alarms&LM80_ALARM_IN5?"ALARM":""); 
     469  } else 
     470    printf("ERROR: Can't get IN5 data!\n"); 
     471  free_the_label(&label); 
     472  if (!sensors_get_label(*name,SENSORS_LM80_IN6,&label) && 
     473      !sensors_get_feature(*name,SENSORS_LM80_IN6,&cur) && 
     474      !sensors_get_feature(*name,SENSORS_LM80_IN6_MIN,&min) && 
     475      !sensors_get_feature(*name,SENSORS_LM80_IN6_MAX,&max)) { 
     476    print_label(label,10); 
     477    printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)   %s\n", 
     478           cur,min,max,alarms&LM80_ALARM_IN6?"ALARM":""); 
     479  } else 
     480    printf("ERROR: Can't get IN6 data!\n"); 
     481  free_the_label(&label); 
     482 
     483  if (!sensors_get_label(*name,SENSORS_LM80_FAN1,&label) && 
     484      !sensors_get_feature(*name,SENSORS_LM80_FAN1,&cur) && 
     485      !sensors_get_feature(*name,SENSORS_LM80_FAN1_DIV,&fdiv) && 
     486      !sensors_get_feature(*name,SENSORS_LM80_FAN1_MIN,&min)) { 
     487    print_label(label,10); 
     488    printf("%4.0f RPM  (min = %4.0f RPM, div = %1.0f)          %s\n", 
     489           cur,min,fdiv, alarms&LM80_ALARM_FAN1?"ALARM":""); 
     490  } else 
     491    printf("ERROR: Can't get FAN1 data!\n"); 
     492  free_the_label(&label); 
     493  if (!sensors_get_label(*name,SENSORS_LM80_FAN2,&label) && 
     494      !sensors_get_feature(*name,SENSORS_LM80_FAN2,&cur) && 
     495      !sensors_get_feature(*name,SENSORS_LM80_FAN2_DIV,&fdiv) && 
     496      !sensors_get_feature(*name,SENSORS_LM80_FAN2_MIN,&min)) { 
     497    print_label(label,10); 
     498    printf("%4.0f RPM  (min = %4.0f RPM, div = %1.0f)          %s\n", 
     499           cur,min,fdiv, alarms&LM80_ALARM_FAN2?"ALARM":""); 
     500  } else 
     501    printf("ERROR: Can't get FAN2 data!\n"); 
     502  free_the_label(&label); 
     503 
     504  if (!sensors_get_label(*name,SENSORS_LM80_TEMP,&label) && 
     505      !sensors_get_feature(*name,SENSORS_LM80_TEMP,&cur) && 
     506      !sensors_get_feature(*name,SENSORS_LM80_TEMP_HOT_HYST,&min) && 
     507      !sensors_get_feature(*name,SENSORS_LM80_TEMP_HOT_MAX,&max) && 
     508      !sensors_get_feature(*name,SENSORS_LM80_TEMP_OS_HYST,&min2) && 
     509      !sensors_get_feature(*name,SENSORS_LM80_TEMP_OS_MAX,&max2)) { 
     510    print_label(label,10); 
     511    printf("%+3.0f C (hot:limit = %+3.0f C,  hysteris = %+3.0f C) %s\n", 
     512           cur,max,min, alarms&LM80_ALARM_TEMP_HOT?"ALARM":""); 
     513    printf("         (os: limit = %+3.0f C,  hysteris = %+3.0f C) %s\n", 
     514           max2,min2, alarms&LM80_ALARM_TEMP_HOT?"ALARM":""); 
     515  } else 
     516    printf("ERROR: Can't get TEMP data!\n"); 
     517  free_the_label(&label); 
     518 
     519  if (!sensors_get_label(*name,SENSORS_LM80_ALARMS,&label)) { 
     520    if (alarms & LM80_ALARM_BTI) { 
     521      print_label(label,10); 
     522      printf("Board temperature input (a LM75 perhaps?)    ALARM\n"); 
     523    } 
     524    if (alarms & LM80_ALARM_CHAS) { 
     525      print_label(label,10); 
     526      printf("Chassis intrusion detection                  ALARM\n"); 
     527    } 
     528  } 
     529  free_the_label(&label); 
     530}