RD11 Readme
OBSERVED BUGS by simra -- new build..
eliminate compiler warnings.
reset path after pose - sort of fixed
nomad and rwi sim. segfault after/during? moveto.-- fixed?
load and save are seriously broken.
gmlrobotsave?
xfig map loading.
mouse remove
colors
point and click
current robot
set on/off flags are broken -- fixed w/ a minor hack to parse_tokens to handle VCHAR's
we need to test more w/ the real robots.
driver-specific robot variables aren't initialized.
eliminate busy-wait loops.
path planning.
halt..
destroy invader??
gtk ?? -- oh yeah.
simsimplesonar- local var





























ADD ITEMS AT THE TOP.  MOVE COMPLETED ITEMS BELOW THE NON COMPLETED ONES.

HIGH PRIORITY:

Move.c:		move with path planning
		MoveBlind:  +90 deg rots lead to -90 degree reverse translations.


gui:  point and click move.


Revise error handling:
	Error data instances: one per thread. (DONE Thierry Jun 16)
	Error string print
	Var*.h:
		Error checks in macros!
	thread call error handling

Shell:  fcts, use Shell as first token...
	fix error handling
	rubberband.c:	decide what to do about current robot and shell variables
			for the GUI.thread.

file_xfig.c:	error handling
		converting to cartesian cdts from xfig cdts.  Need
		to compute bounding box or extent of image.
file_gml.c: assumption that data structs are not modified during save.  Need
	    to get all data locks before saving!
file_gml.c:	gml not thread safe
		error handling w. gml and memory freeing when errors occur.

*Drv.c:  DestroyInstance:  check for initialized mutexes before destroying them?


DefaultRobotVariables:
        rot values are in radians internaly.  Must display them in degrees.
        Create a Set and Get routine for these variables.

Make sure simple variable access is really atomic on all architectures (see book p. 31)
global variable table should be locked when used.

drawNames:
     Changing this variable should cause a complete redraw to avoid dangling
     names.  Use callbacks to modify all daemon globals?


cmdint.c:  make sure VSTRING var reads are freed.

cmdint.c:  cmdint memory usage
cmdint: the interpreter should poll the different entry handle in loop
	to avoid dead locking on file for exemple
	should poll : keyboard, file, socket, gui

cmds.c: review base command return values (doublecheck)


Path data update for nomad and rwi and rwi_simulator in jump mode

Lock file bug with RWI:  can't create rwi a second time.

NomadDrv.c: check with Nomadics for individual motor limp

RWIDrv.c:  Sync command wait timeout set to 15 seconds. Make into a robot variable?

RWIDrv.c: blanking valid value range

RWISimDrv.c: simple simulation

DefaultRobotVarDefs:
        update perl script for new format. 
	make defaults for read-write variables


Documentation!!!!!!!

safe.c questions:
		Safe4Move what to do about nsonar modification during scan?
		MoveContinuousCheck: contitions to abort line 253 (timeout)
		Nsonar > 12 for Rwi -> stopping -> continuous check won't work
		Test with real robots

MEDIUM PRIORITY:

Socket speed (buffering).

Create.c: Check that robot name is not also a variable name.

Make sonarData_G be absolute data and not relative data.

Make RobotGmlLoad read in variables

Set current robot with command on same line <SGML format>.

cmdint.c, cmdtable.c:  Make cmt_tbl and var_tbl dynamic using DynArray
        
Sonar simulator:  - bounce pings on robot.
                  - reinstate debug options


LOW PRIORITY:

cmdint.c, cmdtable.c:  Setup command help (use paul's library?')

Cross platform check (test suite?)!
	gui.c:  alarm clock problem
		Linux problem with XtAppPending

Threadless check

[paths, walls, points, notes]: make interface consistent, verify error handling

wildcard.c: check file name sizes!

Remove all unescessary XCAT macros from header files

Redraw functions: make use of invalidated rectangle

Window*.h, gui.c: rationalize gui variables (gc, offsets, etc)

main.c:	Proper exit sequence which waits for threads, 
	frees global variables and then exits. (really necessary?)

thread.c: AmRunningInThread
        Method to check whether function is running in a thread or in main.
        instead of using pthread library internal variables.

-------------------------------------------------------------------------------

GUI.c:
	encapsulate debug messages
COMPLETED MARS 10 (thierry)


cmds.c: system_wapper
	replace the system call with a fork and exec.  The 
	stdout and stderr of the forked process must be re-directed
	to outfp
COMPLETED, OCT 22nd (M. Bolduc)


RobotFuncList:

        split function definition with macros, and declaration, into separate header files.
COMPLETED, DEC 17 1996


main.c, gui.c, comander.c:
	
	encapsulate thread debug messages
COMPLETED Dec 23rd 1996


RDErr.h, RDErrDefs.h:

	Split RDErr.h intor 3 files: RDErrDefs.h RDErrEnum.h, RDErrStringTable.h

COMPLETED Jan 6th 1997

RWIDrv.c:

	To resolve: read timeout as a robot variable?
Completed Jan 16th 1997 (M Bolduc)


RDGlobs.h:

	Remove fastdraw, robot_running, run_robot from global list once their
	use is removed

     Notes:	removed show_cur_robot and update_status which were the only 
		functions using these variables.  These functions were
		effectively unused.
COMPLETED Mar 25th 1997 (M Bolduc)

cmdint.c:  use RDErr for error handling
COMPLETED Mar 26th 1997


comander.c: comander fct

	put back in call to read in initcmds.c

	Note: Added search for many config files.  See comments in comander.c.

COMPLETED Mar 27th 1997

walls.c:

        Make wall structure dynamic.
COMPLETED Apr 1st 1997 (M. Bolduc)

Robot selection:
    Make sure current robot is still in list before issuing a command.  

    ->  Made current robot a shell variable.  Made access function to 
        get the current robot from the shell variable (the name string).
	For a command, the access function obtains the robot pointer
	from the robot name string.  This ensures that the robot still
	exists in the robot list!.

COMPLETED May 26th 1997 (M. Bolduc)

Robot lock file & directory configuration
	System does not work with pthreads!!!
	used std file fcts(creat, close, stat).

COMPLETED May 27th 1997 (M. Bolduc)


Shell variables: screw 

	SetShellVariable did not copy strings properly.

COMPLETED May 28th 1996 (M. Bolduc)


Nomad thread mode not working: sonar rotate interval waits...

	All seems well.  Sonar pos data is no good if the 
	sonars are not left on.  Problem at the Nomadics level.

COMPLETED May 28th 1996 (M. Bolduc)
