Promotic
WikipediaLinkedInYoutubeTwitterFacebook

onDataReceive - zdarzenie objektu PmCommData

Opis:
Zdarzenie jest wywołane po odczytu danych z komunikacji.

Sposób wołania tego zdarzenia jest zależny od ustawienia konfiguratora Zdarzenie "onDataReceive". Zalecane jest ustawienie "A = wołać dla wszystkich zarejestrowanych zmiennych (w tym obiekcie oraz w innych obiektach PmData)".

Parametry:
pMe(Object) Odniesienie do PROMOTIC obiektu, w którym doszło do danego zdarzenia.
pEvent(Object) Odniesienie do obiektu zawierającego ściślejsze informacje o danym zdarzeniu.
pEvent.Items - (Array) Właściwość jest ustawiona dla różnych obiektów według tego, w jaki sposób jest ustawiony konfigurator Zdarzenie "onDataReceive":
- "A = wołać dla wszystkich zarejestrowanych zmiennych (w tym obiekcie oraz w innych obiektach PmData)".

Wtedy każda pozycja tej tablicy przedstawia obiekt "rozszerzenie danych ExtComm" zmiennej, która jest zdefiniowanaw tym obiekcie PmCommData lub w innym obiekcie PmData.

- "B = wołać tylko dla zmiennych zdefioniowanych w tym obiekcie (przestarzałe)".

Wtedy każda pozycja tej tablicy przedstawia obiekt "zmienna Var", która jest zdefiniowana w tym obiekcie PmCommData. Zmienne w innych obiektach PmData (które posiadają rozszerzenie danych ExtComm) nie są przechwytywane.

W obu przypadkach jeżeli z komunikacji zostanie jednocześnie odczytane 10 pozycji danych, wtedy zdarzenie zostanie wywołane tylko raz a w tablicy znajduje się tych 10 pozycji.

pEvent.ErrorCount - (Long) Ilość pozycji danych w tablicy pEvent.Items, które nie mają właściwości Quality ustawionej na Good.
Notatka:
To zdarzenie nie musi zostać wywołane (i zazwyczaj nie zostaje wywołane) jednocześnie dla wszystkich komunikowanych zmiennych. Zdarzenie zostanie wywołane tak, jak przebiega komunikacja - na przykład jeżeli zostanie odebrana wiadomość zawierająca tylko 5 zmiennych, wtedy zdarzenie zostanie wywołane oraz w pEvent.Items będzie się znajdować tych 5 zmiennych, a jeżeli następnie zostanie odebrana następna wiadomość z kolejnymi zmiennymi, wtedy zdarzenie zostanie ponownie wywołane, itd.
 
Zdarzenie jest wywołane podczas próby pozyskania wartości zmiennych poprzez system. Jest wywołane nawet jeżeli cała komunikacja nie powiodła się i nie zostały odczytane żadne wartości - wtedy wartość będzie pEvent.ErrorCount taka sama jak 1+UBound(pEvent.Items).
 
Wywołanie tego zdarzenia można także emulować w INFO systemie, kiedy w 1. zakładce przeglądania niniejszego obiektu użytkownik otworzy menu lokalne (prawym przyciskiem myszy). Patrz uprawnienie PmRoot > Uprawnienia > InfoEdit.
Przykład:
W konfiguratorze Zdarzenie "onDataReceive" jest "A = wołać dla wszystkich zarejestrowanych zmiennych (w tym obiekcie oraz w innych obiektach PmData)". Do pozycji Debug_info INFO systemu zostaną wypisane informacje o wszystkich odebranych danych:
Dim i,u
u = UBound(pEvent.Items)
Pm.Debug "COMM onDataReceive: Count=" & (u+1) & ", ErrorCount=" & pEvent.ErrorCount
For i=0 To u
  Pm.Debug " Name=" & pEvent.Items(i).Var.Name
  Pm.Debug " Value=" & pEvent.Items(i).Var.Value
  Pm.Debug " Quality=" & pEvent.Items(i).Var.Quality
  Pm.Debug " ItemId=" & pEvent.Items(i).ItemId
Next
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice