I installed RobotinoAPI2 and I want to programm the robotino using java.
I am able to compile the examples but I am not able to connect to a robotino :neither physically to a robotino nor to robotinoSimDemo.
It give me a "java.lang.RuntimeException: the connection has been refused"
Below the core code I used.
Can someone give me a hint ?
Thanks
------------------------
import java.util.ArrayList;
import java.util.List;
import java.util.TimerTask;
import java.util.Timer;
import rec.robotino.api2.Bumper;
import rec.robotino.api2.Com;
import rec.robotino.api2.OmniDrive;
import rec.robotino.api2.DistanceSensor;
/**
* Write a description of class Robot here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Robot
{
// instance variables - replace the example below with your own
protected final Com _com;
protected final OmniDrive _omniDrive;
protected final Bumper _bumper;
protected final List<DistanceSensor> _distanceSensors;
protected final float SLOW_VELOCITY = 0.08f;
protected final float MEDIUM_VELOCITY = 0.16f;
protected final float VELOCITY = 0.24f;
protected final float FAST_VELOCITY = 0.32f;
protected final float ANGULARVELOCITY = 0.02f;
/**
* Constructor for objects of class Robot
*/
public Robot()
{
//_com = new MyCom();
_com = new Com();
_omniDrive = new OmniDrive();
_bumper = new Bumper();
_distanceSensors = new ArrayList<DistanceSensor>();
init();
}
/**
* An example of a method - replace this comment with your own
*
* @param y a sample parameter for a method
* @return the sum of x and y
*/
private void init()
{
_omniDrive.setComId(_com.id());
_bumper.setComId(_com.id());
for(int i=0; i<9; ++i)
{
DistanceSensor s = new DistanceSensor();
s.setSensorNumber(i);
s.setComId(_com.id());
_distanceSensors.add(s);
}
}
public boolean isConnected()
{
return _com.isConnected();
}
public void connect(String hostname, boolean block)
{
System.out.println("Connecting...");
_com.setAddress( hostname );
_com.connectToServer(block);
}
/**
* The class MyCom derives from rec.robotino.api2.Com and implements some of the virtual event handling methods.
* This is the standard approach for handling these Events.
*/
class MyCom extends Com
{
Timer _timer;
public MyCom()
{
_timer = new Timer();
_timer.scheduleAtFixedRate(new OnTimeOut(), 0, 20);
}
class OnTimeOut extends TimerTask
{
public void run()
{
processEvents();
}
}
@Override
public void connectedEvent()
{
System.out.println( "Connected" );
}
@Override
public void errorEvent(String errorStr)
{
System.err.println( "Error: " + errorStr );
}
@Override
public void connectionClosedEvent()
{
System.out.println( "Disconnected" );
}
}
public static void main(String[] args)
{
//String hostname = "172.26.1.6";
String hostname = "127.0.0.1:8081";
if( args.length == 1)
{
hostname = args[0].toString();
}
Robot robotino = new Robot();
System.out.println("C'est parti");
try
{
robotino.connect(hostname, true);
// robotino.followWalls();
// robotino.disconnect();
}
catch (Exception e)
{
System.out.println(e.toString());
}
}
}
I am able to compile the examples but I am not able to connect to a robotino :neither physically to a robotino nor to robotinoSimDemo.
It give me a "java.lang.RuntimeException: the connection has been refused"
Below the core code I used.
Can someone give me a hint ?
Thanks
------------------------
import java.util.ArrayList;
import java.util.List;
import java.util.TimerTask;
import java.util.Timer;
import rec.robotino.api2.Bumper;
import rec.robotino.api2.Com;
import rec.robotino.api2.OmniDrive;
import rec.robotino.api2.DistanceSensor;
/**
* Write a description of class Robot here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Robot
{
// instance variables - replace the example below with your own
protected final Com _com;
protected final OmniDrive _omniDrive;
protected final Bumper _bumper;
protected final List<DistanceSensor> _distanceSensors;
protected final float SLOW_VELOCITY = 0.08f;
protected final float MEDIUM_VELOCITY = 0.16f;
protected final float VELOCITY = 0.24f;
protected final float FAST_VELOCITY = 0.32f;
protected final float ANGULARVELOCITY = 0.02f;
/**
* Constructor for objects of class Robot
*/
public Robot()
{
//_com = new MyCom();
_com = new Com();
_omniDrive = new OmniDrive();
_bumper = new Bumper();
_distanceSensors = new ArrayList<DistanceSensor>();
init();
}
/**
* An example of a method - replace this comment with your own
*
* @param y a sample parameter for a method
* @return the sum of x and y
*/
private void init()
{
_omniDrive.setComId(_com.id());
_bumper.setComId(_com.id());
for(int i=0; i<9; ++i)
{
DistanceSensor s = new DistanceSensor();
s.setSensorNumber(i);
s.setComId(_com.id());
_distanceSensors.add(s);
}
}
public boolean isConnected()
{
return _com.isConnected();
}
public void connect(String hostname, boolean block)
{
System.out.println("Connecting...");
_com.setAddress( hostname );
_com.connectToServer(block);
}
/**
* The class MyCom derives from rec.robotino.api2.Com and implements some of the virtual event handling methods.
* This is the standard approach for handling these Events.
*/
class MyCom extends Com
{
Timer _timer;
public MyCom()
{
_timer = new Timer();
_timer.scheduleAtFixedRate(new OnTimeOut(), 0, 20);
}
class OnTimeOut extends TimerTask
{
public void run()
{
processEvents();
}
}
@Override
public void connectedEvent()
{
System.out.println( "Connected" );
}
@Override
public void errorEvent(String errorStr)
{
System.err.println( "Error: " + errorStr );
}
@Override
public void connectionClosedEvent()
{
System.out.println( "Disconnected" );
}
}
public static void main(String[] args)
{
//String hostname = "172.26.1.6";
String hostname = "127.0.0.1:8081";
if( args.length == 1)
{
hostname = args[0].toString();
}
Robot robotino = new Robot();
System.out.println("C'est parti");
try
{
robotino.connect(hostname, true);
// robotino.followWalls();
// robotino.disconnect();
}
catch (Exception e)
{
System.out.println(e.toString());
}
}
}
Comment