====List of Decorators====
===@trigger===
This **must be the first decorator** - it marks the function as a [[trigger function|trigger function]] that needs to be added to the system.
@trigger
===@data===
Takes an array of point names as a parameter. These are the points of data that will be loaded from ARDI. They can be used in both your **trigger** and [[condition function|condition]] functions.
Each point is in the form of //ARDI Asset Name//.//ARDI Property Name//.
@data('My Point.One','My Point.Two')
===@when===
Specifies the **condition function**. This function must change state to cause the **trigger function** to be run.
A function - often a Lambda-Function - must be passed to the decorator.
You can access the data values with the [[Value]] and [[values]] array in the [[trigger]] object that is passed to the function.
@when(lambda o: o.Value() > 110)
//Function will be triggered when the value of the first Data property is greater than 110.//
===@changes===
The trigger function will be run whever the **condition function** changes state - regardless of which state it changes to.
===@risingedge===
The trigger function will be run only when the **condition function** changes to True
===@fallingedge===
The trigger function will only be run when the **condition function** changes to False
===@repeat===
The trigger function should be called whenever the **condition function** becomes True, even if it was previously true.
//NOTE: The **@delay** and **@repeat** options are not compatible with one-another//
===@searchtime===
Modifies the maximum [[backtracking]] search time, in minutes
@searchtime(60)
//If backtracking is required, search 60 minutes of history (default is 30)//
===@delay===
Controls the amount of time to wait between the condition-function changing state and the trigger-function executing.
The trigger function //will not execute// if the condition-function returns a different state during that time. For example, if you're triggering on the value moving from False to True with a delay of 5 seconds, the condition function **must remain True for the entire five seconds**.
This delay is primarily used to avoid issues where your values are very close to the trigger point - sensor drift may cause a particular condition to //flicker// from True to False rapidly.
====Special Decorators====
The decorators **@server** and **@attach** are used in [[Dynamic Attachments|dynamic attachment]] and are discussed further on that page.