mirror of
https://github.com/ipmitool/ipmitool.git
synced 2025-05-10 18:47:22 +00:00
fix sdr printing of deassertion events and negative values for min/max
This commit is contained in:
parent
380f330e15
commit
1fe48e8a36
@ -154,9 +154,6 @@ sdr_convert_sensor_reading(struct sdr_record_full_sensor * sensor,
|
||||
}
|
||||
|
||||
switch (sensor->linearization & 0x7f) {
|
||||
default:
|
||||
case SDR_SENSOR_L_LINEAR:
|
||||
break;
|
||||
case SDR_SENSOR_L_LN:
|
||||
result = log(result);
|
||||
break;
|
||||
@ -190,6 +187,9 @@ sdr_convert_sensor_reading(struct sdr_record_full_sensor * sensor,
|
||||
case SDR_SENSOR_L_CUBERT:
|
||||
result = cbrt(result);
|
||||
break;
|
||||
case SDR_SENSOR_L_LINEAR:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return result;
|
||||
@ -883,7 +883,7 @@ ipmi_sdr_print_sensor_event_enable(struct ipmi_intf * intf,
|
||||
}
|
||||
printf("\n");
|
||||
if ((rsp->data_len == 4 && rsp->data[3] != 0) ||
|
||||
(rsp->data_len > 4 && (rsp->data[3] != 0 && rsp->data[4] != 0))) {
|
||||
(rsp->data_len > 4 && (rsp->data[3] != 0 || rsp->data[4] != 0))) {
|
||||
printf(" Deassertions Enabled : ");
|
||||
for (i = 0; i < 8; i++) {
|
||||
if (rsp->data[3] & (1<<i))
|
||||
@ -923,7 +923,7 @@ ipmi_sdr_print_sensor_full(struct ipmi_intf * intf,
|
||||
{
|
||||
char sval[16], unitstr[16], desc[17];
|
||||
int i=0, validread=1, do_unit=1;
|
||||
double val = 0.0;
|
||||
double val = 0.0, creading = 0.0;
|
||||
struct ipmi_rs * rsp;
|
||||
uint8_t min_reading, max_reading;
|
||||
|
||||
@ -1208,37 +1208,39 @@ ipmi_sdr_print_sensor_full(struct ipmi_intf * intf,
|
||||
SENSOR_PRINT_THRESH("Lower critical", lower.critical, lcr);
|
||||
SENSOR_PRINT_THRESH("Lower non-critical", lower.non_critical, lnc);
|
||||
|
||||
min_reading = (uint8_t)sdr_convert_sensor_reading(
|
||||
sensor, sensor->threshold.hysteresis.positive);
|
||||
if (min_reading == 0 || min_reading == 0xff)
|
||||
creading = sdr_convert_sensor_reading(sensor, sensor->threshold.hysteresis.positive);
|
||||
if (sensor->threshold.hysteresis.positive == 0x00 ||
|
||||
sensor->threshold.hysteresis.positive == 0xff ||
|
||||
creading == 0)
|
||||
printf(" Positive Hysteresis : Unspecified\n");
|
||||
else
|
||||
printf(" Positive Hysteresis : %.3f\n", (double)min_reading);
|
||||
printf(" Positive Hysteresis : %.3f\n", creading);
|
||||
|
||||
min_reading = (uint8_t)sdr_convert_sensor_reading(
|
||||
sensor, sensor->threshold.hysteresis.negative);
|
||||
if (min_reading == 0 || min_reading == 0xff)
|
||||
creading = sdr_convert_sensor_reading(sensor, sensor->threshold.hysteresis.negative);
|
||||
if (sensor->threshold.hysteresis.negative == 0x00 ||
|
||||
sensor->threshold.hysteresis.negative == 0xff ||
|
||||
creading == 0.0)
|
||||
printf(" Negative Hysteresis : Unspecified\n");
|
||||
else
|
||||
printf(" Negative Hysteresis : %.3f\n", (double)min_reading);
|
||||
printf(" Negative Hysteresis : %.3f\n", creading);
|
||||
|
||||
min_reading = (uint8_t)sdr_convert_sensor_reading(
|
||||
sensor, sensor->sensor_min);
|
||||
creading = sdr_convert_sensor_reading(sensor, sensor->sensor_min);
|
||||
if ((sensor->unit.analog == 0 && sensor->sensor_min == 0x00) ||
|
||||
(sensor->unit.analog == 1 && sensor->sensor_min == 0xff) ||
|
||||
(sensor->unit.analog == 2 && sensor->sensor_min == 0x80))
|
||||
(sensor->unit.analog == 2 && sensor->sensor_min == 0x80) ||
|
||||
creading == 0.0)
|
||||
printf(" Minimum sensor range : Unspecified\n");
|
||||
else
|
||||
printf(" Minimum sensor range : %.3f\n", (double)min_reading);
|
||||
printf(" Minimum sensor range : %.3f\n", creading);
|
||||
|
||||
max_reading = (uint8_t)sdr_convert_sensor_reading(
|
||||
sensor, sensor->sensor_max);
|
||||
creading = sdr_convert_sensor_reading(sensor, sensor->sensor_max);
|
||||
if ((sensor->unit.analog == 0 && sensor->sensor_max == 0xff) ||
|
||||
(sensor->unit.analog == 1 && sensor->sensor_max == 0x00) ||
|
||||
(sensor->unit.analog == 2 && sensor->sensor_max == 0x7f))
|
||||
(sensor->unit.analog == 2 && sensor->sensor_max == 0x7f) ||
|
||||
creading == 0.0)
|
||||
printf(" Maximum sensor range : Unspecified\n");
|
||||
else
|
||||
printf(" Maximum sensor range : %.3f\n", (double)max_reading);
|
||||
printf(" Maximum sensor range : %.3f\n", creading);
|
||||
|
||||
printf(" Event Message Control : ");
|
||||
switch (sensor->sensor.capabilities.event_msg) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user