| | 399 | void 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 | } |