3.11.2  Metody

 

 

Accept

 

bool Accept();

Function Accept() As Boolean 

 

Metoda służy do potwierdzenia alarmu. Jej efekt działania jest identyczny z potwierdzeniem alarmu przez operatora w tabeli alarmów. Funkcja zwraca wstępny status wykonania. Wartość true oznacza, że operacja została przyjęta do realizacji. Potwierdzenie może jednak nie dojść do skutku z powodu niespełnienia warunków sprawdzanych w późniejszych fazach realizacji operacji, np. brak uprawnienia stanowiska do potwierdzania alarmów w domenie.

 

 

Cancel

 

bool Cancel(params object[ ] aParameters);

bool Cancel(DateTime aEndTime, params object[ ] aParameters);

Function Cancel(ByVal ParamArray aParameters( ) As  Object) As Boolean 

Function Cancel(ByVal aEndTime As  Date , ByVal ParamArray aParameters( ) As  Object) As Boolean 

 

Metoda pozwala na zgłoszenie końca zdarzenia alarmowego. Opcjonalna tabela parametrów aParameters służy do przekazania dodatkowych danych związanych ze zdarzeniem. Znaczenie tych danych zależy wyłącznie od projektanta aplikacji. Wersja wywołania z parametrem aEndTime pozwala na jawne podanie czasu zdarzenia. W przypadku wywołania bez parametru aEndTime czas zdarzenia jest ustawiany automatycznie na chwilę bieżącą. Metodę można wykonać tylko dla alarmów, które należą do zewnętrznej strategii rozpoznania alarmów.

Funkcja zwraca wstępny status wykonania. Wartość true oznacza, że operacja została przyjęta do realizacji. Zgłoszenie może jednak zostać zignorowane z powodu niespełnienia warunków sprawdzanych w późniejszych fazach realizacji operacji, np. stanowisko nie jest kontrolerem aktywnym domeny i użyto zwykłej strategii zewnętrznej (nie globalnej).

 

 

Raise

 

bool Raise(params object[ ] aParameters);

bool Raise(DateTime aStartTime, params object[ ] aParameters);

Function Raise(ByVal ParamArray aParameters( ) As  Object) As Boolean 

Function Raise(ByVal aStartTime As  Date , ByVal ParamArray aParameters( ) As  Object) As Boolean 

 

Metoda pozwala na zgłoszenie początku zdarzenia alarmowego. Opcjonalna tabela parametrów aParameters służy do przekazania dodatkowych danych związanych ze zdarzeniem. Znaczenie tych danych zależy wyłącznie od projektanta aplikacji. Wersja wywołania z parametrem aStartTime pozwala na jawne podanie czasu zdarzenia. W przypadku wywołania bez parametru aStartTime czas zdarzenia jest ustawiany automatycznie na chwilę bieżącą. Metodę można wykonać tylko dla alarmów, które należą do zewnętrznej strategii rozpoznania alarmów.

Funkcja zwraca wstępny status wykonania. Wartość true oznacza, że operacja została przyjęta do realizacji. Zgłoszenie może jednak zostać zignorowane z powodu niespełnienia warunków sprawdzanych w późniejszych fazach realizacji operacji, np. stanowisko nie jest kontrolerem aktywnym domeny i użyto zwykłej strategii zewnętrznej (nie globalnej).

 

 

RegisterStateEvent

 

void RegisterStateEvent(AlarmEvent aFunction);

Sub RegisterStateEvent(ByVal aFunction As  AlarmEvent) 

 

Funkcja służy do zarejestrowania funkcji zwrotnej, która będzie wywoływana przy każdej zmianie stanu kontrolowanego alarmu. Dotyczy to zarówno zdarzeń początku i końca alarmu, jak i zmian stanu spowodowanych działaniami operatora, np. potwierdzenie alarmu.

Parametr aFunction określa funkcję monitorującą stan alarmu – musi ona być zgodna z delegatem AlarmEvent.

delegate void AlarmEvent(string aDomain, string aAlarm, AlarmState aAlarmState, AlarmEventType aEventType);

Delegate Sub AlarmEvent(ByVal aDomain As  String, ByVal aAlarm As String, ByVal aAlarmState As  AlarmState ,ByVal aEventType As  AlarmEventType)

W momencie wywołania funkcji monitorującej przekazywane są do niej cztery parametry. Parametry  aDomain  i aAlarm  określają odpowiednio nazwę domeny i identyfikator alarmu, którego wywołanie funkcji zwrotnej dotyczy. Parametr aAlarmState przekazuje obiekt, z którego można odczytać aktualny stan alarmu.  Parametr aEventType  określa rodzaj zdarzenia. Typ wyliczeniowy AlarmEventType przybiera następujące wartości: AlarmBegin (wykrycie początku alarmu) , AlarmEnd (wykrycie końca alarmu), AlarmManagement (zmiana stanu wynikająca z działań operatora, np. potwierdzenia alarmu), DomainStart (uruchomienie pracy domeny),  DomainStop (zatrzymanie pracy domeny).

Funkcję monitorującą można wyrejestrować przy pomocy metody UnregisterStateEvent.

Przykład:

 

C#

       IApplication application;

       void AlarmFun(string aDomain, string aAlarm, AlarmState aAlarmState,

                     AlarmEventType aEventType)

       {

// kod funkcji zwrotnej

          if (aEventType == AlarmEventType.AlarmBegin)

             application.ReportMessage(EvoMessageType.Info, aAlarm + ": alarm rozpoczęty");

       }

      

       public bool Initialize(string[] aParameters, IApplication aApplication)

       {

          application = aApplication;

          IAlarm ia = application.GetAlarm("Blok1","DemoB1");

          ia.RegisterStateEvent(AlarmFun);

          return false;

       }

     

 

VB

 

Dim application As IApplication

Sub AlarmFun(aDomain As String, aName As String, aAlarmState As AlarmState, aEventType As AlarmEventType)

            

'  kod funkcji zwrotnej

   If aEventType = AlarmEventType.AlarmBegin Then

       application.ReportMessage(EvoMessageType.Info, aName & ": alarm rozpoczęty")

   End If

 

End Sub

      

Public Function Initialize(ByVal aParameters() As String, ByVal aApplication As _

IApplication) As Boolean Implements IScript.Initialize

            

   application = aApplication  

   Dim ia As IAlarm

   ia = application.GetAlarm("Blok1", "DemoB1")

   ia.RegisterStateEvent(AddressOf AlarmFun)

   Return False

      

End Function

 

 

 

 

Powyższy kod tworzy obiekt IAlarm dla alarmu DemoB1 z domeny Blok1. Następnie rejestrowana jest funkcja monitorująca AlarmFun, która przy każdej zmianie stanu alarmu sprawdza rodzaj zdarzenia i zapisuje w logu komunikatów informację o zdarzeniach początku  alarmu.

 

 

UnregisterStateEvent

 

void UnregisterStateEvent();

Sub UnregisterStateEvent() 

 

Wyrejestrowanie funkcji monitorującej zmiany stanu alarmu, która została wcześniej zarejestrowana przy pomocy funkcji RegisterStateEvent.