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);
   120   121   122   123   124   125   126   127   128   129   130