= Development Environment =

See [wiki:BuildingDevelopmentEnvironment Building Development Environment] for setting up the environment.
 
The rUNSWift development environment opens a TCP connection for communicating with the robot. The development tools listen on a number of TCP ports to accept data from the robot (e.g. CPlane display, world model) via the client program. The client program (in base/work/client) connects to the ports on both the robot and the development tools and ferrys data between them. Data from the robot is multiplexed over one or two streams.

{{{
      |                 ] CPlane
      |                 |
      |                 |
 AIBO [  <- client ->   ] SimpleRoboCommander
      |                 |
      |                 |
      |                 ] World Model
}}}

The robot and all the displays (SimpleRoboCommander, CPlane, world model) on your machine must be running before you run client.

{{{
Usage: client [vhrcygdf] [[IP_postfix_1] [IP_postfix_2] ...]
    first argument are commands enabling sockets (except 'v'):
        v = verbose mode
        h = humanControl (local port: 5102)
        r = roboCommander (5005)
        c = cplane (5010)
        y = yuvPlane (5011)
        g = grapher (5014)
        d = debug (5015)
        f = frameRate (5006)
    if no IP postfix is specified, they will be read from 'conf.cfg'.
}}}
Example 1:
        {{{./client vrc 138 139}}}?BR
        turns on verbose mode,?BR
        enables sockets roboCommander and cplane,?BR
        and specifies dog IP 192.168.0.138 and 192.168.0.139?BR
        with default port number 54321.?BR

Example 2:
        {{{./client hr}}}?BR
        enables sockets humanControl and roboCommander,?BR
        reads robot numbers, IPs and port number from 'conf.cfg'.?BR
Note:   Max player number is 4.

1. [wiki:telnet Telnet]
You can telnet to a booted AIBO on port 59000.

2. SimpleRoboCommander (Python 2004 version)
Run {{{./ClientServer.py from base/SimpleRoboCommander}}}

3. RoboCommander (Java 2003 version)
   3.1 WorldModel
   3.2 CPlaneDisplay
   3.3 RoboYUVDisplay

4. Debug head indicators

5. Memory stick stack trace if hardware crash 
   5.1 SimpleEmonParse 
   5.2 Griffth team's StackTrace

See: [wiki:JavaTools Java Tools]