mirror of
https://github.com/ipmitool/ipmitool.git
synced 2025-05-11 19:17: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) {
|
switch (sensor->linearization & 0x7f) {
|
||||||
default:
|
|
||||||
case SDR_SENSOR_L_LINEAR:
|
|
||||||
break;
|
|
||||||
case SDR_SENSOR_L_LN:
|
case SDR_SENSOR_L_LN:
|
||||||
result = log(result);
|
result = log(result);
|
||||||
break;
|
break;
|
||||||
@ -190,6 +187,9 @@ sdr_convert_sensor_reading(struct sdr_record_full_sensor * sensor,
|
|||||||
case SDR_SENSOR_L_CUBERT:
|
case SDR_SENSOR_L_CUBERT:
|
||||||
result = cbrt(result);
|
result = cbrt(result);
|
||||||
break;
|
break;
|
||||||
|
case SDR_SENSOR_L_LINEAR:
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
@ -883,7 +883,7 @@ ipmi_sdr_print_sensor_event_enable(struct ipmi_intf * intf,
|
|||||||
}
|
}
|
||||||
printf("\n");
|
printf("\n");
|
||||||
if ((rsp->data_len == 4 && rsp->data[3] != 0) ||
|
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 : ");
|
printf(" Deassertions Enabled : ");
|
||||||
for (i = 0; i < 8; i++) {
|
for (i = 0; i < 8; i++) {
|
||||||
if (rsp->data[3] & (1<<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];
|
char sval[16], unitstr[16], desc[17];
|
||||||
int i=0, validread=1, do_unit=1;
|
int i=0, validread=1, do_unit=1;
|
||||||
double val = 0.0;
|
double val = 0.0, creading = 0.0;
|
||||||
struct ipmi_rs * rsp;
|
struct ipmi_rs * rsp;
|
||||||
uint8_t min_reading, max_reading;
|
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 critical", lower.critical, lcr);
|
||||||
SENSOR_PRINT_THRESH("Lower non-critical", lower.non_critical, lnc);
|
SENSOR_PRINT_THRESH("Lower non-critical", lower.non_critical, lnc);
|
||||||
|
|
||||||
min_reading = (uint8_t)sdr_convert_sensor_reading(
|
creading = sdr_convert_sensor_reading(sensor, sensor->threshold.hysteresis.positive);
|
||||||
sensor, sensor->threshold.hysteresis.positive);
|
if (sensor->threshold.hysteresis.positive == 0x00 ||
|
||||||
if (min_reading == 0 || min_reading == 0xff)
|
sensor->threshold.hysteresis.positive == 0xff ||
|
||||||
|
creading == 0)
|
||||||
printf(" Positive Hysteresis : Unspecified\n");
|
printf(" Positive Hysteresis : Unspecified\n");
|
||||||
else
|
else
|
||||||
printf(" Positive Hysteresis : %.3f\n", (double)min_reading);
|
printf(" Positive Hysteresis : %.3f\n", creading);
|
||||||
|
|
||||||
min_reading = (uint8_t)sdr_convert_sensor_reading(
|
creading = sdr_convert_sensor_reading(sensor, sensor->threshold.hysteresis.negative);
|
||||||
sensor, sensor->threshold.hysteresis.negative);
|
if (sensor->threshold.hysteresis.negative == 0x00 ||
|
||||||
if (min_reading == 0 || min_reading == 0xff)
|
sensor->threshold.hysteresis.negative == 0xff ||
|
||||||
|
creading == 0.0)
|
||||||
printf(" Negative Hysteresis : Unspecified\n");
|
printf(" Negative Hysteresis : Unspecified\n");
|
||||||
else
|
else
|
||||||
printf(" Negative Hysteresis : %.3f\n", (double)min_reading);
|
printf(" Negative Hysteresis : %.3f\n", creading);
|
||||||
|
|
||||||
min_reading = (uint8_t)sdr_convert_sensor_reading(
|
creading = sdr_convert_sensor_reading(sensor, sensor->sensor_min);
|
||||||
sensor, sensor->sensor_min);
|
|
||||||
if ((sensor->unit.analog == 0 && sensor->sensor_min == 0x00) ||
|
if ((sensor->unit.analog == 0 && sensor->sensor_min == 0x00) ||
|
||||||
(sensor->unit.analog == 1 && sensor->sensor_min == 0xff) ||
|
(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");
|
printf(" Minimum sensor range : Unspecified\n");
|
||||||
else
|
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(
|
creading = sdr_convert_sensor_reading(sensor, sensor->sensor_max);
|
||||||
sensor, sensor->sensor_max);
|
|
||||||
if ((sensor->unit.analog == 0 && sensor->sensor_max == 0xff) ||
|
if ((sensor->unit.analog == 0 && sensor->sensor_max == 0xff) ||
|
||||||
(sensor->unit.analog == 1 && sensor->sensor_max == 0x00) ||
|
(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");
|
printf(" Maximum sensor range : Unspecified\n");
|
||||||
else
|
else
|
||||||
printf(" Maximum sensor range : %.3f\n", (double)max_reading);
|
printf(" Maximum sensor range : %.3f\n", creading);
|
||||||
|
|
||||||
printf(" Event Message Control : ");
|
printf(" Event Message Control : ");
|
||||||
switch (sensor->sensor.capabilities.event_msg) {
|
switch (sensor->sensor.capabilities.event_msg) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user