📄 registermanager.java
字号:
/* * Copyright (c) 2003, Vanderbilt University * 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 VANDERBILT UNIVERSITY 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 VANDERBILT * UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * THE VANDERBILT UNIVERSITY 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 VANDERBILT UNIVERSITY HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. */package net.tinyos.mcenter;import net.tinyos.packet.PacketListenerIF;/** * * @author nadand */public class RegisterManager extends /*javax.swing.JInternalFrame*/MessageCenterInternalFrame implements PacketListenerIF{ private final int registerCount = 16; private byte[] registerSpace; private int[] registerAddress= {0xd300,0xd310,0xd320,0xd330}; private int moteAddress = 0xffff; private boolean broadcastEnabled = false; private byte[] sendPacket; private java.util.HashSet changes = new java.util.HashSet(); private String[] headTitles; private javax.swing.JTable generalTable; private javax.swing.JTable channelATable; private javax.swing.JTable channelBTable; private javax.swing.JTable channelCTable; private RegisterReaderThread sendThread; private int radioDelay = 500; private static final int READ_REPLY = 0x10; private static final int READ_REQ = 0x11; private static final int WRITE_REQ = 0x12; private static final int SHOT_DETECTED = 0x13; private static final int MAX_SEQ = 0x600; /** Creates new form RegisterManager */ public RegisterManager() { super("Register Manager"); registerSpace = new byte[registerCount*4]; generateTitle(); initPacket(); initComponents(); generalTable = new javax.swing.JTable(new RegisterTableModel(0)); channelATable = new javax.swing.JTable(new RegisterTableModel(registerCount)); channelBTable = new javax.swing.JTable(new RegisterTableModel(2*registerCount)); channelCTable = new javax.swing.JTable(new RegisterTableModel(3*registerCount)); generalScrollPane.setViewportView(generalTable); channelAScrollPane.setViewportView(channelATable); channelBScrollPane.setViewportView(channelBTable); channelCScrollPane.setViewportView(channelCTable); SerialConnector.instance().registerPacketListener(this,READ_REPLY); } private void generateTitle(){ headTitles = new String[registerCount]; for(int i =0; i < registerCount; i++){ headTitles[i] = "0x"+Integer.toString(i,16).toUpperCase(); } } private void initPacket(){ sendPacket = new byte[SerialConnector.instance().getMsgLength()]; sendPacket[0] = (byte)0xff; // Destination address low byte sendPacket[1] = (byte)0xff; // Destination address high byte sendPacket[2] = (byte)READ_REQ; // Type = AM_READ_REQ sendPacket[3] = (byte)0x7d; // Group ID sendPacket[4] = (byte)4; // Length of payload } /** 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 java.awt.GridBagConstraints gridBagConstraints; jPanel1 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); generalScrollPane = new javax.swing.JScrollPane(); jLabel2 = new javax.swing.JLabel(); channelAScrollPane = new javax.swing.JScrollPane(); jLabel3 = new javax.swing.JLabel(); channelBScrollPane = new javax.swing.JScrollPane(); jLabel4 = new javax.swing.JLabel(); channelCScrollPane = new javax.swing.JScrollPane(); jPanel2 = new javax.swing.JPanel(); readButton = new javax.swing.JButton(); bcastCheckBox = new javax.swing.JCheckBox(); writeButton = new javax.swing.JButton(); jPanel3 = new javax.swing.JPanel(); moteLabel = new javax.swing.JLabel(); moteTextField = new javax.swing.JTextField(); radioDelayCheckBox = new javax.swing.JCheckBox(); getContentPane().setLayout(new java.awt.GridBagLayout()); jPanel1.setLayout(new java.awt.GridBagLayout()); jLabel1.setText("Genaral Registers"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.ipady = 8; gridBagConstraints.weightx = 1.0; jPanel1.add(jLabel1, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; jPanel1.add(generalScrollPane, gridBagConstraints); jLabel2.setText("Channel A Registers"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.ipady = 8; gridBagConstraints.weightx = 1.0; jPanel1.add(jLabel2, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; jPanel1.add(channelAScrollPane, gridBagConstraints); jLabel3.setText("Channel B Registers"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.ipady = 8; gridBagConstraints.weightx = 1.0; jPanel1.add(jLabel3, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; jPanel1.add(channelBScrollPane, gridBagConstraints); jLabel4.setText("Channel C Registers"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.ipady = 8; jPanel1.add(jLabel4, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; jPanel1.add(channelCScrollPane, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; getContentPane().add(jPanel1, gridBagConstraints); jPanel2.setLayout(new java.awt.GridBagLayout()); readButton.setText("Read Registers"); readButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { readButtonActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.weightx = 1.0; jPanel2.add(readButton, gridBagConstraints); bcastCheckBox.setText("to All"); bcastCheckBox.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { bcastCheckBoxItemStateChanged(evt); } }); jPanel2.add(bcastCheckBox, new java.awt.GridBagConstraints()); writeButton.setText("Write Changes"); writeButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { writeButtonActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.weightx = 1.0; jPanel2.add(writeButton, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weighty = 0.2; getContentPane().add(jPanel2, gridBagConstraints); jPanel3.setLayout(new java.awt.GridBagLayout()); jPanel3.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0))); moteLabel.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); moteLabel.setText("Mote ID"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.weightx = 1.0; jPanel3.add(moteLabel, gridBagConstraints); moteTextField.setText("0xFFFF"); moteTextField.setMinimumSize(new java.awt.Dimension(80, 20)); moteTextField.setPreferredSize(new java.awt.Dimension(80, 20)); moteTextField.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { moteTextFieldActionPerformed(evt); } }); moteTextField.addFocusListener(new java.awt.event.FocusAdapter() { public void focusLost(java.awt.event.FocusEvent evt) { moteTextFieldFocusLost(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; jPanel3.add(moteTextField, gridBagConstraints); radioDelayCheckBox.setSelected(true); radioDelayCheckBox.setText("Radio delay"); radioDelayCheckBox.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { radioDelayCheckBoxItemStateChanged(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.weightx = 3.0; jPanel3.add(radioDelayCheckBox, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weighty = 0.1; getContentPane().add(jPanel3, gridBagConstraints); pack(); java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -