Using i!-Schedule
4
i!-Schedule
with a button/channel number, you must tell i!-Schedule what each channel you have programmed
can do.
To specify the name of an event, you need to send a command to the scheduling virtual device
describing the name of a given channel code. To specify the names of the commands in the above
example, you would add some code like this:
DATA_EVENT[vdvSchEvents]
{
ONLINE:
{
(* Setup events *)
(* Outdoor Lights On *)
SEND_COMMAND vdvSchEvents,"'SET NAME-1,Outdoor Lights Off '"
(* Outdoor Lights Off *)
SEND_COMMAND vdvSchEvents,"'SET NAME-2,Outdoor Lights Off'"
}
}
Once i!-Scheduling receives these commands, it will show the user the two events in the main event
list, sorted in alphabetical order, and allow the user to schedule these events. Whenever the user
schedules the "Outdoor Lights On" event to run at a certain time and that time occurs, the
scheduling engine will push button one and your code can turn the lights on.
Each event can be programmed to occur on a repeating or non-repeating basis running at a single
time per day. Additionally, each event can have a start and end time. Events do not have end dates
so they can only span a 24-hour period; however, that 24-hour period can span 2 dates by specifying
an end time less than a start time. For instance, if a user schedules an event to start at sunset and end
at sunrise, i!-Schedule will start the event at sunset of the scheduled day and stop the event at
sunrise of the following day.
In addition to specifying the name of an event, you can also program the date and time when the
event should occur. The scheduled virtual device supports a variety of commands to set and query
the values of the names, dates and times for each event. See the
Send_Commands
section on
page 12 for more details.
Dynamic Events
So far, i!-Schedule has handled simple fixed events where each event provides a single function and
can be scheduled only once for each day. Some scheduling applications require dynamic events
where the user can add and delete events on the fly. i!-Schedule has a provision to handle this case.
Let's look at the programming side of i!-Schedule for a moment. For every event that needs to be
scheduled, your program must contain a
BUTTON_EVENT
to handle the push and/or release of that
event. To provide dynamic events, you must provide dynamic
BUTTON_EVENTS
.
Let's say you want to schedule a new event using i!-Schedule while the program is running. This
seems easy, you simply add the send command to name the new event:
SEND_COMMAND vdvSchEvents,"'SET NAME-14,My New Event'"
The name "My new Event" appears in the event list, the user schedules it to occur at 5:00 on
Saturdays and everything is fine. Now Saturday 5:00 rolls around, and the scheduling engine
pushes button 14 for this event to occur. Since you did not re-compile and download your program
after the user scheduled the event, you would have had to add code for button event 14 prior to the
user scheduling the event! So the problem is: how do you program for an unknown number of
events that has not been scheduled? Additionally, since you did not define these events up front,
Содержание I!-SCHEDULE
Страница 1: ...instruction manual integration Solutions i Schedule...
Страница 4: ...ii i Schedule Table of Contents...
Страница 14: ...Using i Schedule 10 i Schedule...