1.3.7.1.    Deklaracje warunków archiwizacji    

 

 

Deklaracja w plikach

 

Warunki archiwizacji są definiowane przy pomocy wyrażeń umieszczanych w pliku. Każde wyrażenie musi być zdefiniowane w odrębnej linii. Nazwa warunku podana w pliku jest następnie umieszczana w definicji zmiennej w polu Parametry archiwizacji. Nazwę pliku z warunkami archiwizacji należy zadeklarować w: programie Architekt > Obszary i komputery > Dane archiwalne > zakładka Standardowe > opcja Warunki

 

Wartości i argumenty wyrażeń są stałymi lub zmiennymi wartościami zmiennoprzecinkowymi, maskami 32-bitowymi, lub wartościami logicznymi. Argumentami wyrażeń mogą być inne wyrażenia, czyli można definiować wyrażenia złożone. Nazwy wyrażeń nie mogą się powtarzać.

 

Jeżeli wartość wyrażenia nie jest wartością logiczną, a zostanie użyta bezpośrednio jako warunek, to jest dokonywana konwersja:

 

 

Linia wyrażenia ma następującą strukturę:

 

Nazwa_wyrażenia, Operator, Arg1, Arg2, ...

 

gdzie:

 

Nazwa_wyrazenia     - identyfikator wyrażenia zawierający do 15 znaków; nazwa wyrażenia może się powtarzać; nazwy wyrażeń stanowią odrębną grupę, dzięki czemu nie dochodzi do konfliktu np. z identyczną nazwą zmiennej;

Operator                 - nazwa jednego z dopuszczalnych operatorów;

Arg1, Arg2, ...          - argumenty wyrażenia.

 

 

Argumenty mają postać:

 

[u][$]źródło

 

gdzie:

 

u i $             - są opcjonalne i oznaczają:

u                 - jest jednym z operatorów jednoargumentowych:

-                 - oznacza zmianę znaku z wcześniejszą konwersją do postaci liczby zmiennoprzecinkowej,

~                - oznacza negację bitów maski z wcześniejszą konwersją do postaci maski 32-bitowej,

!                 - oznacza negację z wcześniejszą konwersją do postaci wartości logicznej.

$                 - oznacza pobranie wartości wyliczonej przy poprzednim wartościowaniu warunku dla danej zmiennej i zachowanie aktualnej wartości do przyszłych wyliczeń.

 

 

Źródło danych źródło ma jedną z następujących postaci:

 

liczba_dziesiętna               - wartość liczbowa zmiennoprzecinkowa (np. 9999);

0xliczba_szesnastkowa       - maska 32-bitowa zakodowana szesnastkowo (np. 0xFFFF);

>>                                  - plus nieskończoność;

<<                                  - minus nieskończoność;

@nazwa_zmiennej             - wartość zmiennej procesowej;

@                                   - wartość zmiennej procesowej, dla której aktualnie wyznaczany jest warunek; taki warunek ma różne wartości w zależności od tego, dla której zmiennej jest wyznaczany;

?nazwa_wyrażenia             - wartość innego, wcześniej zdefiniowanego wyrażenia. Można w ten sposób definiować wyrażenia złożone.

 

 

 

 

Deklaracja in-line warunku archiwizacji

 

W skład definicji zmiennej może wchodzić warunek archiwizacji tej zmiennej. Warunek umieszczany jest w polu Archiwizacja zmiennej, w parametrze War.  

 

Ponieważ większość warunków ma prostą jednowierszową postać, to w wielu aplikacjach pozwoli to uniknąć tworzenia pliku warunków. 

Takie warunki można wprowadzać w edytorze bazy definicji zmiennych Architekta. Nie można ich stosować z wcześniejszymi wersjami Architekta, gdyż nieprawidłowo interpretuje on dodatkowe przecinki w definicji zmiennej.  

 

Deklarację in-line można zdefiniować na 2 niżej opisane sposoby.

 

 

Warunek jako wyrażenie w deklaracji zmiennej 

 

Zamiast nazwy warunku można wpisać bezpośrednio wyrażenie, zgodne ze składnią definicji warunku w pliku warunków, ujęte w nawiasy (). W takim wyrażeniu pomija się pierwszy parametr określający nazwę warunku. 

 

Przykłady 

 

Archiwizuj, gdy bit 4 zmiennej AAA jest równy 1:

(BAND, @AAA, 0x10)

 

Archiwizuj, gdy bity 4 lub 8 zmiennej AAA zmieniły stan:

(BNE, @AAA, $@AAA, 0x110)

 

Archiwizuj, gdy bit 0 zmiennej archiwizowanej zmienia stan z 0 na 1:

(BGT, @, $@, 0x1)

 

Archiwizuj, gdy wartość zmiennej archiwizowanej jest poza przedziałem (20,80):

(IN, @, <<, 20, 80, >>)

 

 

 

Warunek jako argument w deklaracji zmiennej

 

Zamiast nazwy warunku można wpisać bezpośrednio wyrażenie, zgodne ze składnią argumentu warunku w pliku warunków. Takie wyrażenie musi się zaczynać od !, -, ~, $, @ lub ?.

 

Przykłady

 

Archiwizuj, gdy zmienna AAA jest poza przedziałem (-0.5; 0.5):

@AAA

 

Archiwizuj, gdy zmienna AAA jest w przedziale (-0.5; 0.5):

!@AAA

 

Archiwizuj, gdy poprzednia wartość zmiennej AAA była poza przedziałem (-0.5; 0.5):

$@AAA

 

Archiwizuj, gdy warunek QQQ nie jest spełniony:

!?QQQ