There are several agents that ship with the Metaglue system. The more
useful ones to start up from the command line or from the
PowerTester
agent are described in the following sections.
agentland.util.LogMonitor
agentland.debug.PowerTester
If the PowerTester
agent does not recognize the name you type
into the text field, it will ask you if you want to set up an alias for
the agent name. This provides a useful facility, where you can type in
lamp
as a shortcut name for agentland.device.Lamp
. These
aliased names will be remembered between PowerTester
sessions.
mess.Mess
The Mess
agent starts up an interactive shell where MESS code can
be evaluated and scripts executed. As such, it can serve as an
interactive debugging platform for agents.
For example, you can list all the agents running in the system by
starting up the Mess
agent and running
> (bind ?x (reliesOn "metaglue.Catalog")) > (printout t (call (?x enumerateAgents) toString) crlf)
It may be most useful to start these agents from the PowerTester
agent, so that you have easy access to some of their methods.
(See section Debugging Agents.) Other ways of controlling them might be
through speech or through the Mess
environment.
X10 is a company specializing in home automation, and has created
numerous devices for controlling lights, blinds, coffee makers, and lots
of other neat things. Since one of the specialties of the Metaglue
agent system is control of a room's devices, the ability to manipulate
X10 devices is key. All of these X10 devices can be found in the
agentland.output
package.
agentland.output.X10
agentland.output.TwoWayX10
agentland.output.LynX10
Naturally, one of the most important devices to control in an automated room is the lights. These agents accomplish that task.
agentland.device.light.X10Light
agentland.device.light.X10DimmableLight
X10Light
, adding extra functionality for
controlling the brightness level of a light. Naturally, the lamp must
be connected to a special X10 unit that allows dimming.
agentland.device.light.LightManager
Light
(or
DimmableLight
) agents. Like all device managers, this agent
allows other agents to control individual lights by name or all of them
at once. It can also keep a control grammar up to date by dynamically
updating it with the names of all available lights.
agentland.device.light.LightManagerSpeech
agentland.device.Projector
agentland.device.pscreen.X10ProjectionScreen
agentland.device.pscreen.ProjectionScreenSpeech
agentland.device.Drapes
To be written...
Agents and scripts described in this section are responsible for describing behaviors.
agentland.device.pscreen.ProjectionScreenMeta
These agents are typically started up behind the scenes, and don't need
to be run from the command line. It might be useful to look at them in
PowerTester
(see section Debugging Agents) to gain information about
the system, but for the most part they can be ignored unless you are
trying to learn about the details of the system.
metaglue.Catalog
agentland.util.Notifier
Notifier
by using
the addSpy
method, and can broadcast information using the
notify
method. Information can be keyed with strings to limit
the broadcast to only those interested.
Go to the first, previous, next, last section, table of contents.