Timers

After clicking on the Timers navigation link, you will be presented with 4 tabs underneath the Timers section:

The timers tab can be used to create interval, date/time, and recurring timers which can either execute changes at specific times or after an interval.  They can be used by assigning property changes in the time event and/or by hooking the timer to a logic flow.  The resources, templates, and calendars tabs are for use with the additional scheduling license.

Timers Tab

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.  If a timer's start time has passed but the end time has not, this will show the end time.

6

DerivedStartTime

This column displays the time when the event will start.  This will shift for day of week (recurring) events as days progress.

7

DerivedEndTime

This column displays the time when the event will end.  This will shift for day of week (recurring) events as days progress.

8

ElapsedStart

The ElapsedStart column will turn true if the Start time of the Timer has elapsed. It is important to note that if a Timer is set to Autoreset, this value will immediately turn false again.

9

ElapsedEnd

The ElapsedEnd column will turn true if the End time of the timer has elapsed.

10

Enabled

This column displays whether the Timer is currently enabled. A Timer which is not enabled will never elapse.

11

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.

12

Edit

Clicking the Edit link allows you to edit and change the parameters of a Timer.

13

Delete

Clicking the minus icon allows you to delete a Timer from the system.

14

Add

Clicking the add icon allows the user to create a new Timer.

Additionally the cleanup timers link can be used to specify what should happen with non recurring Date/Time timers that have already elapsed.  Clicking the cleanup option link will present the following dialog:

By default, the value will be -1 which means DateTime timers which have completed their execution will not be deleted from the system. Setting a number of days into this dialog and applying that number will cause single execution datetime events to be deleted from the system after the requested number of days has passed after the timer has completed executing. A value of 0 will cause the timer to be deleted sometime within the hour or two after the timer has completed execution.

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:

  1. 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.

  2. ResetStart: Stops the Timer (if it is running) and then starts the Timer to reset the countdown.

  3. 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.

Each Day of Week timer actually represents a range of time.  It has a start time and an end time.  And in logic flows there is an Elapsed and an ElapsedEnd property to match the start and end times.  If you only want to execute a single action at a specific time, you could just use the Elapsed property and ignore the ElapsedEnd property.  The end time must be specified as later than the start time when configuring the event however.

Instead of or in addition to using this with logic flows, you can also specify a change directly in the event itself.  Clicking the ellipsis button next to the start property will open a route selection dialog where you can select a destination.

The import from button allows you to select the router you want to pick a destination from.  Additionally the endpoints button in this dialog will switch to the property selector similar to the one in Logic flows so that you can select some other property like a gpio or console show profile load property:

The Ios button will take you back to audio io selection.  Since many times audio routing is what will be used with date/time events we present both dialogs for ease of selection.  Once the property is selected, the value field will be filled with the current value of the destination's source or property value.  Selecting the ellipsis button next to the value will allow you to change the property value that will be applied.  If you only want a change to happen at the start, then do not select a property and value for the end.  In the example below, a studio source will be routed to air at the start time of the event and then the airchain will be cleared at the end of the event.

The Switch Fields To Advanced button should only be used by advanced users.  It changes the input boxes to the literal API commands associated with the selections for manual adjustment.

Note that the clock option buttons will be described below as they apply to both the Day Of Week and Date/Time Timers.

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.

Virtual Mixing Routers and Property Selection

Virtual mixing routers are inherently different in how they function from other routers. For details on Virtual Mixing Routers, see their section in the Routers section of the manual.   With Virtual mixing destinations you do not change the source that is routed to the destination. Instead you add sources that will be mixed together by the mixing destination up to the supported quantity of the destination. As a result it uses different routing properties than a normal router. For example, AddSource adds a source to the mixing destination, and RemoveSource removes a source from the destination freeing that slot up for another source. Therefore when importing a destination as a property change in a timer event, you need to be able to define whether the change will add or remove a source. To support this, a drop down will appear in the import destination list when defining a start or end property in a timer.

The Mixing property drop down allows you to select whether the operation will add or remove a selected source to/from the destination. For example:

In this example the timer will add Source 1 to the destination at the start of the event time range, and it will remove it at the end.

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.

UTC Offset

Previous versions of the PathfinderCore PRO would use the browser’s UTC offset when creating a new clock based Date Time or Day of Week timer. This also caused odd display issues when editing events from a Core PRO in one timezone while using a browser in another. This version will always display the offset of the event, and the specific time as it is set in Core PRO. Additionally, new events will be created using the offset defined in Core PRO by its current time zone rather than the browser’s 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.