Promotic
WikipediaLinkedInYoutubeTwitterFacebook

onDataReceive - událost objektu PmCommData

Popis:
Událost je vyvolána po přijmu dat z komunikace.

Způsob volání této události závisí na nastavení konfigurátoru Událost "onDataReceive". Je doporučeno nastavení "A = volat pro všechny zaregistrované proměnné (v tomto objektu i v jiných PmData objektech)".

Parametry:
pMe(Object) Reference na Promotic objekt, ve kterém daná událost vzniká.
pEvent(Object) Reference na objekt popisující podrobněji informace o dané události.
pEvent.Items - (Array) Vlastnost je nastavena na různé objekty, podle toho jak je nastaven konfigurátor Událost "onDataReceive":
- "A = volat pro všechny zaregistrované proměnné (v tomto objektu i v jiných PmData objektech)".

Tehdy každá položka tohoto pole představuje objekt "datové rozšíření ExtComm" proměnné, která je definovaná buď v tomto PmCommData objektu nebo v jiném PmData objektu.

- "B = volat jen pro proměnné definované v tomto objektu (zastaralé)".

Tehdy každá položka tohoto pole představuje objekt "proměnná Var", která je definovaná v tomto PmCommData objektu. Proměnné v jiných PmData objektech (které mají datové rozšíření ExtComm) se zde nezachycují.

V obou případech když se z komunikace přijme najednou například 10 datových položek, pak se událost vyvolá pouze jednou a v tomto poli je těchto 10 položek.

pEvent.ErrorCount - (Long) Počet datových položek v poli pEvent.Items, které nemají vlastnost Quality nastavenu na Good.
Poznámka:
Tato událost se nemusí vyvolat (a běžně nevyvolává) najednou pro všechny komunikované proměnné. Vyvolává se tak, jak probíhá komunikace - například když se přijme jedna zpráva obsahující jen 5 proměnných, tak se událost zavolá a v pEvent.Items bude těchto 5 proměnných, a když se pak přijme další zpráva s dalšími proměnnými, tak se událost opět vyvolá, atd.
 
Událost se vyvolá vždy když se systém pokusí získat hodnoty proměnných. Vyvolá se i když celá komunikace dopadla špatně a žádné hodnoty se nezískaly - tehdy bude hodnota pEvent.ErrorCount stejná jako 1+UBound(pEvent.Items).
 
Vyvolání této události lze i emulovat v INFO systému, když se při prohlížení tohoto objektu stiskne tlačítko "Akce". Viz oprávnění PmRoot > Oprávnění > InfoEdit.
Příklad:
Konfigurátor Událost "onDataReceive" je nastaven na "A = volat pro všechny zaregistrované proměnné (v tomto objektu i v jiných PmData objektech)". Do položky Debug_info INFO systému vypíšeme informace o všech přijatých datech:
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