diff --git a/src/bacnet/basic/object/ao.c b/src/bacnet/basic/object/ao.c index fa2e3713..f66863ba 100644 --- a/src/bacnet/basic/object/ao.c +++ b/src/bacnet/basic/object/ao.c @@ -340,7 +340,8 @@ bool Analog_Output_Present_Value_Set( pObject = Keylist_Data(Object_List, object_instance); if (pObject) { - if ((priority >= 1) && (priority <= BACNET_MAX_PRIORITY)) { + if ((priority >= 1) && (priority <= BACNET_MAX_PRIORITY) && + value >= pObject->Min_Pres_Value && value <= pObject->Max_Pres_Value) { pObject->Relinquished[priority - 1] = false; pObject->Priority_Array[priority - 1] = value; Analog_Output_Present_Value_COV_Detect( @@ -402,7 +403,7 @@ static bool Analog_Output_Present_Value_Write(uint32_t object_instance, pObject = Keylist_Data(Object_List, object_instance); if (pObject) { if ((priority >= 1) && (priority <= BACNET_MAX_PRIORITY) && - (value >= 0.0) && (value <= 100.0)) { + (value >= pObject->Min_Pres_Value) && (value <= pObject->Max_Pres_Value)) { if (priority != 6) { old_value = Analog_Output_Present_Value(object_instance); Analog_Output_Present_Value_Set(