Remote Camera Control Client
============================
This client can be used in conjunction with the devserv program
to control pan/tilt cameras and a video switcher.  The client has been
built in java 1.1 so you will need a java virtual machine
to run it.  The client communicates with the device server (devserv)
using ASCII text messages.  The messaging format is available
from our WWW site at http://www-itg.lbl.gov/mbone/devserv/.
The client sends its messages to the server using UDP messages
and the server sends all return communication using multicast
messages.  

Currently the devserv program can control the Canon VC-C3, Canon VC-C1 and the
Sony EVI-D30 cameras and the Panasonic WJ-MX50 video switcher.  We
will be adding additional cameras and video switchers for the next 
release.

There are two versions of camclnt currently available.  There is a version that
only allows the users to control the cameras.  The user must run the Mbone 
videoconferencing tools to see the video.  There is also a version of the
camclnt that uses the Java Media Framework from Sun to watch the video so
it can launch the video window and allows the user to control the cameras
by picking on the video image.  This version unfortunately only works so
far in Solaris.  You will only be able to run it if you have a Sun sparc 
workstation and you have JMF installed.

Running
---------------------
We have packaged and archived the camera client to make it
easier to run.  We have included some files in the
distribution package to help with compiling and running the 
camera client.  

If you want to run the camera client from a unix shell script
	1. edit the camclnt.csh file to contain the correct paths for
           java or jre and CamClnt.
	2. run camclnt <devserv hostname>

To run the camera client from the windows shell script
	1. edit the file camclnt.bat to contain the correct paths for
           java or jre and CamClnt.
	   Also change the line java CamClnt.camInterface <machine name>
	   to have the machine name of the machine that devserv is running on.
	2. change the properties of the batch file.  You will need to
           memory allocation for the environment variables from Auto
	   to 1024.
	3. now just run the batch file.


The Interface 
------------- 
The client interface can be broken into different areas by function so
I will describe each one individually.  At the top of the interface is
a menu bar.  Selecting "File" will allow you to "Quit" the camera
client.  Selecting "Help" gives you two options "About" and "Info"
which both give you helpful information about running the camclnt
program.

If you specify that there is more than one camera when you start up
camclnt then a section directly below the menu bar will be displayed
to allow you to select the camera to view, to move and to show in the
picture-in-picture.

The next section provides the means of requesting camera moves and of
requesting a picture-in-picture.  The white rectangle to the right represents
the camera's entire pan-and-tilt range.  Selecting with the left mouse
button in this rectangle causes a message to be sent to devserv requesting
that the camera move to the absolute position requested.  The square
on the right is a representation of the image that you see in the camera.
As of this release we have not yet implemented the interface to the actual
camera image so you have to imagine that the camera image is shown in this
square.  Selecting with the left mouse button in the square will cause the
camera to center the location picked.  If instead the user holds down the
left mouse button while drawing out a square the camera will zoom in on
the area drawn out.  The right mouse button in this square allows the user
to request picture-in-picture.  If the user holds down the right mouse button
while drawing out a square on the image then the picture-in-picture will be
shown in the square drawn out.  To turn off picture-in-picture simply
press the right mouse button in the square and release without moving the
mouse.  To translate the picture-in-picture (while you are displaying
the picture-in-picture) hold down the right mouse button on the image and
move the mouse the direction and distance you would like the picture translated.

Directly below this area is the zoom control.  The slider in the center
can be used to request absolute zoom positions and the buttons to
either side are for requesting incremental 1x zoom changes.

The field at the bottom of the interface is for specifying which machine
is running the devserv.  All remote camera control requests will be sent
to the IP address of the machine specified in this field.

Communication
-------------
Each remote camera movement request sent from the client is sent as a UDP
message to the server.  This means that some requests may be lost before
they reach the server so the user may need to re-request the movement.  The
server sends back status messages using IP Multicast but currently the client
ignores these messages.  
 
