The UK Home Automation Archive

Archive Home
Group Home
Search Archive


Advanced Search

The UKHA-ARCHIVE IS CEASING OPERATIONS 31 DEC 2024

Latest message you have seen: Re: Simple Visual Basic controller/scheduler


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: I'm Sure this is an old question


  • To: ukha_d@xxxxxxx
  • Subject: RE: I'm Sure this is an old question
  • From: Mike Griffiths <mike@xxxxxxx>
  • Date: Mon, 2 Sep 2002 10:27:21 +0100
  • Mailing-list: list ukha_d@xxxxxxx; contact ukha_d-owner@xxxxxxx
  • Reply-to: ukha_d@xxxxxxx

Below is a quote from the HomeVision Manual where Craig describes How HV
functions and the difference between the two types of System

It might be useful to some people
There again :)

Mike





Control Style
The controller is primarily an "event-driven" controller. It performs the
actions you define when specific events occur. However, the controller also
provides some features of "loop-type" controllers. An understanding of how
these types of systems differ will help explain how the controller works.
In a "loop" system, the schedule is essentially a long list of conditions
(If-Then statements) and associated actions. The controller continually runs
through them in a loop evaluating each condition.
If a condition is met, the controller then executes the associated actions.
These systems can be powerful because you can specify complex combinations
of conditions. Loop systems have several drawbacks, however:
* The controller spends most of its time checking conditions that are rarely
true. This slows down its response when an input changes or a command is
received. The response time may be OK for simple applications, but not for
more advanced applications. For example, an infrared remote control used to
control video text on the TV screen needs a quick response in order to be
usable.
* When an If-Then-Else statement is used, either the THEN or ELSE part will
be executed every time through the loop. Thus, some commands will be
executed each loop. This is rarely the desired behavior, as most commands
only need to be executed once in response to some event. Preventing repeated
actions requires cumbersome programming techniques (such as setting a flag
after performing the action to indicates that it has already been done).
An "event-driven" system, in contrast, only executes actions when an event
occurs. The controller constantly checks for the events, then immediately
performs the actions associated with it. This provides several advantages
over a loop-type system:
* The controller can respond much faster to the event.
* Programming is simpler, as the user can easily specify the actions to
perform in response to any event.
There is one disadvantage to an event-driven controller. What if the event
that you care about is not one the controller is looking for? For example,
say you want to turn on a light when a variable is equal to 67 and it's dark
outside. If the controller doesn't have a built-in function checking for
these precise conditions, you can't do it. For this reason, loop-type
controllers can be more powerful, as you can typically set any combination
of conditions you care about.
The controller provides the best features of both types of systems. At its
heart, it's an event-driven controller that provides the rapid input
response typical of such systems. With it, you can develop powerful
schedules with only limited "programming". However, the controller can also
execute a group of user-specified commands at a rapid rate (every few
milliseconds with a periodic event set to execute every "loop"), simulating
the loop-type systems. You can then use combinations of If-Then-Else
statements to check for any set of conditions you desire and perform
appropriate actions. You could even put the entire schedule into this group
of actions and have a completely loop-type system, although you'd lose many
of the benefits of an event-driven system.



Yahoo! Groups Sponsor
ADVERTISEMENT

http://www.automatedhome.co.uk
Post message: ukha_d@xxxxxxx
Subscribe:  ukha_d-subscribe@xxxxxxx
Unsubscribe:  ukha_d-unsubscribe@xxxxxxx
List owner:  ukha_d-owner@xxxxxxx
List of UKHA Groups here - http://groups.yahoo.com/group/UKHA_Grouplists/


Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.

Home | Main Index | Thread Index

Comments to the Webmaster are always welcomed, please use this contact form . Note that as this site is a mailing list archive, the Webmaster has no control over the contents of the messages. Comments about message content should be directed to the relevant mailing list.