Page 125 - Hacking Roomba
P. 125
106 Part I — Interfacing
Listing 5-6 Continued
if( !roombacomm.connect(portname) ) {
System.out.println(“Couldn’t connect to “+portname);
System.exit(1);
}
roombacomm.startup();
roombacomm.control();
roombacomm.pause(50);
setupWindow();
}
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
if( keyCode == KeyEvent.VK_SPACE ) {
updateDisplay(“stop”);
roombacomm.stop();
}
else if( keyCode == KeyEvent.VK_UP ) {
updateDisplay(“forward”);
roombacomm.goForward();
}
else if( keyCode == KeyEvent.VK_DOWN ) {
updateDisplay(“backward”);
roombacomm.goBackward();
}
else if( keyCode == KeyEvent.VK_LEFT ) {
updateDisplay(“spin left”);
roombacomm.spinLeft();
}
else if( keyCode == KeyEvent.VK_RIGHT ) {
updateDisplay(“spin right”);
roombacomm.spinRight();
}
}
public void updateDisplay( String s ) {
displayText.append( s+”\n” );
}
public void setupWindow() {
displayText = new JTextArea(20,30);
displayText.setLineWrap(true);
displayText.setEditable(false);
displayText.addKeyListener(this);
JScrollPane scrollPane = new JScrollPane(displayText,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
Container content = getContentPane();
content.add(scrollPane, BorderLayout.CENTER);
addKeyListener(this);