\input manualMacros.tex
\manBegin
\manPageInfo{RCI Reference Manual}{}{}
\manTitle{rciGetJls}{3}
\manSection{NAME}
{\tt \manName{rciGetJls}},
{\tt \manName{rciGetKyn}}
-- access to RCI robot data structures for both planning and control level.

\manSection{USAGE}
\cverbatim
#include <rci.h>

JLS *rciGetJls(name)
   const char *name;

void *rciGetKyn(name, size)
   const char *name;
   int *size; @endcverbatim
\manSection{ARGUMENTS}
\manItem{{\tt name} --}
Name of the robot.
\manItem{{\tt size} --}
Place to return the size of the {\tt ext} component of the {\tt KYN} structure.
\manSection{RESTRICTIONS}
For each robot, one of these routines must be called first
from the planning level.
\manSection{DESCRIPTION}
These routines function identically to
{\tt getJls()} and {\tt getKyn()}, except that they may be called
from both the planning and control levels.

{\tt rciGetJls()} returns the {\tt JLS} structure (q.v.) for a robot.

{\tt rciGetKyn()} returns the {\it kinematic/dynamic}, or {\tt KYN}, structure
(q.v.) associated with a robot.

Before being called from the control level, at least
one of these routines must be called from the planning level for each
robot in question. This is because the first routine call reads in
information from a file. On Sun4 and Micro-VAX systems, the first routine
call should also be done when control tasks are switched off, because of some
problems with the memory locking code.

\manSection{DIAGNOSTICS}
Both routines return {\tt NULL} if they are unable
to allocate or find structures for the specified robot.
Error information is reported on the
{\it errorStack} (q.v.). Returned error codes are accessible with 
{\tt getErrorCode()}:

\manItem{{\tt ENotDefined} --}
The named robot is not defined in the system tables, {\it or}, if this
happens at the control level, {\tt rciGetJls()} or {\tt rciGetKyn()}
may have not been called initially at the planning level for the desired 
robot.
\manItem{{\tt EBadFxn} --}
There is no internal access function defined with which to get the data
structure.
\manItem{{\tt EBadAccess} --}
Can't open the required information file in {\filefont \$RCCL/conf}.
\manItem{{\tt EBadObj} --}
The required information file in {\filefont \$RCCL/conf} is corrupted or
malformed.
\manItem{{\tt EMemory} --}
System is out of memory.
\manItem{{\tt EInternal} --}
Internal system software error.

\manSection{SEE ALSO}
\rightskip=0ptplus1fil
{\tt JLS(3)}, {\tt KYN(3)}, {\tt getJls()}, 
{\tt RCI_RBT(3)},
{\tt errorMsg(3)}. 

\manEnd
\end
