Go backward to Example.
Go up to Multiple Agents.
Go forward to Glossary of Terms.
X interface
===========
To make I/O easier to work with, an X-window interface is also
provided. The X-interface is enabled by selecting the line
DFLAGS = -DMULTI_AGENT_ENABLED -DUSE_X_DISPLAY
in the file make.body followed by a recompilation of the system. (Be sure to
make clobber before issuing make.) The X-interface provides a separate window
for each Soar agent so that the I/O streams are separated rather than
interleaved.
The setup of the X-interface does not require any change to the
{.init.soar.multi} file or any other .init.soar files in order to run.
The X-interface windows are designed as rudimentary terminal-type interfaces.
The same command-line interface is used in each window. Keystrokes are
managed by queueing them into a local buffer in each window. When a command
is complete, it is sent to the Soar agent for processing. One benefit of
this approach is that the user can type a command or text-io into one window
without needing to complete a command or text-io begun in another window.
Since there is a single thread of control, there may a significant time lag
between entering a keystroke and having it processed. A keystroke is
proccessed as soon as the currently-running agent has completed its
processing cycle as defined by the agent-go command.
A control-C in any agent window still stops all agents in the X-interface to
avoid synchronization problems in the scheduler.
The user can issue a create-agents command to create new agents
on-the-fly.