Události (Events)

Událost (event) říká protokolu, kdy se hodnota proměnné komunikuje — typicky „čti to každých 100 ms". Události se definují na jednom místě, v Home → Project Configuration → Events, a jsou společné pro celý projekt: na jednu událost lze navázat libovolný počet proměnných, takže tempo celé skupiny řídíte z jediného místa.

Proměnná se na událost váže při přiřazení k protokolu — výběrem Event v detailu komunikace, který se do Comm params proměnné uloží jako eventRef="<jméno události>". Odkazuje se jménem události.

Typy událostí

TypParametryVýznam
PeriodicPeriod, Unitpravidelně, každých Period × Unit
OnRequest—na vyžádání — jednorázové čtení tlačítkem Read

Jednotky periody jsou Milisec, Sec, Min, Hour a Day.

Události projektu — vybraná událost OnRequestUdálosti projektu — vybraná událost OnRequest

Dodávané čtecí protokoly (Modbus Master, XCP on CAN, XCP on TCP, Simulation Signals) čtou proměnnou buď periodicky (případně přes DAQ u XCP), nebo na vyžádání. Čtená proměnná bez události se nečte vůbec (v logu se objeví varování).

OnValueChanged — starší projekty mohou obsahovat událost typu OnValueChanged (s parametrem Threshold). Taková událost se načte a zůstane editovatelná, ale žádný dodávaný protokol ji neobsluhuje a novou už založit nelze.

Čtení na vyžádání (OnRequest)

Proměnná navázaná na událost typu OnRequest se nepolluje ani nevysílá přes DAQ — přečte se jednou pokaždé, když operátor stiskne Read:

  • u Single-Signal a Matrix je tlačítko Read v hlavičce controlu vedle šipky nastavení,
  • ve Watch Table je tlačítko Read ve stejnojmenném sloupci řádku.

Tlačítko se zobrazí jen u proměnných, které protokol umí přečíst na vyžádání — dnes XCP on CAN / TCP, Modbus Master a Simulation Signals, pro proměnné se směrem read nebo readWrite. Číst lze jen za běhu komunikace; v editačním režimu (nebo při chybě čtení) se tlačítko zbarví červeně. Do prvního stisku zůstává zobrazení prázdné.

Typické použití jsou kalibrační parametry a velké mapy, které se mění jen zřídka a není důvod je pollovat.

Vlastní protokolový plugin může čtení na vyžádání podpořit implementací volitelného rozhraní IProtocolVariableReadProtocol — viz Vlastní protokol.

Úprava událostí

V Home → Project Configuration → Events má každá událost:

  • Name — identifikátor, kterým se na ni proměnné odkazují (eventRef),
  • Type — volí se jen při vytváření události; existující událost si typ ponechává,
  • parametry svého typu (Period a Unit u Periodic; OnRequest žádné parametry nemá),
  • Extra Params — volitelné protokolově specifické parametry (níže).

Extra Params

Extra Params rozšiřují událost o parametry, které událost sama nevykládá — zapisují se ve stejném formátu klíč="hodnota";klíč="hodnota" jako Comm params a čte si je protokol navázané proměnné; klíče, kterým rozumí. U běžných událostí zůstává pole prázdné.

Dnes Extra Params využívá XCP k označení události jako event kanálu DAQ v ECU:

direction="DAQ";daqId="1"

Proměnné navázané na takovou událost vysílá sama ECU místo pollingu — úplné vysvětlení, příklady a diagnostika jsou v kapitole Polling, DAQ a STIM u XCP.

Na rozdíl od Comm params se Extra Params validují striktně: vadný zápis (úsek mimo formát klíč="hodnota" nebo neúplná kombinace klíčů — u XCP např. direction="DAQ" bez daqId) vyřadí dotčené proměnné z komunikace už při načtení projektu a warning v logu přesně popíše, co je špatně. Klíč, který protokol nezná, jen zapíše warning a ignoruje se.

Typická sada událostí

Poll100ms      Periodic, Period 100, Unit Milisec
               — běžný polling pomalejších hodnot

Daq_mainloop   Periodic, Period 1, Unit Milisec
               Extra Params: direction="DAQ";daqId="1"
               — rychlá měření vysílaná přímo z ECU (XCP DAQ)

Obě události mohou žít vedle sebe v jednom projektu i protokolu: proměnné na Poll100ms se pollují, proměnné na Daq_mainloop proudí z ECU.