Get_Event_Informations returns analog-input and analog-value objects when Event_stane is not equal to NORMAL.

This commit is contained in:
k001a
2011-07-13 20:36:21 +00:00
parent c61c096dc7
commit 536438d23e
6 changed files with 152 additions and 1 deletions
+66
View File
@@ -843,6 +843,72 @@ void Analog_Input_Intrinsic_Reporting(uint32_t object_instance)
}
int Analog_Input_Event_Information(unsigned index,
BACNET_GET_EVENT_INFORMATION_DATA * getevent_data)
{
#if defined(INTRINSIC_REPORTING)
bool isNotAckedTransitions;
bool IsActiveEvent;
int i;
/* check index */
if (index < MAX_ANALOG_INPUTS) {
/* Event_State not equal to NORMAL */
IsActiveEvent = (AI_Descr[index].Event_State != EVENT_STATE_NORMAL);
/* Acked_Transitions property, which has at least one of the bits
(TO-OFFNORMAL, TO-FAULT, TONORMAL) set to FALSE. */
/* FIXME: finish it */
isNotAckedTransitions = false;
}
else
return -1; /* end of list */
if ((IsActiveEvent) || (isNotAckedTransitions)) {
/* Object Identifier */
getevent_data->objectIdentifier.type = OBJECT_ANALOG_INPUT;
getevent_data->objectIdentifier.instance = Analog_Input_Index_To_Instance(index);
/* Event State */
getevent_data->eventState = AI_Descr[index].Event_State;
/* Acknowledged Transitions */
/* FIXME: finish it */
bitstring_init(&getevent_data->acknowledgedTransitions);
bitstring_set_bit(&getevent_data->acknowledgedTransitions, TRANSITION_TO_OFFNORMAL, true);
bitstring_set_bit(&getevent_data->acknowledgedTransitions, TRANSITION_TO_FAULT, true);
bitstring_set_bit(&getevent_data->acknowledgedTransitions, TRANSITION_TO_NORMAL, true);
/* Event Time Stamps */
for (i = 0; i < 3; i++) {
getevent_data->eventTimeStamps[i].tag = TIME_STAMP_DATETIME;
getevent_data->eventTimeStamps[i].value.dateTime =
AI_Descr[index].Event_Time_Stamps[i];
}
/* Notify Type */
getevent_data->notifyType = AI_Descr[index].Notify_Type;
/* Event Enable */
bitstring_init(&getevent_data->eventEnable);
bitstring_set_bit(&getevent_data->eventEnable, TRANSITION_TO_OFFNORMAL,
(AI_Descr[index].Event_Enable & EVENT_ENABLE_TO_OFFNORMAL) ? true : false );
bitstring_set_bit(&getevent_data->eventEnable, TRANSITION_TO_FAULT,
(AI_Descr[index].Event_Enable & EVENT_ENABLE_TO_FAULT ) ? true : false );
bitstring_set_bit(&getevent_data->eventEnable, TRANSITION_TO_NORMAL,
(AI_Descr[index].Event_Enable & EVENT_ENABLE_TO_NORMAL ) ? true : false );
/* Event Priorities */
/* FIXME: finish it */
getevent_data->eventPriorities[0] = 255;
getevent_data->eventPriorities[1] = 255;
getevent_data->eventPriorities[2] = 255;
return 1; /* active event */
}
else
return 0; /* no active event at this index */
#endif /* defined(INTRINSIC_REPORTING) */
}
#ifdef TEST
#include <assert.h>
#include <string.h>