Update cookies preferences
Promotic

onDataReceive - událost objektu PmaCommGroup

Popis:
Událost je vyvolána po příjmu dat z komunikace.
Událost je vyvolána i když komunikace selhala nebo některé (nebo všechna) data se nepřijala.
 
Způsob vyvolá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 a také v jiných objektech PmaData)".
Parametry:
pMe(Object) Reference na PmaCommGroup objekt, ve kterém daná událost vzniká.
pEvent(Object) Reference na objekt, který popisuje informace o dané události.
pEvent.Items - (Array) [pro čtení] 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 a také v jiných objektech PmaData)".
Tehdy každá položka tohoto pole představuje objekt "datové rozšíření ExtComm" proměnné, která je definovaná buď v objektu PmaCommGroup nebo v objektu PmaData.
- "B = volat pouze pro proměnné definované v tomto objektu (zastaralé)".
Tehdy každá položka tohoto pole představuje objekt PmVar, která je definovaná v objektu PmaCommGroup. Proměnné v jiných PmaData objektech (které mají datové rozšíření ExtComm) se zde nezachycují.

V obou případech pokud se z komunikace přijme současně například 10 datových položek, pak událost je vyvolána pouze jednou a v poli je těchto 10 položek.
pEvent.ErrorCount - (Long) [pro čtení] Počet datových položek v poli pEvent.Items, které nemají vlastnost Quality nastavenou na Good.
pEvent.Attr - (Long) [pro čtení] Bitový atribut.
Hodnota 3 (3=1+2) znamená, že všechny proměnné se přenesly v jedné zprávě.
1 - Přenesla se první zpráva.
2 - Přenesla se poslední zpráva. Je to příznak, že se přijaly všechny komunikované proměnné.
Poznámka:
Tato událost se nemusí vyvolat (a obvykle nevyvolává) současně pro všechny komunikované proměnné.
Vyvolává se tak, jak probíhá komunikace - například pokud se přijme jedna zpráva obsahující pouze 5 proměnných, pak událost je vyvolána a ve vlastnosti pEvent.Items bude těchto 5 proměnných, a pokud se pak přijme další zpráva s dalšími proměnnými, pak událost je vyvolána opět, atd.

Událost je vyvolána vždy když příjde komunikační zpráva s hodnotami proměnných.
Vyvolá se i když celá komunikace selhala a žádné hodnoty se nezískaly - tehdy hodnota pEvent.ErrorCount bude stejná jako počet položek ve vlastnosti pEvent.Items.

Pomocí hodnoty pEvent.Attr lze zjistit, zda zpráva byla první nebo poslední.
Příklad:
0 = Tato zpráva není první ani poslední.
3 = Tato zpráva přenesla najednou všechny proměnné a je tedy první i poslední.


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í "PmaRoot > Oprávnění > InfoEdit".
Viz také:
Příklad:
Konfigurátor "Událost "onDataReceive"" je nastaven na "A = volat pro všechny zaregistrované proměnné (v tomto objektu a také v jiných objektech PmaData)".
Informace o všech přijatých datech vypíšeme do položky Debug INFO systému:
JavaScriptVBScriptVyber a zkopíruj do schránky

var aItems = pEvent.Items;
var nItems = aItems.GetSize(1);
Pm.Debug("PmaCommGroup.onDataReceive: Size=" + nItems + ", ErrorCount=" + pEvent.ErrorCount);
var iItem;
for (iItem = 0; iItem < nItems; iItem++)
{
var oItem = aItems.GetItem(iItem);   // Datové rozšíření = objekt ExtComm
var oVar = oItem.Var;   // Proměnná = objekt PmVar
Pm.Debug(" Name=" + oVar.Name);
Pm.Debug(" Value=" + oVar.Value);
Pm.Debug(" Quality=" + oVar.Quality);
Pm.Debug(" ItemId=" + oItem.ItemId);
}

Historie:
Pm9.00.02: Nová vlastnost pEvent.Attr, ze které lze zjistit zda zpráva, která vyvolala tuto událost byla první nebo poslední.
© MICROSYS, spol. s r.o.