/// <summary>
/// Updates the non-exclusive limit event.
/// </summary>
private void UpdateNonExclusiveLimitAlarm(NonExclusiveLimitAlarmState instance, EventType eventType, ONEVENTSTRUCT e)
{
bool active = (e.wNewState & Constants.CONDITION_ACTIVE) != 0;
TwoStateVariableState state = null;
if (AeTypeCache.IsKnownName(e.szConditionName, "HI HI"))
{
instance.HighHighState = state = new TwoStateVariableState(instance);
instance.HighHighState.BrowseName = Opc.Ua.BrowseNames.HighHighState;
}
else if (AeTypeCache.IsKnownName(e.szSubconditionName, "HI") || AeTypeCache.IsKnownName(e.szSubconditionName, "DV HI"))
{
instance.HighState = state = new TwoStateVariableState(instance);
instance.HighState.BrowseName = Opc.Ua.BrowseNames.HighState;
}
else if (AeTypeCache.IsKnownName(e.szSubconditionName, "LO") || AeTypeCache.IsKnownName(e.szSubconditionName, "DV LO"))
{
instance.LowState = state = new TwoStateVariableState(instance);
instance.LowState.BrowseName = Opc.Ua.BrowseNames.LowState;
}
else if (AeTypeCache.IsKnownName(e.szSubconditionName, "LO LO"))
{
instance.LowLowState = state = new TwoStateVariableState(instance);
instance.LowLowState.BrowseName = Opc.Ua.BrowseNames.LowLowState;
}
if (state != null)
{
state.Value = new LocalizedText((active) ? ConditionStateNames.Active : ConditionStateNames.Inactive);
state.SetChildValue(m_defaultContext, Opc.Ua.BrowseNames.Id, active, false);
}
}