Timers allow Flows and or property changes (such as a route change) to be executed at specific times. This list shows the Timers that have been created and may be used in Logic Flows. The page shows up to date information as the Timer states changes.
Reference | Column/Button | Notes |
---|---|---|
1 | Name | The name of the Timer. |
2 | Type | The type of Timer. |
3 | Interval | In the case of Interval Timers, this column will display the time in milliseconds. In the case of Day of week Timers, the column will display the days per week that are selected. This column is not used for Date/Time Timers. |
4 | LastRaise | This column displays the date and time when the Timer last elapsed. If the Timer has never elapsed, it will display a default minimum date time value. |
5 | NextRaise | This column displays the date and time when the Timer is next scheduled to elapse. If the Timer has never been enabled, this column may also show a default minimum date time value. |
6 | Elapsed | The elapsed column will turn true if a Timer has elapsed. It is important to note that if a Timer is set to Autoreset, this value will immediately turn false again. |
7 | Enabled | This column displays whether the Timer is currently enabled. A Timer which is not enabled will never elapse. |
8 | Autoreset | A value of true indicates an Interval Timers set to auto reset. When the Timer elapses, it will automatically update its next raise time and start counting down again. |
9 | Edit | Clicking the Edit link allows you to edit and change the parameters of a Timer. |
10 | Delete | Clicking the minus icon allows you to delete a Timer from the system. |
11 | Add | Clicking the add icon allows the user to create a new Timer. |
Timer Types
To create a new Timer, click the Add icon on the Timers dialog to open the Timer Editor.
Three types of Timers can be created in Pathfinder Core PRO: Interval, Day of Week, and Date/Time.
Interval Timers
If you want to create a Logic Flow with a delayed action, you could use a delay directly in the Flow, or you could create an Interval Timer. An Interval Timer raises an Elapsed property after a specified number of milliseconds.
Interval Timers can also be programmed to autoreset. An autoresetting Interval Timer will set the Elapsed flag to true after the Interval, and then immediately set it back to false and restart the countdown.
Leave the Autoreset and Enabled properties as false. Type a name for this Timer and apply it.
Now we can use this Timer in Logic Flows:
For example, an Interval Timer can be used in a Logic Flow so when GPI 1 goes low, it enables the Timer. Then the Elapsed property 5-seconds later causes GPI 2 pin to be set low:
Interval Timers have three additional write-only properties:
Reset: If the Timer is enabled, this property will disable and then re-enable the Timer to start the countdown over. If the Timer is disabled, this will set the elapsed property to false.
ResetStart: Stops the Timer (if it is running) and then starts the Timer to reset the countdown.
ResetStop: Disables the Timer and changes the elapsed state to false.
These are available in the Logic Flows simple tree when an Interval Timer endpoint is selected in the Logic Flow. Since these are write-only properties they will not be shown when Interval Timer start points are selected – only endpoints.
All three properties accept true/false values and setting any of them to true will initiate the reset. They do not need to be set to false again afterwards as passing the true value is just a trigger to initiate the reset. The value is not retained. These properties can be thought of more as actions than traditional properties.
Day of Week Timers
If we want something to happen at a specific time every Monday, we could create a Day of Week Timer. With this type of Timer, you can specify a time and the days of the week on which the Timer should set its Elapsed property to true.
Date/Time Timers
If we want something to happen on a specific day and time, we could create a Date/Time Timer. The Timer’s Elapsed property will be set to true at that day and time.
Clicking the calendar icon will present a user-friendly calendar for configuring the date and time. This event has the same parameters as the Day of Week event above for selecting properties to change at the start and end time of the event. The primary difference is that this event executes it's start and end times only once at the specified date and time. It will then be deleted or retained according to the settings in the cleanup options above.
Clock Time and Fixed Time
In both the Day of Week and Date/Time Timers, it is important to understand the difference between clock time and fixed time. Within Pathfinder Core PRO, all times are stored with a UTC offset. Clock time means that the event will happen at a specific time (say 7PM) according to the clock regardless of the UTC offset. If you want an event to happen at 7PM according to what the clock shows both before and after a daylight savings shift, you should pick the clock time option.
However, if you are picking up a satellite feed and the region from which the feed originates does not shift their clock to daylight savings time, then you should select fixed time because the event will happen at a different time (according to your wall clock) before and after the daylight savings time shift. In this case, it is fixed to the time and UTC offset.
Using Timers in Flows
In addition to specifying an action to take place directly in the event, you can also hook the event to a logic flow. And in fact this is the primary way to make use of an interval type timer. To do that, you would need to create a Logic Flow with a start point that uses the Timer’s elapsed property to then change some other property in the system. For example, if you wanted to execute a scene change every Monday at a specific time, you would create a Logic Flow that uses the Day of Week Timer shown above.
In this way, we can use Timers to cause delays, do repetitive operations (using the autoreset property of Interval Timers), or execute actions at specific days/times and/or on a recurring daily schedule. This particular example could also be accomplished by selecting the Activate Scene property directly in the event, but if you wanted to create more complex logic using logic gates, then you would need to build the logic in a logic flow. Both options are available. However, property changes that are defined within the actual event (as opposed to a logic flow) so not count against the logic licensing of the system.