summaryrefslogtreecommitdiff
path: root/roombacomm-client/docs
diff options
context:
space:
mode:
authorIdo Hadanny <ido.hadanny@gmail.com>2011-09-22 21:30:13 +0300
committerIdo Hadanny <ido.hadanny@gmail.com>2011-09-22 21:30:13 +0300
commit53b947df484159f5934898ba6c0aa69a9c869007 (patch)
tree189d5903a67765c390de8f1e3423e6b80cde57d1 /roombacomm-client/docs
parent654ca6d59e99b5e72b05dfb917bc5888c4ba6b1b (diff)
added stuff
Diffstat (limited to 'roombacomm-client/docs')
-rw-r--r--roombacomm-client/docs/Asus Router HowTo.html50
-rwxr-xr-xroombacomm-client/docs/CHANGELOG.txt62
-rw-r--r--roombacomm-client/docs/DirectoryStructure.html145
-rw-r--r--roombacomm-client/docs/FileDescriptions.html512
-rw-r--r--roombacomm-client/docs/Index.html26
-rw-r--r--roombacomm-client/docs/README73
-rw-r--r--roombacomm-client/docs/README-0.9570
-rw-r--r--roombacomm-client/docs/README.eclipse.txt22
-rw-r--r--roombacomm-client/docs/README.windows.txt103
-rw-r--r--roombacomm-client/docs/SVN_Info.html176
-rw-r--r--roombacomm-client/docs/ToDo.html121
11 files changed, 1360 insertions, 0 deletions
diff --git a/roombacomm-client/docs/Asus Router HowTo.html b/roombacomm-client/docs/Asus Router HowTo.html
new file mode 100644
index 0000000..6fa458e
--- /dev/null
+++ b/roombacomm-client/docs/Asus Router HowTo.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+ <title>Asus Router HowTo</title>
+</head>
+<body>
+<h1>ASUS Router HowTo</h1>
+<h3>Updating the package list and stty utilities</h3>
+The purpose of this step is to get updated stty utilities onto the ASUS
+router so that the baud rate of the console port can be set.<br>
+<div id=":1y" class="ii gt">
+<div>opkg update</div>
+<div>opkg install coreutils-stty</div>
+<div><br>
+</div>
+</div>
+<h3>To start ser2net</h3>
+To use console port, comment out the serial port in /etc/inittab &amp;
+reboot. File with commented out serial port should be<br>
+::ttyS0::askfirst:/bin/ash --login<br>
+<br>
+The following command sets the port to 115200<br>
+# stty -F /dev/ttyS0 115200<br>
+<br>
+Now start ser2net<br>
+# cd /roomba<br>
+# ./ser2netconf.sh<br>
+<br>
+<br>
+<br>
+<h3>Reference</h3>
+# cat sercon.sh<br>
+ser2net -c /roomba/ser2netcon.conf<br>
+<br>
+<br>
+# cat ser2netcon.conf<br>
+5001:raw:0:/dev/ttyS0:115200<br>
+<br>
+<br>
+# cat /etc/inittab<br>
+::sysinit:/etc/init.d/rcS S boot<br>
+::shutdown:/etc/init.d/rcS K stop<br>
+tts/0::askfirst:/bin/ash --login<br>
+::ttyS0::askfirst:/bin/ash --login<br>
+tty1::askfirst:/bin/ash --login<br>
+<br>
+</body>
+</html>
diff --git a/roombacomm-client/docs/CHANGELOG.txt b/roombacomm-client/docs/CHANGELOG.txt
new file mode 100755
index 0000000..d9660ff
--- /dev/null
+++ b/roombacomm-client/docs/CHANGELOG.txt
@@ -0,0 +1,62 @@
+Changes in Roombacomm 0.96
+--------------------------
+- The primary goal of this release was to enable Roomba 500 models,
+ which use a different baud rate. This has been done while retaining
+ backward compatibility - programs which use the roombacomm class for
+ 400 and older models shouldn't have to change for the older models, and
+ may not have to change for the 500 models. Commands should run unchanged
+ on older models.
+- Secondary goals were to:
+ - get roombacomm to remember it's serial port settings, so you don't have to
+ change them each time you run a GUI
+ - Make life easier for Windows users
+ - Fix bugs along the way.
+
+The following changes were made:
+- Updated RXTX library to latest that is included in Processsing-1.01
+- Created README.windows.txt, README.eclipse.txt, CHANGELOG.txt, TODO.txt
+- Created runit.bat - Windows command prompt equivalent of runit.sh for Linux,
+ makeit.bat (makes all on windows), makedoc.bat (makes all javadoc on windows)
+- Added bluecove-2.1.0.jar to rxtxlib for windows bluetooth support
+- Made SimpleTest go backwards after it went forward using send,
+ so it ends up where it started (and doesn't creep forward)
+- Changed playNote to use song 3, because 500-series roombas only support
+ 4 or 5 songs (vs. 16 for 400-series & ealier).
+- Changed RoombaCommTest beep-hi and beep-lo duration from 10 to 32,
+ and notes more toward the middle of the range to make the beeps audible.
+ (They were too short & high/low pitched to be readily discernable.)
+- Added actions in RoombaCommPanel to make left & right forward turn buttons work
+- Added a combo box in RoombaCommPanel to let the user select the protocol
+ (SCI - Serial Command Interface, for Roomba 400 & older, and
+ OI (Open Interface,for Roomba 500 series.)
+- Put logic into RoombaCommSerial to store the protocol & port &
+ DSRwait settings in .roomba_config file, & retrieve them when when the
+ object is created. This lets an app "remember" the config settings that
+ were last used.
+- Updated the command-line apps to allow the protocol to be unspecified
+ (uses default from config file), or to specify the protocol
+- Made the -debug flag work in RoombaCommTest - eliminated the hard-coded
+ enable/disable statements in RoombaCommPanel
+- Made RoombaCommTest check for whether Roomba is connected (runs sensors
+ command) immediately after connecting, & print connected message.
+- Fixed disconnect button to do disconnect action
+- Fixed typo where RoombaComm.start() said it was sending control
+- Added Roomba 5xx new commands, and a sensors method that lets the caller
+ pass in the length of the expected reply.
+ Make RoombaCommSerial.serialEvent() indicate completion when the requested
+ reply length has been received.
+- Added queryList method to support 5xx Query List command
+- Beefed up the javadoc for the executables
+- Made the Spy* programs terminate cleanly
+- Fixed bug in RoombaComm.goBackward() which made it go forward
+- Made the Test application stop when complete
+- Created build-jar.bat and build-processing-library.bat.
+- Installed 7z.exe to support zip archive creation of build-processing-library
+- Fixed roombaview - framerate() should be frameRate()
+- Made the control() command turn LEDs on, so we know roomba is powered on
+ and we don't run the batteries flat thinking it's off.
+ Bug: The first control command after a poweron, the LEDs flash,
+ but don't stay on.
+- Added programs Stop (stops the robot), PowerOff (powers off the robot),
+ and Bsquare (runs a Borenstein square test - see the UMB benchmark paper
+ by Borenstein et. al.)
diff --git a/roombacomm-client/docs/DirectoryStructure.html b/roombacomm-client/docs/DirectoryStructure.html
new file mode 100644
index 0000000..4cdf458
--- /dev/null
+++ b/roombacomm-client/docs/DirectoryStructure.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+ <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+ <title>DirectoryStructure</title>
+</head>
+<body>
+<h1>Directory Structure</h1>
+This page defines the directory structure standard used in this
+project. It is based on the recommendations in the developer.com <a
+ href="http://www.developer.com/java/other/article.php/994991/Building-with-Ant-Directory-Structure.htm">article
+here</a>.&nbsp;
+<br>
+<h2>The Directories</h2>
+The directories described below are relative to the project source
+tree, as would be checked out of SVN at
+http://svn.dprg.org/repos/roomba/roombacomm/trunk<br>
+<br>
+Two trees are supplied by the project: <br>
+<ol>
+ <li>the full developer tree, described below</li>
+ <li>the user tree, which is the contents of the dist directory after
+building the full developer tree</li>
+</ol>
+The intent is that the dist directory contains everything a user needs
+to run the applications, but not the source. It is considered good
+practice to separate the runnable application from the source, which
+contains much more that users aren't typically interested in. <a
+ name="dir">
+</a>
+<table border="1">
+ <tbody>
+ <tr>
+ <th colspan="2">Directory Structure of /: </th>
+ </tr>
+ <tr>
+ <td>/ </td>
+ <td>project root directory
+(run all tools from here) </td>
+ </tr>
+ <tr>
+ <td>&nbsp;build.xml </td>
+ <td>Ant build file </td>
+ </tr>
+ <tr>
+ <td>&nbsp;lib/ </td>
+ <td>jar files required for
+build </td>
+ </tr>
+ <tr>
+ <td>&nbsp;src/ </td>
+ <td>Java source code for
+servlets and utilities </td>
+ </tr>
+ <tr>
+ <td>&nbsp;doc/</td>
+ <td>Project documentation,
+READMEs, HowTo's, etc</td>
+ </tr>
+ <tr>
+ <td>&nbsp;build/ </td>
+ <td>files compiled/copied
+into here (this directory can be
+safely deleted, and is not stored in the repository) </td>
+ </tr>
+ <tr>
+ <td>dist/</td>
+ <td>"ready to use" JAR's and other applications for
+users.</td>
+ </tr>
+ </tbody>
+</table>
+<br>
+<table style="width: 688px; height: 238px;" border="1">
+ <tbody>
+ <tr>
+ <th colspan="2">Directory Structure of /src: </th>
+ </tr>
+ <tr>
+ <td>com/hackingroomba/roombacomm </td>
+ <td>Source directory of roombacomm library + applications</td>
+ </tr>
+ <tr>
+ <td>&nbsp;scripts </td>
+ <td>scripts to run the applications, and obsolete scripts that
+used to build the applications </td>
+ </tr>
+ <tr>
+ <td>&nbsp;processing-examples </td>
+ <td>contains directories for the /roombaring, /roombatune &amp;
+/roombaview processing
+apps. These apps are intended to be copied as-is into a processing
+directory. (Processing is a graphic development environment - read
+"Hacking Roomba" for more details.)</td>
+ </tr>
+ <tr>
+ <td>processing-examples/roombaview</td>
+ <td>In addition to the processing application, contains
+subdirectories which support the application. See fileDescriptions.</td>
+ </tr>
+ <tr>
+ <td>packaging</td>
+ <td>???A directory containing RoombaCommTest.app and directories
+which help a Mac build an app???</td>
+ </tr>
+ </tbody>
+</table>
+<br>
+<table style="width: 688px; height: 115px;" border="1">
+ <tbody>
+ <tr>
+ <th style="height: 34px;" colspan="2">Directory Structure of
+/lib: </th>
+ </tr>
+ <tr>
+ <td style="height: 34px;">/</td>
+ <td style="height: 34px;">jar files which support roombacomm apps</td>
+ </tr>
+ <tr>
+ <td style="height: 35px;">/rxtx </td>
+ <td style="height: 35px;">Files which provide serial I/O for java</td>
+ </tr>
+ </tbody>
+</table>
+<br>
+<table style="width: 688px; height: 115px;" border="1">
+ <tbody>
+ <tr>
+ <th style="height: 34px;" colspan="2">Directory Structure of
+/dist: </th>
+ </tr>
+ <tr>
+ <td style="height: 34px;"></td>
+ <td style="height: 34px;"></td>
+ </tr>
+ <tr>
+ <td style="height: 35px;"></td>
+ <td style="height: 35px;"></td>
+ </tr>
+ </tbody>
+</table>
+<br>
+</body>
+</html>
diff --git a/roombacomm-client/docs/FileDescriptions.html b/roombacomm-client/docs/FileDescriptions.html
new file mode 100644
index 0000000..0175b84
--- /dev/null
+++ b/roombacomm-client/docs/FileDescriptions.html
@@ -0,0 +1,512 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+</head>
+<body>
+Below are a description of each of the files of this project.<br>
+<h2>/</h2>
+<ul>
+ <li>COPYRIGHT</li>
+ <ul>
+ <li>GNU copyright notice for
+the project</li>
+ </ul>
+ <li>index.html</li>
+ <ul>
+ <li>Redirects to
+docs/index.html</li>
+ </ul>
+ <li>README.txt</li>
+ <ul>
+ <li>text file which tells the
+user to open index.html in a browser</li>
+ </ul>
+ <li>build.xml</li>
+ <ul>
+ <li>ant build file for the project</li>
+ </ul>
+</ul>
+<h2>/src/com/hackingroomba/roombacomm</h2>
+<ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/FrameProcessor.java">FrameProcessor.java</a></li>
+ <ul>
+ <li>An class to handle visual
+processing from a camera mounted on
+the roomba.</li>
+ <li>Used by:
+com.hackingroomba.roombacomm.Bsquare<br>
+ </li>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/JImagePanel.java">JImagePanel.java</a></li>
+ <ul>
+ <li>It looks like nothing
+references this in the project. Maybe it
+was an early version/contriubutor to FrameProcessor.java ? <br>
+ </li>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/Note.java">Note.java</a></li>
+ <ul>
+ <li>Simple wrapper for musical
+notes</li>
+ <li>Used by:&nbsp;
+com.hackingroomba.roombacomm.</li>
+ <ul>
+ <li>&nbsp;RoombaComm</li>
+ <li>RTTTLPlay</li>
+ <li>RoombaCommFrame</li>
+ <li>RoombaCommPanel</li>
+ <li>RoombaCommSerial<br>
+ </li>
+ </ul>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/RTTTLParser.java">RTTTLParser.java</a></li>
+ <ul>
+ <li>A simple class to allow a
+"rttlstring" into an ArrayList of
+notes. The array can later be passed to a connected Roomba to make it
+sing a song. How to use this is deminstrated in
+com.hackingroomba.roombacomm.RoombaCommFrame.playSong(RoombaComm
+roombacomm, String rtttl)<br>
+ </li>
+ <li>Used by:
+com.hackingroomba.roombacomm.</li>
+ <ul>
+ <li>RTTTLPlay</li>
+ <li>RoombaCommFrame</li>
+ <li>RoombaCommPanel</li>
+ <li>RoombaCommSerial</li>
+ </ul>
+ <li>A few sample rttlstrings
+you could use are included here ( you
+can find more via google. :) )</li>
+ <ul>
+ <li>(close encounters of the
+third kind)<br>
+closeencounter:d=16,o=5,b=125:d,p,e,p,c,p.,c4,p,g4,1p.,d6,p,e6,p,c6,p.,c,p,g,1p.,</li>
+ <li>Thunderstruck, ACDC)<br>
+thunderstr:d=16,o=5,b=160:c6,c,a#,c,a,c,a#,c,a,c,g,c,a,c,f,c,g,c,e,c,f,c,e,c,f,c,e,c,f,c,e,c</li>
+ </ul>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/RoombaComm.java">RoombaComm.java</a></li>
+ <ul>
+ <li>This is the primary
+implementation for this project. It is an
+abstract class that acts as an abstraction layer from the iRobot API's
+for the models of Roomba's that this project is attempting to support.
+The class is designed to simplify users use of the iRobot API and to
+provide as consistent as possible abstraction layer between versions of
+the iRobot API versions. This interface is currently implemented based
+on how the Roombacomm will connect to the Roomba device. There are two
+main implementations of this interface:&nbsp; <a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/RoombaCommSerial.java">RoombaCommSerial.java</a>
+and <a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/RoombaCommTCPClient.java">RoombaCommTCPClient.java</a>
+.<br>
+ </li>
+ </ul>
+ <ul>
+ <ul>
+ <ul>
+ </ul>
+ </ul>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/RoombaCommFrame.java">RoombaCommFrame.java</a></li>
+ <ul>
+ <li>This is a Java Swing User
+Interface(UI). It is intended to
+allow a user to manually control their roomba from their PC. GUI size
+options may be available to support desktop and/or Netbook screen
+resolutions in the future.<br>
+ </li>
+ <ul>
+ <ul>
+ </ul>
+ </ul>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/RoombaCommGUI.java">RoombaCommGUI.java</a></li>
+ <ul>
+ <li>This is a class designed
+to start a graphical interface (mainly
+RoombaCommFrame.java, but others may be possible in the future) that
+can be used to manually control the features of the RoombaComm library.
+The main function of this class is to handle command line interfaces
+(CLI) inputs and to provide an example of how other applications could
+reuse RoombaCommFrame.java for their own use.<br>
+ </li>
+ <ul>
+ <ul>
+ </ul>
+ </ul>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/RoombaCommSerial.java">RoombaCommSerial.java</a></li>
+ <ul>
+ <li>The serial-port based
+implementation of RoombaComm. Designed
+for physical RS-232 ports, USB adapter ports like Keyspan USA-19HS, and
+Bluetooth serial port profiles.<br>
+ </li>
+ <ul>
+ <ul>
+ </ul>
+ </ul>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/RoombaCommTCPClient.java">RoombaCommTCPClient.java</a></li>
+ <ul>
+ <li>This class is an extension
+of the RoombaComm interface. This
+implementation is designed to communicate with the Roomba device across
+a TCP/IP network.<br>
+ </li>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/images/">images/</a></li>
+ <ul>
+ <li>This is a directory of
+image files used in the the GUI's.<br>
+ </li>
+ </ul>
+ <ul>
+ <ul>
+ </ul>
+ </ul>
+</ul>
+<br>
+Classes designed for specific test(s)<br>
+<ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/Bsquare.java">Bsquare.java</a></li>
+ <ul>
+ <li>Drive the Roomba forward,
+back, or CW or CCW square<br>
+ </li>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/BumpTurn.java">BumpTurn.java</a></li>
+ <ul>
+ <li>Read sensors to detect
+bumps and turn away from them while
+driving<br>
+ </li>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/Drive.java">Drive.java</a></li>
+ <ul>
+ <li>command line controls to
+move a Roomba (RoombaCommSerial only)</li>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/DriveRealTime.java">DriveRealTime.java</a></li>
+ <ul>
+ <li>GUI to allow user to use
+arrow keys to drive a Roomba in real
+time (RoombaCommSerial only)</li>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/ListSerialPorts.java">ListSerialPorts.java</a></li>
+ <ul>
+ <li>A simple command line
+program to enumerate the Serial ports
+that the application sees in the environment.<br>
+ </li>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/LogoA.java">LogoA.java</a></li>
+ <ul>
+ <li>Make a square with a
+Roomba.<br>
+Leaves Roomba in same place it began (theoretically)<br>
+ </li>
+ </ul>
+</ul>
+<br>
+Older classes (Legacy?/Depreciated?) that may not be maintained by this
+project going forward:<br>
+<ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/RoombaCommPanel.java">RoombaCommPanel.java</a></li>
+ <ul>
+ <li>This
+is an older graphical interface that can be used to manually control
+some of the features of the project. This UI is the orginal work of Tod
+E. Kurt, and is not being maintained so that any external to the
+project references can be perserved. (However, the location of the
+class has been changed to match the project ongoing source tree
+structure.)</li>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/RoombaCommTest.java">RoombaCommTest.java</a></li>
+ <ul>
+ <li>A small GUI to test out
+RoombaComm.</li>
+ <ul>
+ <li>This class is simlar in
+concept to the RoombaCommGUI class.
+However it uses the RoombaCommPanel for the UI that it starts for the
+user.</li>
+ </ul>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/RoombaCommTestOld.java">RoombaCommTestOld.java</a></li>
+ <ul>
+ <li>A small GUI to test out
+RoombaComm. (an Even earlier version of
+RoombacommTest.java)<br>
+ </li>
+ <ul>
+ <li>This class is simlar in
+concept to the RoombaCommGUI class.
+However it uses the RoombaCommPanel for the UI that it starts for the
+user.</li>
+ </ul>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/RTTTLPlay.java">RTTTLPlay.java</a></li>
+ <ul>
+ <li>Play RTTL formatted
+ringtones on the Roomba.<br>
+This class only supports a serial connection to a Roomba to play a RTTL
+string from a command line parameter.</li>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/RoombaRecorder.java">RoombaRecorder.java</a></li>
+ <ul>
+ <li>A simple wrapper for
+multiple MacroRecorderPanels</li>
+ <ul>
+ <li>This UI allows the user
+to record and play back movements for
+a roomba.<br>
+ </li>
+ </ul>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/RoombaRecorderPanel.java">RoombaRecorderPanel.java</a></li>
+ <ul>
+ <li>GUI (tab) for
+RoombaRecorder<br>
+A Panel containing controls for testing RoombaComm.</li>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/SimpleTest.java">SimpleTest.java</a></li>
+ <ul>
+ <li>A simple test of
+RoombaCommSerial functionality.<br>
+ </li>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/Spiral.java">Spiral.java</a></li>
+ <ul>
+ <li>Make the Roomba drive in a
+spiral. (RoombaCommSerial only)<br>
+ </li>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/Spiro1.java">Spiro1.java</a></li>
+ <ul>
+ <li>A Spirograph-like example
+(RoombaCommSerial only)</li>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/Spiro2.java">Spiro2.java</a></li>
+ <ul>
+ <li>A Spirograph-like example with additional parameters and
+behaviors
+(RoombaCommSerial only)&nbsp;<br>
+ </li>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/Spy.java">Spy.java</a></li>
+ <ul>
+ <li>Connect to a roomba
+(RoombaCommSerial only) and watch sensor
+data comming back from the device.<br>
+NEED to find the differences between Spy.java, SpyAuto.java,
+and SpySimple.java</li>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/SpyAuto.java">SpyAuto.java</a></li>
+ <ul>
+ <li>Connect to a roomba
+(RoombaCommSerial only) and watch sensor
+data comming back from the device.<br>
+NEED to find the differences between Spy.java, SpyAuto.java,
+and SpySimple.java<br>
+ </li>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/SpySimple.java">SpySimple.java</a></li>
+ <ul>
+ <li>Connect to a roomba
+(RoombaCommSerial only) and watch sensor
+data comming back from the device.<br>
+NEED to find the differences between Spy.java, SpyAuto.java,
+and SpySimple.java</li>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/Test.java">Test.java</a></li>
+ <ul>
+ <li>Connect to a roomba
+(RoombaCommSerial only) and run through a
+static set of operations to exercise the older RoombaComm Library.<br>
+ </li>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/Tribble.java">Tribble.java</a></li>
+ <ul>
+ <li>Connect to a roomba
+(RoombaCommSerial only) and make it make
+Tribble noises<br>
+ </li>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/Waggle.java">Waggle.java</a></li>
+ <ul>
+ <li>Connect to a roomba
+(RoombaCommSerial only) Drive the Roomba in
+a Waggle, like when it's searching for something</li>
+ </ul>
+ <li><a
+ href="http://svn.dprg.org/repos/roomba/roombacomm/branches/roombaNet-JMP-0.97Working/src/com/hackingroomba/roombacomm/net/">net/</a></li>
+ <ul>
+ <li>DumpMethods</li>
+ <ul>
+ <li>use Java reflection to
+output methods of the RoombaCommSerial
+class.<br>
+Looks to be heavily based on a Simple Example from
+http://java.sun.com/developer/technicalArticles/ALT/Reflection/<br>
+ </li>
+ </ul>
+ <li>RoombaCommTCPServer</li>
+ <ul>
+ <li>an early ServerSocket
+based attempt to communicate with a
+Roomba<br>
+ </li>
+ </ul>
+ <li>SimpleTest</li>
+ <ul>
+ <li>Connect to a roomba
+(RoombaCommSerial only) and run through a
+static set of operations to exercise the older RoombaComm Library.
+&nbsp;A<span style="color: rgb(255, 0, 0);">R: Paul look at
+whether
+this is really a duplicate of the file in roombacomm - if so, delete it</span></li>
+ </ul>
+ <li>TextHttpServer</li>
+ <ul>
+ <li>Appears to be a
+crude(maybe a sample from somewhere?) class
+to
+implement an Http Server. It appears to have no direct links/references
+to RoombaComm.</li>
+ </ul>
+ </ul>
+</ul>
+<h2>/src/scripts</h2>
+<ul>
+ <li><span style="color: rgb(255, 0, 0);"><span
+ style="color: rgb(0, 0, 0);">runit.bat and runit.sh:
+Windows and Unix
+scripts that set CLASSPATH &amp; run the programs from the proper
+places</span></span></li>
+ <li><span style="color: rgb(255, 0, 0);"><span
+ style="color: rgb(0, 0, 0);">RoombaCommTest.bat,
+RoombaCommTest.sh,
+RoombaCommGUI.bat and RoombaCommGUI.sh:&nbsp;</span></span></li>
+</ul>
+<h2>/src/processing-examples</h2>
+Directories intended to be copied into the users Processing work
+directory<br>
+<ul>
+ <li><span style="color: rgb(255, 0, 0);"><span
+ style="color: rgb(0, 0, 0);"><a
+ href="../src/processing-examples/roombaring/roombaring.pde">roombaring/roombaring.pde</a>:
+Play a tune on Roomba (possibly the tron theme).</span></span></li>
+ <li><span style="color: rgb(255, 0, 0);"><span
+ style="color: rgb(0, 0, 0);"><a
+ href="../src/processing-examples/roombatune/roombatune.pde">roombatune/roombatune.pde</a>:
+Allow the user to use their PC keyboard as a a musical keyboard to play
+notes in real time on the Roomba</span></span></li>
+ <li><span style="color: rgb(255, 0, 0);"><span
+ style="color: rgb(0, 0, 0);"><a
+ href="../src/processing-examples/roombaring/roombaring.pde">roombaview/roombaview.pde</a>:
+Provide a GUI</span></span><span style="color: rgb(255, 0, 0);"><span
+ style="color: rgb(0, 0, 0);"> to drive roomba which runs inside the
+Processing environment. The GUI uses direction buttons to control
+Roomba and moves it across a grid in the GUI as Roomba drives.</span></span></li>
+ <ul>
+ <li><span style="color: rgb(255, 0, 0);"><span
+ style="color: rgb(0, 0, 0);">roombaview/data/: Directory containing
+images displayed by the GUI.</span></span></li>
+ <li><span style="color: rgb(255, 0, 0);"><span
+ style="color: rgb(0, 0, 0);">roombaview/libraries/MyGUI/library: </span></span>Directory
+contains
+MyGUI.jar, which provides button handling etc for the application.
+Check the processing documentation for where to copy the MyGUI library.</li>
+ </ul>
+</ul>
+<h2>/docs</h2>
+<ul>
+ <li>Index.html:&nbsp;Project
+overview and lead-in to documentation.
+How to use the project (for non-developers.) Contains much of the
+content from README in the original project structure</li>
+ <li>DevelopersGuide.html:
+Instructions on recommended configuration,
+packages &amp; tools that should be installed to enable
+development.
+Refers to the book where appropriate.</li>
+ <li>DirectoryStructure.html: a
+listing of directories in the project
+- both source and those built automatically, and their purpose</li>
+ <li>FileDescriptions.html: This
+file. A description of each source
+file in the project. <span style="color: rgb(255, 0, 0);">Q: is there
+a need to describe generated files?</span></li>
+ <li>ToDo.html: list of things to
+do to the project</li>
+ <li>SVN_Info.html: Subversion
+policies for the project</li>
+ <li>eclipseHowTo.html:
+Instructions for configuring eclipse for this
+project. Contents from removed README.eclipse.txt file</li>
+ <li>windowsHowTo.html:
+Instructions specific to running roombacomm
+under windows</li>
+ <li>wifiRouterHowTo.html:
+Instructions for connecting a wifi router
+and installing &amp; configuring the necessary daemons to provide
+wifi
+access to Roomba. (Content needs to come from Jonathan.)</li>
+ <br>
+</ul>
+<h2>/lib</h2>
+<ul>
+ <li>jargs.jar: library which supports posix-style command-line
+arguments (hyphen-argument style</li>
+</ul>
+<h2>/lib/rxtxlib</h2>
+<ul>
+ <li>librxtxSerial.jnilib: Java extension which lets serial I/O escape
+from the virtual machine</li>
+ <li>rxtxSerial.dll: Windows dll which provides COM access to
+librxtxSerial.jnilib</li>
+ <li>librxtxSerial.so: Mac OS-X library which provices serial driver
+access to librxtxSerial.jnilib</li>
+ <li>RXTXcomm.jar: <span style="color: rgb(255, 0, 0);">???</span></li>
+ <li>macosx_setup.command:a script to fix permissions for loc files on
+Mac OS X</li>
+ <li>README.rxtx: the name says it all</li>
+</ul>
+</body>
+</html>
diff --git a/roombacomm-client/docs/Index.html b/roombacomm-client/docs/Index.html
new file mode 100644
index 0000000..15091e3
--- /dev/null
+++ b/roombacomm-client/docs/Index.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+ <title>Index</title>
+</head>
+<body style="height: 318px;">
+<h1>Roombacomm 0.97</h1>
+<a href="README">README</a><br>
+<a href="README.eclipse.txt">Eclipse HowTo</a><br>
+<a href="README.windows.txt">Windows-related information</a><br>
+<a href="CHANGELOG.txt">Changelog</a><br>
+<a href="DirectoryStructure.html">Directory Structure</a><br>
+<a href="FileDescriptions.html">File Descriptions</a>
+<br>
+<a href="SVN_Info.html">Subversion Tree structure</a>
+<br>
+<a href="Asus%20Router%20HowTo.html">ASUS Router How To</a><br>
+<h2>To Do</h2>
+The <a href="ToDo.html">To Do list</a> enumerates the remaining work
+for the 0.97 release, as well as work remaining beyond 0.97<br>
+<h2>Previous Versions</h2>
+<a href="README-0.95">README for 0.95 release</a>
+</body>
+</html>
diff --git a/roombacomm-client/docs/README b/roombacomm-client/docs/README
new file mode 100644
index 0000000..b5909e0
--- /dev/null
+++ b/roombacomm-client/docs/README
@@ -0,0 +1,73 @@
+RoombaComm: Roomba Control & Communications API, release 0.96
+Copyright (c) 2006-9 Tod E. Kurt, tod-at-todbot.com &
+ Paul Bouchier, bouchier-at-classicnet.net
+
+Quick Start for Java on Linux
+-----------------------------
+If you have a Roomba Serial Interface built and the 'roombacomm-java.zip'
+library, you can quickly try both out by unzipping this file and running
+one of the examples:
+
+% unzip roombacomm.zip
+% cd roombacomm
+% ./run-it.sh roombacomm.SimpleTest /dev/cu.KeySerial1
+
+Assuming you have a serial device called "/dev/cu.KeySerial1", which you
+probably do if you have a Keyspan USA-19HS USB serial adapter.
+
+
+Quick Start for Processing
+--------------------------
+If you have a Roomba Serial Interface built and the 'roombacomm-processing.zip'
+library, you can quickly try out both by unzipping this file and running
+one of the examples:
+
+1. Unzip the 'roombacomm-processing.zip' file inside of Processing's
+ 'libraries' directory. This will create a directory called 'roombacomm'.
+2. Start Processing (or Restart if already running)
+3. Create a New Sketch
+3. Choose "Sketch->Import Library->roombacomm" menu item
+4. Copy one of the Processing examples in the 'examples' directory of the
+ roombacomm library (zipfile). Note that if you want to run roombaview
+ you must install the MyGUI package.
+ The MyGUI library is located in the 'libraries' directory of the 'roombaview'
+ sketch. You may need to run an older version of Processing for it to work.
+
+
+
+Compatibility
+-------------
+This library has only been tested on Mac OS X 10.4, and a little on
+Windows 2000, but everything is in place (particularly the RXTX native
+libraries) for it to work on any version of Mac OS X, Windows, and Linux.
+
+
+
+Platform-specific Notes
+-----------------------
+Mac OS X:
+---------
+If you've never used RXTX before on your Mac OS X box, run the command:
+
+% ./rxtxlib/macosx_setup.command
+
+And then shutdown (not just log out) and log back in again.
+And read this faq from Processing: http://processing.org/faq/bugs.html#serial
+
+Also, if you use Bluetooth in 10.3, you can only input numeric passkeys,
+which can make using Bluetooth adapters difficult. If your Bluetooth
+adapter can change its passkey (possible with the SparkFun/BlueRadios
+devices), change it to a numeric passkey on a differernt computer.
+Or upgrade your OS. :)
+
+Windows:
+--------
+
+The serial port implementation is a little different (at least to RXTX)
+so use the '-hwhandshake' flag with the programs, if using Bluetooth on
+Windows. See, 'RoomabCommSerial.waitForDSR' for details.
+
+(And yes, I know the build, configuration, and release of this library
+is a little goofball, but I wanted to get something out so others can play)
+
+-eof-
diff --git a/roombacomm-client/docs/README-0.95 b/roombacomm-client/docs/README-0.95
new file mode 100644
index 0000000..68c1e17
--- /dev/null
+++ b/roombacomm-client/docs/README-0.95
@@ -0,0 +1,70 @@
+RoombaComm: Roomba Control & Communications API, release 0.95
+Copyright (c) 2006 Tod E. Kurt, tod@todbot.com
+
+Quick Start for Java
+--------------------
+If you have a Roomba Serial Interface built and the 'roombacomm-java.zip'
+library, you can quickly try both out by unzipping this file and running
+one of the examples:
+
+% unzip roombacomm.zip
+% cd roombacomm
+% ./run-it.sh roombacomm.SimpleTest /dev/cu.KeySerial1
+
+Assuming you have a serial device called "/dev/cu.KeySerial1", which you
+probably do if you have a Keyspan USA-19HS USB serial adapter.
+
+
+Quick Start for Processing
+--------------------------
+If you have a Roomba Serial Interface built and the 'roombacomm-processing.zip'
+library, you can quickly try out both by unzipping this file and running
+one of the examples:
+
+1. Unzip the 'roombacomm-processing.zip' file inside of Processing's
+ 'libraries' directory. This will create a directory called 'roombacomm'.
+2. Start Processing (or Restart if already running)
+3. Create a New Sketch
+3. Choose "Sketch->Import Library->roombacomm" menu item
+4. Copy one of the Processing examples in the 'examples' directory of the
+ roombacomm library (zipfile)
+
+
+
+
+Compatibility
+-------------
+This library has only been tested on Mac OS X 10.4, and a little on
+Windows 2000, but everything is in place (particularly the RXTX native
+libraries) for it to work on any version of Mac OS X, Windows, and Linux.
+
+
+
+Platform-specific Notes
+-----------------------
+Mac OS X:
+---------
+If you've never used RXTX before on your Mac OS X box, run the command:
+
+% ./rxtxlib/macosx_setup.command
+
+And then shutdown (not just log out) and log back in again.
+And read this faq from Processing: http://processing.org/faq/bugs.html#serial
+
+Also, if you use Bluetooth in 10.3, you can only input numeric passkeys,
+which can make using Bluetooth adapters difficult. If your Bluetooth
+adapter can change its passkey (possible with the SparkFun/BlueRadios
+devices), change it to a numeric passkey on a differernt computer.
+Or upgrade your OS. :)
+
+Windows:
+--------
+
+The serial port implementation is a little different (at least to RXTX)
+so use the '-hwhandshake' flag with the programs, if using Bluetooth on
+Windows. See, 'RoomabCommSerial.waitForDSR' for details.
+
+(And yes, I know the build, configuration, and release of this library
+is a little goofball, but I wanted to get something out so others can play)
+
+-eof-
diff --git a/roombacomm-client/docs/README.eclipse.txt b/roombacomm-client/docs/README.eclipse.txt
new file mode 100644
index 0000000..08957d8
--- /dev/null
+++ b/roombacomm-client/docs/README.eclipse.txt
@@ -0,0 +1,22 @@
+Instructions for running eclipse on windows with Roombacomm
+-----------------------------------------------------------
+Disclaimer: I'm not an eclipse expert. Please improve these instructions. However, eclipse is a really great
+java IDE - once you learn how to use it you won't want to go back to the command-line.
+
+Prerequisite: You have installed eclipse and a jdk, and pointed eclipse to a workspace.
+
+- Create a new project from existing source in the folder you unzipped into. (Do not create it in the directory with the
+source files.)
+- Give the project the same name as the directory you downloaded into
+- Change project layout: choose "use project folder as root for source & class files"
+- Optionally select a project-specific jre that is the same as makeit.bat uses
+- Check "create project from existing source"
+- click next
+- click the libraries tab
+- Click the button to add external jars. Navigate to rxtxlib and select RXTXcomm.jar
+- Open "Run Configurations" and make a new run configuration called SimpleSerial. Search for the main class and select
+SimpleSerial in the popup. In the arguments tab, type the name of the COM port you're using.
+- Run the configuration you just created. You should see the same output in the console pane of eclipse as you saw
+in the command prompt window if you followed the README.windows instructions.
+- Make a new run configuration called RoombaCommTest, and select RoombaCommTest as the main class, as above. Run it and you
+should get the GUI for driving Roomba around. \ No newline at end of file
diff --git a/roombacomm-client/docs/README.windows.txt b/roombacomm-client/docs/README.windows.txt
new file mode 100644
index 0000000..3978727
--- /dev/null
+++ b/roombacomm-client/docs/README.windows.txt
@@ -0,0 +1,103 @@
+Quick Start for Windows
+-----------------------
+This procedure has been tested on Windows XP and Vista.
+
+Prerequisites
+-------------
+- You must have java installed, and the path to java must be in your environment.
+To test, open a command prompt window and type "java". You should get a help menu
+printed.
+
+Roombacomm Installation
+-----------------------
+- unzip roombacomm somewhere
+
+rxtxSerial.dll Installation
+---------------------------
+- You need to copy the rxtxSerial.dll file into the folder containing java.exe
+- Identify your Java Runtime Environment's folder. For version 1.6.0, this usually
+is c:\Program Files\Java\jre1.6.0_??\. java.exe is usually in the bin folder under the
+runtime folder.
+- Note that the java.exe program can live anywhere (even in \Windows\System32!), and rxtxSerial.dll
+needs to be copied to the same directory as the java.exe version that will be run from the
+command prompt. If you have several versions of Java installed, you need to find the right
+directory containing the version of Java which will be run when you type java from the command
+prompt. One way to do this is open up a command prompt window and type java -version. Then
+look in suitable directories for that version. The version of java.exe which runs is determined
+by the order of directories in the PATH environment variable. Test that you found the right version of java
+by typing \<path>\java -version and looking for a match to the version when you don't explicitly
+type the path. For example:
+ > \windows\system32\java.exe -version
+will print the version of java in the windows system32 folder.
+- Copy rxtxSerial.dll from roombacomm\rxtxlib folder to the folder with java.exe. For
+example: c:\Program Files\Java\jre1.6.0_01\bin\
+- Further help is available on the Wiki at http://www.rxtx.org
+- If you don't get rxtxSerial.dll installed in the right place, RoombacommTest will hang when you
+press the connect button, command-line apps will hang at startup, and the Windows bluetooth device
+icon will flash to connected then back to not connected.
+
+Bluetooth
+---------
+- It may be that bluetooth is problematic when you've been using the device from one computer,
+which is still turned on, and you try to use it from another computer. You may have to turn the
+other computer off, and/or delete the bluetooth device and re-add it in the Bluetooth devices
+window before it will allow opening it.
+- Open up the bluetooth Devices window (in the control panel). You can monitor the connected state
+there, as well as identify which COM ports are assigned to the bluetooth 1SPP board. The device
+should show connected once you've hit the connect button on RoombacommTest, or when any of the
+sample programs are active.
+- Bluetooth on Windows may not work too well if you select no passcode. Try creating the device
+with a passcode of 0000, even if the bluetooth device is set up for no passcode.
+- A Philips BGB203 chip in automatic server mode as a bluetooth transceiver, and
+Windows XP and Vista, and RXTXlib does not seem reliable - YMMV! Please help if you can.
+
+Identifying which COM port Roomba is connected to
+-------------------------------------------------
+- Find which COM port your Roomba is connected to.
+- If you've hard-wired Roomba to a PC serial port, this should be in your computer's documentation.
+- If you're using a USB to serial adapter, you can find the COM port by going to device manager
+(right click on My Computer, click on Manage, and click on Device Manger - expand the
+"Ports (COM & LPT)" item) and looking for a COM port that comes and goes as you plug and unplug
+the USB to serial adapter.
+- If you're using bluetooth with the Windows bluetooth stack (default), go to control panel
+and open up "bluetooth Devices" and look on the COM ports tab
+- The SimpleTest program helps you by listing which COM ports it found. You can try them all.
+
+Testing with SimpleTest
+-----------------------
+- Before you jump to running SimpleTest (which actually relies on a lot of SW underneath it)
+check that you can actually connect to the COM port you intend to use. Run a terminal emulator
+program such as PuTTY, and open up the serial port with the name COMx (whichever port your Roomba
+is connected to). Jumper the Tx port to the Rx port. If your USB to Serial adapter has data LEDs,
+try hitting keys, and make sure the LEDs blink, and the key you pressed is echoed back. Similarly
+for bluetooth. If you can't get a terminal emulator to talk to your interface, SimpleTest has
+no hope.
+- SimpleTest is a java application which connects to Roomba through a serial port you specify
+and sends commands to make it do a few basic things.
+- Open a command prompt window and cd to the directory where you unzipped roombacomm
+- run the runit.bat file with the name of your com port, e.g.
+ > runit COM5.
+ Note that COMx is case sensitive - "COM" in Windows COM ports is capitalized
+- If you get the dreaded "Couldn't connect to com4" message, you likely either mistyped
+the COM port (e.g. didn't capitalize COM), or you have not installed rxtxSerial.dll in the
+same directory as the java.exe that you're running.
+- If it connects to the COM port, and you have lights on your USB to serial port, they should
+start flashing as the program prints the commands it's sending to Roomba. If you have Roomba
+connected and powered on, it will move around a little.
+- If you're using bluetooth on Windows, you may have to give the -hwhandshake option on
+the command line. e.g.
+ > runit roombacomm.DriveRealTime COM4 -hwhandshake
+
+Modifying & Rebuilding
+----------------------
+- The "Hacking Roomba" book describes the makeit.sh script, which builds all the java code.
+For windows, use the makeit.bat batch file from the command prompt to rebuild all java code
+after modifications.
+- For windows, the analog to the makedoc.sh script is the makedoc.bat batch file. This rebuilds
+the javadoc. Please keep the javadoc up to date if you're going to submit changes back to Tod.
+
+Processing
+----------
+- If you change any RoombaComm functions, you'll need to re-make the roombacomm jar file. Use
+the build-jar.bat batch file for this, then run the build-processing-library.bat batch file.
+
diff --git a/roombacomm-client/docs/SVN_Info.html b/roombacomm-client/docs/SVN_Info.html
new file mode 100644
index 0000000..02c270c
--- /dev/null
+++ b/roombacomm-client/docs/SVN_Info.html
@@ -0,0 +1,176 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+ <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type" />
+ <title>SVN_Info</title>
+
+
+</head><body>
+<h1>Getting started (for the Subversion unaware):</h1>
+
+<p>The O'Reilly Media <a href="http://svnbook.red-bean.com/en/1.5">book</a>
+(free on line, but you can buy it too)<br />
+Good parts to read first: (<span class="sect1"><a href="http://svnbook.red-bean.com/en/1.5/svn.intro.whatis.html">What
+Is Subversion?</a></span>, <span class="chapter"><a href="http://svnbook.red-bean.com/en/1.5/svn.basic.html">Fundamental
+Concepts</a> )</span><br />
+</p>
+
+<h1>A few SVN quotes:</h1>
+
+<h3>
+<a href="http://svnbook.red-bean.com/en/1.5/svn.branchmerge.html">ref</a>:
+svnbook.red-bean.com, Chapter&nbsp;4.&nbsp;Branching and Merging
+</h3>
+
+<div class="quote">
+For projects that have a large number of contributors, it's common for
+most people to have working copies of the trunk. Whenever someone needs
+to make a long-running change that is likely to disrupt the trunk, a
+standard procedure is to create a private branch and commit changes
+there until all the work is complete.<br />
+</div>
+
+<h3><a href="http://svnbook.red-bean.com/en/1.5/svn.branchmerge.whatis.html">ref</a>:
+What is a branch?</h3>
+
+<div class="quote">This is the basic concept of a <em class="firstterm">branch</em>-namely,
+a line of development that exists independently of another line, yet
+still shares a common history if you look far enough back in time. A
+branch always begins life as a copy of something, and moves on from
+there, generating its own history (see <a class="xref" href="http://svnbook.red-bean.com/en/1.5/svn.branchmerge.whatis.html#svn.branchmerge.whatis.dia-1" title="Figure&nbsp;4.1.&nbsp;Branches of development">Figure&nbsp;4.1, Branches
+of development</a>).</div>
+
+<h3><a href="http://svnbook.red-bean.com/en/1.5/svn.branchmerge.using.html#svn.branchmerge.using.concepts">ref</a>:
+What's the point of a branch?</h3>
+
+<div class="quote">You should
+remember two important lessons from this section. First, Subversion has
+no internal concept of a branch-it knows only how to make copies. When
+you copy a directory, the resultant directory is only a "<span>branch</span>"
+because <span class="emphasis"><em>you</em></span> attach that meaning
+to it. You may think of the directory differently, or treat it
+differently, but to Subversion it's just an ordinary directory that
+happens to carry some extra historical information.<br />
+<br />
+Second, because of this copy mechanism, Subversion's branches exist as <span class="emphasis"><em>normal filesystem directories</em></span> in the
+repository. This is different from other version control systems, where
+branches are typically defined by adding extra-dimensional "<span class="quote">labels</span>" to collections of files. The location
+of your branch directory doesn't matter to Subversion. Most teams
+follow a convention of putting all branches into a <code class="filename">/branches</code> directory, but you're free to invent
+any policy you wish.<br />
+</div>
+
+<h2>A few words about this project's tree managment approach:</h2>
+
+The structure will be as follows:<br />
+
+/roombacomm<br />
+
+&nbsp; ../trunk<br />
+
+&nbsp;&nbsp;&nbsp;&nbsp; This is where the bleading edge development
+and believed to be fully working code for this project can be found.
+The structure should be
+usable as an SVN checkout&nbsp; for the project source tree. In general
+the idea is that /trunk will be usable at all times. More deatils about
+the structure of the project in a seperate <a href="DirectoryStructure.html">document</a>.<br />
+
+<br />
+
+&nbsp; ../branches<br />
+
+&nbsp;&nbsp;&nbsp;&nbsp; These branches are planed to be of one of two
+types: experemental or releases.<br />
+
+&nbsp;&nbsp;&nbsp; Experemental branches:<br />
+
+&nbsp;&nbsp;&nbsp;&nbsp; This is where long running development efforts
+will take place for the project. Each branch should follow the projects
+naming
+convention based on the type of branch. (See "SVN policies of this
+project" for details) In general, these branches should be considered
+"under development" or "experimental" and under the control of a
+developer. When the branch reaches a stability point, where the code
+implmentes the changes that are desired for the branch, has implemented
+any now needed testing code, and the code still passes all tests for
+the project then the branch is
+ready to be merged back into the trunk.<br />
+
+&nbsp;&nbsp;&nbsp; Release branches are points of code development
+where it has been tested, prepaired, and packaged as a step forward for
+the project.<br />
+
+<br />
+
+<h2>SVN policies of this project:</h2>
+
+<ol>
+
+ <li>all svn commits should have comments/log entries. (prefereably
+identifying each file that was altered and in laymen terms what was
+changed in that file)</li>
+ <li>the keyword Id should be included in a comment in every file (do
+not forget to set the svn:keywords property on the file too.)</li>
+ <li>/branches/release-N.N.N will be official releases of the project</li>
+ <li>experemental branches are encouraged when <strong><em>any or all</em></strong><span style="font-weight: bold;"> </span>of the following
+is true:
+ <table style="text-align: left; width: 618px; margin-left: 34px;" border="1" cellpadding="2" cellspacing="2">
+ <tbody>
+ <tr>
+ <td style="vertical-align: top; width: 516px;">the
+development effort will
+take more than one commit to achieve</td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top; width: 516px;">the change is
+likely to
+break any backwards compatibility in
+the current/previous release</td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top; width: 516px;">automated
+testing failed,
+or the changes are not yet covered by
+automated testing</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>code in compiled form should not be in SVN unless it is <strong><em>at
+least one</em></strong> of the following:
+ <table style="text-align: left; width: 618px; margin-left: 34px;" border="1" cellpadding="2" cellspacing="2">
+ <tbody>
+ <tr>
+ <td style="vertical-align: top; width: 529px;">an outside
+library that is
+included for simplicity/compatibility (best done with a <span class="sect1"><a href="http://svnbook.red-bean.com/en/1.5/svn.advanced.vendorbr.html">Vendor
+Branch</a>)</span></td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top; width: 529px;">it is in a
+packaged release for the
+project</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li>All new features developed must include automated testing code to
+validate the function.The tests should be constructed in accordance with the format and approach that
+the project is using for automated testing.<br />
+ </li>
+</ol>
+
+<h2>More general SVN references:</h2>
+
+<ul>
+
+ <li><a href="http://svnbook.red-bean.com/">Version Control with
+Subversion</a></li>
+ <li><a href="http://en.wikipedia.org/wiki/Subversion_%28software%29">wikipedia</a><a href="http://aymanh.com/subversion-a-quick-tutorial"><span style="font-weight: bold;" /></a></li>
+ <li><a href="http://aymanh.com/subversion-a-quick-tutorial"><span style="font-weight: bold;">Subversion - A Quick Tutorial</span></a></li>
+</ul>
+
+<p><br />
+</p>
+
+</body></html> \ No newline at end of file
diff --git a/roombacomm-client/docs/ToDo.html b/roombacomm-client/docs/ToDo.html
new file mode 100644
index 0000000..c1e6125
--- /dev/null
+++ b/roombacomm-client/docs/ToDo.html
@@ -0,0 +1,121 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <title>To Do</title>
+ <style>
+ /* added the "done" class to mark what was completed */
+ .done {
+ color: green;
+ }
+ /* added the "help" class to mark what need more information */
+ .help{
+ color: red;
+ }
+ </style>
+</head>
+<body>
+<h1>TO
+Do for 0.97 Release</h1>
+<h2>MUST (we will hold shipment
+for these)</h2>
+<ul>
+ <li>GUI
+needs to have symbol/icon for LED buttons
+ <ul>
+ <li class="help">Spot will become ____</li>
+ <li class="help">Clean will become ____</li>
+ <li class="help">Dirt will become ____</li>
+ <li class="help">Max will become ____</li>
+ <li class="help">Doc (D rotated) will become ____</li>
+ <li class="help">CheckRobot (C rotated) will become ____</li>
+ <li class="done">top line(None-green-red-orange) Only visible for
+400(SCI)</li>
+ <li class="done">Bottom line (Dock and Checkrobot) Only visible
+for 500 (OI)</li>
+ </ul>
+ </li>
+ <li>Check in web GUI into TOT &amp; make it work/build</li>
+ <li>Update web app interface to include network IP connection &amp;
+make web GUI match functionality of roombacomm GUI</li>
+ <li>Rename bsquare to something better </li>
+ <li>Put ser2net into the tree (subject to licensing)<br>
+ <font class="help">What is the licensing question here?</font></li>
+ <li>make ant build the tree, make a build &amp; a doc target &amp; an
+install target (does what the build script used to do)</li>
+ <li>make the dummy's buildit/makeit shell scripts &amp; put them in
+the right directory both for source control &amp; for distribution</li>
+ <li>restructure TOT to a new directory structure that&rsquo;s
+documented &amp; standard </li>
+ <li>Merge changes from JMP097Working to TOT</li>
+</ul>
+<h3>Docs</h3>
+<ul>
+ <li>Create readme for svn &amp; eclipse </li>
+ <li>fix copyrights <br>
+ <font class="help">What should the copyrights be? Can someone put
+the standard info into this doc?</font></li>
+ <li>make docs into hyperlinked html files </li>
+ <li>document how to set up apache to make the web server work </li>
+ <li>document how to make ser2net work as a network server on a router
+(how to build/run) </li>
+ <li>document the new directory structure</li>
+</ul>
+<h2>HI-WANT (we plan to put these in, but priorities may intercede) </h2>
+<ul>
+ <li>Make BumpTurn &amp; others commandline programs work over the
+network</li>
+ <li>Make front bumper press stop the roomba's motors when driving in
+controlled mode. </li>
+ <li>make javadocs &amp; link into doc system </li>
+ <li>Get permission to bundle MyGUI with this package, or document
+where it can be found. Bundle it into the zip file</li>
+</ul>
+<h2>WANT (these are desirable and will be worked on opportunistically)</h2>
+<ul>
+ <li>First time after poweron, the LEDs flash but don't stay on. Fix
+it. (sometime, not necessarily for 0.97)</li>
+ <li>Add Motor exerciser panel to RoombacommGui</li>
+ <li>Make it so the model of roomba can be discovered (400 vs. 500
+family, &amp; maybe sub-models within the family)</li>
+ <li>move connection settings in roombacommGUI to its own dialog</li>
+ <li>Fill out the the sensor numbers/groups for 5xx models, &amp;
+develop masks &amp; figure out the corresponding reply length for the
+extra groups, and for querylist (sometime, not necessarily for
+0.97)</li>
+ <li>Implement failsafe in ser2net or shell script on router</li>
+ <li>Make roombasrvr able to serve the serial connection</li>
+ <li>Evaluate additional API capabilities that Roombacomm should maybe
+support, such as other sensor reading modes (querylist, stream),
+scheduling capability or others </li>
+ <li>Request permission from iRobot to publish the OI spec in the
+release&nbsp;</li>
+ <li>Fix net folder under roombacomm root - it won't build</li>
+ <li>&nbsp;Fill out the the sensor numbers/groups for 5xx models,
+&amp; develop masks &amp; figure out the corresponding reply length for
+the extra groups, and for querylist</li>
+ <li>First time after poweron, the LEDs flash but don't stay on. Fix
+it.</li>
+</ul>
+<h3>VERIFY (these are thought to be complete but need checking)</h3>
+<ul>
+ <li>Change the GUI to deal with with smaller screens<br>
+We have some users
+running it on netbooks. Looking at the specs, seems they may have a
+display as low as 1024x600 resolution. This does not leave room for the
+task bar. So I think a version that is 480 height would make sense,
+allowing for title-bar height etc, but width can be wider than 640 if
+you want. </li>
+ <li>Maybe move to some command line options for GUI layout
+ <ul>
+ <li>--GUI=1024x768 or --GUI=640x480</li>
+ <li>--GUI=NNNxYYY (support of variable values?)</li>
+ </ul>
+ </li>
+ <li>Update Power LEDS for 500 series, also make the sliders work the
+power leds in realtime. Paul thinks it works - what's broken?</li>
+ <li>Update roombacmd - change baud rate to SCI/OI </li>
+ <li>fix bug in simpletest on router if no parameters are given.</li>
+ <li>Verify that roombacomm doesn't exit if there are no serial ports </li>
+</ul>
+</body>
+</html>