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 objektech PmaData)".
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) 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 objektech PmaData)". Tehdy každá položka tohoto pole představuje objekt "datové rozšíření ExtComm" proměnné, která je definovaná buď v tomto objektu PmaCommGroup nebo v jiném 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 tomto 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 najednou 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) Počet datových položek v poli pEvent.Items, které nemají vlastnost Quality nastavenu na Good. |
Vyvolává se tak, jak probíhá komunikace - například pokud se přijme jedna zpráva obsahující jen 5 proměnných, pak událost je vyvolána a v 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.
Vyvolá se i když celá komunikace selhala a žádné hodnoty se nezískaly - tehdy hodnota pEvent.ErrorCount bude stejná jako počet položek v pEvent.Items.
Příklad:
Informace o všech přijatých datech vypíšeme do položky Debug INFO systému:
var i;
var aItems = pEvent.Items;
var nItems = aItems.GetSize(1);
Pm.Debug("COMM onDataReceive: Size=" + nItems + ", ErrorCount=" + pEvent.ErrorCount);
for (i = 0; i < nItems; i++)
{
Pm.Debug("Name=" + aItems.GetItem(i).Var.Name);
Pm.Debug("Value=" + aItems.GetItem(i).Var.Value);
Pm.Debug("Quality=" + aItems.GetItem(i).Var.Quality);
Pm.Debug("ItemId=" + aItems.GetItem(i).ItemId);
}