2.2.4 Atrybuty zmiennych

 

Większość atrybutów stosowanych w bazach definicji zmiennych aplikacji Asix.Evo jest identyczna jak w przypadku aplikacji klasycznych. Poniższa lista opisuje jedynie różnice w interpretacji atrybutów. Pełna lista atrybutów zmiennych znajduje się w części Serwer Danych > Załącznik 1.

Nazwa

Opis

Typ wartości

Określa typ wartości zmiennej w konwencji .Net. W przypadku użycia bazy MDB nie posiadającej tego atrybutu, jest on tworzony wirtualnie na podstawie użytej w definicji zmiennej funkcji przeliczającej i formatu.

Format

Sposób formatowania tekstowego wartości w konwencji .Net. Skrócony opis formatów .Net można znaleźć w podręczniku AsixEvo - Techniki budowy diagramów.

W przypadku baz MDB atrybut tworzony jest wirtualnie według poniższych zasad:

a.      Jeżeli w bazie jest atrybut FormatEvo, to jest on traktowany wprost jako definicja atrybutu Format Asix.Evo.

b.      Jeżeli w bazie nie ma atrybutu FormatEvo, to atrybut Format  bazy MDB (podawany w konwencji formatów aplikacji klasycznych) jest w trakcie ładowania tłumaczony na odpowiadający mu format .Net.

Funkcja przeliczająca odczytu

Atrybut ma postać wyrażenia, które wstępnie przelicza pobraną z drajwera wartość surową zmiennej. W treści wyrażenia odwołanie do wartości surowej wykonywane jest przy pomocy funkcji RawValue.

W przypadku korzystania z serwera danych (kanał Asix6), niezależnie od definicji atrybutu funkcji przeliczającej odczytu, wartość zmiennej podlega standardowemu przeliczeniu przez Asmen’a na podstawie atrybutu Funkcja przeliczająca.

W przypadku użycia bazy MDB nie posiadającej atrybutu Funkcja przeliczająca odczytu, jest on tworzony wirtualnie na podstawie użytej w definicji zmiennej formatu.

 

Przykłady:

FromAsix6Time(RawValue())  -> Konwersja z liczby sekund na czas trwania Asix.Evo (TimeSpan)

FromAsix6Time(RawValue() * 1000)  -> Konwersja z liczby milisekund na czas trwania Asix.Evo (TimeSpan)

FromAsix6Date(RawValue())  -> Konwersja z daty i czasu jako liczba sekund od 1970-01-01 00:00 na datę i czas Asix.Evo (DateTime)

RawValue()  *  5 + 100  -> Przeskalowanie liniowe

Variable("Sample1") * 1000  -> Odwołanie do wartości innej zmiennej

Variable("Sample1") + Variable("Sample2")  -> Odwołanie do wartości innych zmiennych

Variable("Sample1") & 0x0F  -> Maska na 4 najmłodszych bitach

RawValue() > 50 ? 1 : 0  -> Wyrażenie warunkowe: gdy wartość surowa większa niż 50 to zwraca 1; w przeciwnym wypadku zwraca 0.

Funkcja przeliczająca zapisu

 

Atrybut ma postać wyrażenia, które przelicza wartość sterującą przed wysłaniem jej do drajwera.

Pozostałe zasady użycia są identyczne jak dla atrybutu Funkcja przeliczająca odczytu.

 

Przykłady:

ToAsix6Time(NewValue())  -> Konwersja z czasu trwania Asix.Evo (TimeSpan) na liczbę sekund

ToAsix6Time(NewValue()) / 1000  -> Konwersja z czasu trwania Asix.Evo (TimeSpan) na liczbę milisekund

ToAsix6Date(NewValue())  -> Konwersja z daty i czasu Asix.Evo (DateTime) na datę i czas jako liczba sekund od 1970-01-01 00:00

(NewValue() - 100) / 5  -> Przeskalowanie liniowe

Variable("Sample1") * 1000  -> Odwołanie do wartości innej zmiennej

Variable("Sample1") + Variable("Sample2")  -> Odwołanie do wartości innych zmiennych

Variable("Sample1") & 0x0F  -> Maska na 4 najmłodszych bitach

RawValue() > 50 ? 1 : 0  -> Wyrażenie warunkowe: gdy wartość wprowadzana większa niż 50 to ustawia 1; w przeciwnym wypadku ustawia 0.

Wartość początkowa

Określa wartość początkową zmiennej, nadawaną zmiennej w momencie uruchomienia aplikacji.

Pozostałe zasady użycia są identyczne jak dla atrybutu Funkcja przeliczająca odczytu.