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 + -
显示快捷键?