%****************************************************************************/
%
% File:		fct_over.tex
%
% Project:	xdevmenu application documentation
%
% Description:	"Overview of the functions" section
%
% Author(s):	Faranguiss Poncet
%
% Original:	March 1991
%
%
% $Header: /cvsroot/taco/taco/system/xdevmenu/doc/fct_over.tex,v 1.2 2003/12/17 14:24:25 jkrueger1 Exp $
%
% Copyright (c) 1990 by European Synchrotron Radiation Facility, 
%                       Grenoble, France
%
%		       All Rights Reserved
%
%****************************************************************************/
The principal aim of this application is to provide the user with the means to
perform actions on the devices interactively and with a friendly and graphical
user interface.

The actions which could be done on a device are :
\begin{itemize}
\item
Opening a connection to a device,
\item
Executing a command on an already opened device,
\item
Showing the state and the status of an already opened device,
\item
Closing the connection to a device.
\end{itemize}

Added to these functions there are also user interface facilities like : help, 
application options modification and display in a separate window of both 
output arguments and error messages relating to one device.

\subsubsection{Open Device function}

When the user decides to open a device, he (or she) should be able to choose
the device he wants to open. To help the user in his choice the application
will inform him by a list of the names of the available devices among which he
can select one. The user won't be able to select and therefore open a device
which is already opened, an error message would be displayed instead.

\subsubsection{Execute Command function}

By clicking on its icon label, the user selects one device among all already
opened devices. In this case the application helps the user to specify a  
valid command for the selected device. To do this the application
provides the user with a list of commands valid for the currently selected
device and the user can ask to execute a command on this device by selecting it
in the command list.

Before performing the command the application will ask the user to enter the
argument values (if any) necessary for the execution of the selected command.

If there is an output argument for the command being executed then that output
argument will be displayed in a separate window. This window is divided into
two areas : the top one where the output arguments of all the executed 
commands related to this device are displayed ( in a particular format ) and the
bottom one used for the display of error messages relating to this device. 
This window is so called output and error window in the rest of the document. 

\subsubsection{Show State function}

The user has the possibility to visualise the state of the currently selected
device. In this case the application executes the "DevState" command for the
selected device. The returned integer value is used as an index into an array of
strings, to find out the string which describes the actual state of the device.
This string is also displayed in the top area of the out and error window, to
inform the user about the state of the device.

\subsubsection{Show Status function}

The user has the possibility to visualise the status of the currently selected
device. In this case the application executes the "DevStatus" command for the
selected device. The returned integer is also displayed in the top area of the  
output and error window, and therefore informs the user about the status of the 
device.

\subsubsection{Close Device function}

It is possible to select a device (already opened) and to ask to close the
established connection. Once the connection is closed the user can not
do any further operation on this device unless he opens this device again.

To be able to do further operations on this device the user should open again
a connection and then ask to perform an operation on it.

\subsubsection{Help function}

In the future, there will be two kinds of help texts available: 
help text presenting an overview of the functions of the application and 
help text presenting a tutorial to get started with the application.

There could be another type of help called contextual help. This point is
discussed in the open issues section.

\subsubsection{Options modification function}

It is possible to modify some of the application's options dynamically. For the
moment the only option which could be modified dynamically is "Device Location"
and "Subdirectory Filter". This is the place where the application looks for 
the available filtered or unfiltered device names.

As soon as an option is added to the application the code will be added to allow
the user to modify this option at run time.

\subsubsection{Show Out Arguments function}

If the output and error window for an opened device has been closed by the user,
the "Show Out Arguments" function makes it possible for him to have 
that window containing both the command history and     
error messages displayed again. Therefore, this functionality allows him to 
have simultaneously as little/many windows displayed as wanted in relation to 
the number of established connections with devices.

