DwallTools
DwallTools is a collection of tools for managing and using a display wall. The goal is to provide a GUI that makes common management and user tasks easy. It provides functionality to control the display cluster. It can control the following: start/stop applications, mount/unmount filesystems, send mouse/keyboard, reboot, control projectors, switch configurations on-the-fly to control different walls or different operating systems (Windows or Linux). There is also a common tasks menu which is configurable from a file that can start applications typically needed by users.
Components:
DwallTools consists of the following programs:
Jwall – a java based GUI interface to control the wall (cluster nodes and projectors). Connects to dwallServer and projd.
DwallServer – a server program that runs on each cluster node and listens for commands to execute. Note this is multicast based so the network switch must pass multicast traffic.
DwallCmd – a command line program that sends requests to start/stop applications to dwallServer
Projd – a Linux daemon which listens for projector control commands and executes them. This component will have to be modified to meet particular projector control details
Projc – a command line program to send projector commands.
Console – a windows based program to start a new application with an attached console.
JWall
JWall is the prominent component of
the dwallTools. It is a GUI that graphically represents the organization of the
display wall cluster. Each box in the GUI represents a node and any combination
of nodes can be selected to perform tasks on.
The Control menu is used primarily as an administrative
tool. It contains options for starting/stopping processes, mounting/unmounting
filesystems, sending mouse/keyboard input and rebooting the computers.
The start/stop process and manage fileshares menu options
invoke a dialog box.
It is also possible to select which operating system the
cluster is running from the control menu. JWall will replace the word “Windows”
with “Linux” in the config file name or vise-versa to determine which config
file to use when a new os is selected.
The tasks menu is configurable from the JWall config file.
It will start a local process to perform what ever task is requested. If the
task needs to start a cluster process dwallCmd can be used in a script file.
The projector menu allows you to turn on and off the
projectors and perform some of the common control options.
JWall
JWall can optionally take an argument that is the configuration file to use.
dwallServer (or dwallCmd_win)
dwallServer takes no arguments. It determines it’s node ID by the hostname. It assumes the host will have a name such as node-<num> and it uses num as it’s ID for processing commands.
dwallCmd (or dwallCmd_win)
Usage: dwallCmd -[spawn|kill] -[nodesall|nodes “<node list>”|nodesfile “<file>”] -command “<command arg1 …>” [-workdir “<working directory>”]
Example commands:
dwallCmd_win -spawn -nodes “node-1 node-2 node-3” -command “notepad.exe c:\temp\readme.txt”
dwallCmd_win -kill -nodesall -command “notepad.exe”
projd & projc
These will need to be modified to match a display wall’s projector control facility.
Linux:
Tools tested: gcc 2.96 and java 1.4.0
From top level directory (dwallTools) run make
> make all
Windows:
Tools tested: Visual Studio 6.0 and java 1.4.0
Open visual studio and build each of the projects.
Then compile JWall from the JWall/win directory
>nmake all
Installing:
Move dwallServer to the cluster nodes. For a windows cluster add it to the
startup menu and for a Linux cluster add it to the startup script.
Put JWall on the control console machine
JWall expects a config file that looks like this.
You may provide the following configurations:
[CONFIG_FILE] - this is another config file that describes the hardware setup of the display wall. The hardware config file must have entries of the type:
HostName=nodename-<num> (example).
[SOUND_SERVER] - indicates the sound server programs can connect to
[PROJECTOR_CONTROLLER] - indicates the server that will accept projector commands. Enter as Server:Port
[COMMON_FILESHARES] - list will be shown in the “manage fileshares” dialog box.
Format:
mount point | filesystem location
[COMMON_PROCESSES] - list will be shown in the “start process” dialog box.
[COMMON_MENU_TASKS] - each entry will be a menu option under tasks.
Format:
menu name | program args …
note: args can be one of [browsefile] [config] [soundserver] [node-<num>] and the appropriate element will be inserted.
Other configuration options can be found in include/dwall.h header file including multicast addresses etc.