#include #include #include #include #include #include #include #include #include #include "sensor_threshold.h" #include "openbmc.h" gboolean get_threshold_state (SensorThreshold *sen, GDBusMethodInvocation *invocation, gpointer user_data) { guint state = sensor_threshold_get_state(sen); sensor_threshold_complete_get_state(sen,invocation,state); return TRUE; } void check_thresholds(SensorThreshold* sensor,GVariant* value) { threshold_states current_state = sensor_threshold_get_state(sensor); //if (current_state != NOT_SET) //{ threshold_states state = NORMAL; if (VARIANT_COMPARE(value,sensor_threshold_get_lower_critical(sensor)) < 0) { state = LOWER_CRITICAL; } else if(VARIANT_COMPARE(value,sensor_threshold_get_lower_warning(sensor)) < 0) { state = LOWER_WARNING; } else if(VARIANT_COMPARE(value,sensor_threshold_get_upper_critical(sensor)) > 0) { state = UPPER_CRITICAL; } else if(VARIANT_COMPARE(value,sensor_threshold_get_upper_warning(sensor)) > 0) { state = UPPER_WARNING; } // only emit signal if threshold state changes if (state != sensor_threshold_get_state(sensor)) { sensor_threshold_set_state(sensor,state); if (state == LOWER_CRITICAL || state == UPPER_CRITICAL) { sensor_threshold_emit_critical(sensor); } else if (state == LOWER_WARNING || state == UPPER_WARNING) { sensor_threshold_emit_warning(sensor); } else if (state == NORMAL) { sensor_threshold_emit_normal(sensor); } } //} }