robotcmdgui.java

来自「tinyos最新版」· Java 代码 · 共 1,051 行 · 第 1/3 页

JAVA
1,051
字号
/*									tab:4 * * * "Copyright (c) 2002 and The Regents of the University  * of California.  All rights reserved. * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose, without fee, and without written agreement is * hereby granted, provided that the above copyright notice, the following * two paragraphs and the author appear in all copies of this software. *  * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *  * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS." * *//** * File: RobotCmdGUI.java * * Description: * RobotCmdGUI provides a GUI interface to RobotCmd.  RobotCmd will send TinyOS * packets over the base station.  These commands are then re-packaged on the  * micamote and sent to the MotorBoard. * * @author written by Sarah Bergbreiter and mig-ified by Phoebus Chen *  * Created on August 10, 2002, 12:26 AM * Last Modified: 2/2/2003 */package RobotCmd;import net.tinyos.util.*;import net.tinyos.message.*;import java.io.*;public class RobotCmdGUI extends javax.swing.JFrame implements MessageListener {    /*Constants for Commands or Reading-Types included in RC.java */    /* Mote Communication Variable */    private MoteIF mote;        /** Creates new form RobotCmd */    public RobotCmdGUI(int groupID) {        initComponents();        /* Set up mote communication */        try {	  mote = new MoteIF(PrintStreamMessenger.err, groupID);	  mote.registerListener(new RobotCmdMsg(), this);	  //mote.start();	} catch(Exception e){	  e.printStackTrace();	  System.err.println("\t");          System.err.println("\tSerialForwarder must be opened first!");	  System.exit(-1);  //should this be a system exit?	}    }        /** This method is called from within the constructor to     * initialize the form.     * WARNING: Do NOT modify this code. The content of this method is     * always regenerated by the Form Editor.     */    private void initComponents() {//GEN-BEGIN:initComponents        topPanel = new javax.swing.JPanel();        jTabbedPane1 = new javax.swing.JTabbedPane();        carControlPanel = new javax.swing.JPanel();        speedPanel = new javax.swing.JPanel();        speedSlider = new javax.swing.JSlider();        spacerLabel1 = new javax.swing.JLabel();        offButton = new javax.swing.JButton();        spacerLabel11 = new javax.swing.JLabel();        turnPanel = new javax.swing.JPanel();        turnSlider = new javax.swing.JSlider();        spacerLabel12 = new javax.swing.JLabel();        straightButton = new javax.swing.JButton();        spacerLabel13 = new javax.swing.JLabel();        dirPanel = new javax.swing.JPanel();        forwardButton = new javax.swing.JButton();        reverseButton = new javax.swing.JButton();        navPanel = new javax.swing.JPanel();        navDirText = new javax.swing.JTextArea();        navDataPanel = new javax.swing.JPanel();        x1Label = new javax.swing.JLabel();        x1Field = new javax.swing.JTextField();        y1Label = new javax.swing.JLabel();        y1Field = new javax.swing.JTextField();        piNumLabel = new javax.swing.JLabel();        piNumField = new javax.swing.JTextField();        piDenLabel = new javax.swing.JLabel();        piDenField = new javax.swing.JTextField();        x2Label = new javax.swing.JLabel();        x2Field = new javax.swing.JTextField();        y2Label = new javax.swing.JLabel();        y2Field = new javax.swing.JTextField();        navigateButtonPanel = new javax.swing.JPanel();        navigateButton = new javax.swing.JButton();        figure8Panel = new javax.swing.JPanel();        fig8CtlPanel = new javax.swing.JPanel();        startFig8Button = new javax.swing.JButton();        stopFig8Button = new javax.swing.JButton();        fig8CalibPanel = new javax.swing.JPanel();        fig8CalibButtonPanel = new javax.swing.JPanel();        fig8SpeedButton = new javax.swing.JButton();        fig8SpeedField = new javax.swing.JTextField();        fig8Turn1Button = new javax.swing.JButton();        fig8Turn1Field = new javax.swing.JTextField();        fig8Turn2Button = new javax.swing.JButton();        fig8Turn2Field = new javax.swing.JTextField();        fig8Turn3Button = new javax.swing.JButton();        fig8Turn3Field = new javax.swing.JTextField();        fig8Turn4Button = new javax.swing.JButton();        fig8Turn4Field = new javax.swing.JTextField();        jLabel1 = new javax.swing.JLabel();        servoPanel = new javax.swing.JPanel();        straightPanel = new javax.swing.JPanel();        getStraightButton = new javax.swing.JButton();        getStraightLabel = new javax.swing.JLabel();        setStraightButton = new javax.swing.JButton();        setStraightField = new javax.swing.JTextField();        kPanel = new javax.swing.JPanel();        getConstantsButton = new javax.swing.JButton();        getConstantsField = new javax.swing.JLabel();        setKpButton = new javax.swing.JButton();        setKpField = new javax.swing.JTextField();        setKiButton = new javax.swing.JButton();        setKiField = new javax.swing.JTextField();        speed2Panel = new javax.swing.JPanel();        jPanel1 = new javax.swing.JPanel();        turn2Slider = new javax.swing.JSlider();        straight2Button = new javax.swing.JButton();        jPanel2 = new javax.swing.JPanel();        forward50Button = new javax.swing.JButton();        reverse60Button = new javax.swing.JButton();        off2Button = new javax.swing.JButton();        otherPanel = new javax.swing.JPanel();        ledPanel = new javax.swing.JPanel();        micaLEDButton = new javax.swing.JButton();        motorLEDButton = new javax.swing.JButton();        motorTestPanel = new javax.swing.JPanel();        startMotorTestButton = new javax.swing.JButton();        stopMotorTestButton = new javax.swing.JButton();        jScrollPane1 = new javax.swing.JScrollPane();        msgArea = new javax.swing.JTextArea();        navigationPanel1 = new NavigationPanel();        addWindowListener(new java.awt.event.WindowAdapter() {            public void windowClosing(java.awt.event.WindowEvent evt) {                exitForm(evt);            }        });	setTitle("Robot Command GUI");        topPanel.setLayout(new javax.swing.BoxLayout(topPanel, javax.swing.BoxLayout.X_AXIS));        jTabbedPane1.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(10, 10, 10, 10)));        carControlPanel.setLayout(new java.awt.GridLayout(3, 1));        carControlPanel.setToolTipText("Controlling the Robot Remotely");        speedPanel.setLayout(new javax.swing.BoxLayout(speedPanel, javax.swing.BoxLayout.X_AXIS));        speedPanel.setBorder(new javax.swing.border.TitledBorder("Speed (0-255)"));        speedSlider.setMinorTickSpacing(10);        speedSlider.setPaintLabels(true);        speedSlider.setPaintTicks(true);        speedSlider.setMajorTickSpacing(50);        speedSlider.setMaximum(250);        speedSlider.addChangeListener(new javax.swing.event.ChangeListener() {            public void stateChanged(javax.swing.event.ChangeEvent evt) {                speedSliderStateChanged(evt);            }        });        speedSlider.addKeyListener(new java.awt.event.KeyAdapter() {            public void keyReleased(java.awt.event.KeyEvent evt) {                speedSliderKeyReleased(evt);            }        });        speedSlider.addMouseListener(new java.awt.event.MouseAdapter() {            public void mouseReleased(java.awt.event.MouseEvent evt) {                speedSliderMouseReleased(evt);            }        });        speedPanel.add(speedSlider);        spacerLabel1.setText("        ");        speedPanel.add(spacerLabel1);        offButton.setText("OFF");        offButton.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                offButtonActionPerformed(evt);            }        });        speedPanel.add(offButton);        spacerLabel11.setText("        ");        speedPanel.add(spacerLabel11);        carControlPanel.add(speedPanel);        turnPanel.setLayout(new javax.swing.BoxLayout(turnPanel, javax.swing.BoxLayout.X_AXIS));        turnPanel.setBorder(new javax.swing.border.TitledBorder("Turn (0-60, 30=straight)"));        turnSlider.setMinorTickSpacing(5);        turnSlider.setPaintLabels(true);        turnSlider.setPaintTicks(true);        turnSlider.setMajorTickSpacing(10);        turnSlider.setMaximum(60);        turnSlider.setValue(30);        turnSlider.addChangeListener(new javax.swing.event.ChangeListener() {            public void stateChanged(javax.swing.event.ChangeEvent evt) {                turnSliderStateChanged(evt);            }        });        turnSlider.addKeyListener(new java.awt.event.KeyAdapter() {            public void keyReleased(java.awt.event.KeyEvent evt) {                turnSliderKeyReleased(evt);            }        });        turnSlider.addMouseListener(new java.awt.event.MouseAdapter() {            public void mouseReleased(java.awt.event.MouseEvent evt) {                turnSliderMouseReleased(evt);            }        });        turnPanel.add(turnSlider);        spacerLabel12.setText("        ");        turnPanel.add(spacerLabel12);        straightButton.setText("STRAIGHT");        straightButton.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                straightButtonActionPerformed(evt);            }        });        turnPanel.add(straightButton);        spacerLabel13.setText("        ");        turnPanel.add(spacerLabel13);        carControlPanel.add(turnPanel);        dirPanel.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 30, 20));        dirPanel.setBorder(new javax.swing.border.TitledBorder("Direction"));        forwardButton.setText("FORWARD");        forwardButton.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                forwardButtonActionPerformed(evt);            }        });        dirPanel.add(forwardButton);        reverseButton.setText("REVERSE");        reverseButton.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                reverseButtonActionPerformed(evt);            }        });        dirPanel.add(reverseButton);        carControlPanel.add(dirPanel);        jTabbedPane1.addTab("Car Control", carControlPanel);        navPanel.setLayout(new javax.swing.BoxLayout(navPanel, javax.swing.BoxLayout.Y_AXIS));        navPanel.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(5, 5, 5, 5)));        navPanel.setToolTipText("Send Navigation Messages");        navDirText.setLineWrap(true);        navDirText.setText("Directions: \nEnter the robot's current location in cm in (x1,y1).\nEnter the robot's current heading as (Num*PI/Den).\nEnter the position the robot should navigate to in (x2,y2).");        navDirText.setBackground((java.awt.Color) javax.swing.UIManager.getDefaults().get("Panel.background"));        navPanel.add(navDirText);        navDataPanel.setLayout(new java.awt.GridLayout(3, 4, 15, 10));        navDataPanel.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(10, 10, 10, 10)));        x1Label.setText("    x1:");        x1Label.setFont(new java.awt.Font("Dialog", 1, 14));        navDataPanel.add(x1Label);        x1Field.setText("0");        navDataPanel.add(x1Field);        y1Label.setText("    y1:");        y1Label.setFont(new java.awt.Font("Dialog", 1, 14));        navDataPanel.add(y1Label);        y1Field.setText("0");        navDataPanel.add(y1Field);        piNumLabel.setText("Num:");        piNumLabel.setFont(new java.awt.Font("Dialog", 1, 14));        navDataPanel.add(piNumLabel);        piNumField.setText("1");        navDataPanel.add(piNumField);        piDenLabel.setText("Den:");        piDenLabel.setFont(new java.awt.Font("Dialog", 1, 14));        navDataPanel.add(piDenLabel);        piDenField.setText("2");        navDataPanel.add(piDenField);        x2Label.setText("    x2:");        x2Label.setFont(new java.awt.Font("Dialog", 1, 14));        navDataPanel.add(x2Label);        x2Field.setText("70");        navDataPanel.add(x2Field);        y2Label.setText("    y2:");        y2Label.setFont(new java.awt.Font("Dialog", 1, 14));        navDataPanel.add(y2Label);        y2Field.setText("70");        navDataPanel.add(y2Field);        navPanel.add(navDataPanel);        navigateButton.setText("Navigate!");        navigateButton.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                navigateButtonActionPerformed(evt);            }        });        navigateButtonPanel.add(navigateButton);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?