Promotic
WikipediaLinkedInYoutubeTwitterFacebook

onDataReceive - událost objektu PmaCommGroup

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 objektech PmaData)".

Parametry:
pMe(Object) Reference na PmaCommGroup 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 objektech PmaData)".

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

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

Tehdy každá položka tohoto pole představuje objekt "proměnná PmVar", která je definovaná v tomto PmaCommGroup objektu. 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 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.
pEvent.Attr - (Long) Bitový atribut.
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 běžně nevyvolává) najednou 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í 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.

 
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 v 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".
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 objektech PmaData)".

Do položky Debug_info INFO systému vypíšeme informace o všech přijatých datech:

JavaScriptVBScriptVyber a zkopíruj do schránky

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);
}

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.Tavičská 845/21 703 00 Ostrava-Vítkovice