diff --git a/bacnet-stack/demo/object/ai.c b/bacnet-stack/demo/object/ai.c index 93aac339..d6983f76 100644 --- a/bacnet-stack/demo/object/ai.c +++ b/bacnet-stack/demo/object/ai.c @@ -1105,14 +1105,14 @@ int Analog_Input_Alarm_Ack( break; case EVENT_STATE_FAULT: - if (CurrentAI->Acked_Transitions[TRANSITION_TO_NORMAL].bIsAcked == + if (CurrentAI->Acked_Transitions[TRANSITION_TO_FAULT].bIsAcked == false) { if (alarmack_data->eventTimeStamp.tag != TIME_STAMP_DATETIME) { *error_code = ERROR_CODE_INVALID_TIME_STAMP; return -1; } if (datetime_compare(&CurrentAI->Acked_Transitions - [TRANSITION_TO_NORMAL].Time_Stamp, + [TRANSITION_TO_FAULT].Time_Stamp, &alarmack_data->eventTimeStamp.value.dateTime) > 0) { *error_code = ERROR_CODE_INVALID_TIME_STAMP; return -1; @@ -1128,14 +1128,14 @@ int Analog_Input_Alarm_Ack( break; case EVENT_STATE_NORMAL: - if (CurrentAI->Acked_Transitions[TRANSITION_TO_FAULT].bIsAcked == + if (CurrentAI->Acked_Transitions[TRANSITION_TO_NORMAL].bIsAcked == false) { if (alarmack_data->eventTimeStamp.tag != TIME_STAMP_DATETIME) { *error_code = ERROR_CODE_INVALID_TIME_STAMP; return -1; } if (datetime_compare(&CurrentAI->Acked_Transitions - [TRANSITION_TO_FAULT].Time_Stamp, + [TRANSITION_TO_NORMAL].Time_Stamp, &alarmack_data->eventTimeStamp.value.dateTime) > 0) { *error_code = ERROR_CODE_INVALID_TIME_STAMP; return -1; @@ -1153,6 +1153,8 @@ int Analog_Input_Alarm_Ack( default: return -2; } + CurrentAI->Ack_notify_data.bSendAckNotify = true; + CurrentAI->Ack_notify_data.EventState = alarmack_data->eventStateAcked; return 1; }