⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bigmsgdisplay.java

📁 无线通信的主要编程软件,是无线通信工作人员的必备工具,关天相关教程我会在后续传上.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;        subPanel.add(jButton1, gridBagConstraints);        getContentPane().add(subPanel, java.awt.BorderLayout.SOUTH);        pack();    }//GEN-END:initComponents    private void typeTextFieldFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_typeTextFieldFocusLost        // Add your handling code here:    }//GEN-LAST:event_typeTextFieldFocusLost        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed        javax.swing.JFileChooser chooser = new javax.swing.JFileChooser();        chooser.setDialogTitle("Choose Directory to save");        int returnVal = chooser.showSaveDialog(this);        if(returnVal == javax.swing.JFileChooser.APPROVE_OPTION) {            saveFile = chooser.getSelectedFile();            jTextField1.setText(saveFile.getName());        }            }//GEN-LAST:event_jButton1ActionPerformed        private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField1ActionPerformed        typeTextFieldActionPerformed(null);    }//GEN-LAST:event_jTextField1ActionPerformed        private void saveCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_saveCheckBoxItemStateChanged        try{            if (evt.getStateChange() == java.awt.event.ItemEvent.SELECTED) {                jButton1.setEnabled(false);                fileOut = new java.io.FileOutputStream(saveFile);                out = new java.io.PrintWriter(fileOut);                            } else if(evt.getStateChange() == java.awt.event.ItemEvent.DESELECTED) {                jButton1.setEnabled(true);                fileOut=null;                out = null;            }        }catch(java.io.FileNotFoundException fnfe){        }    }//GEN-LAST:event_saveCheckBoxItemStateChanged        private void typeTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_typeTextFieldActionPerformed        try{            String arg = typeTextField.getText();            if( !arg.toUpperCase().startsWith("0X") ) {                typeTextField.setText("0X"+Integer.toHexString(activeMessage));                arg = typeTextField.getText();            }            SerialConnector.instance().removePacketListener(this,activeMessage);            activeMessage =(byte)Integer.parseInt(arg.substring(2), 16) ;                        SerialConnector.instance().registerPacketListener(this,activeMessage);            prefs.putInt("ActiveMessage",activeMessage);        }catch(java.lang.NumberFormatException nfe){            System.err.println("Cannot parse type field: "+nfe.getMessage());        }            }//GEN-LAST:event_typeTextFieldActionPerformed        private void timestampCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_timestampCheckBoxItemStateChanged        if (evt.getStateChange() == java.awt.event.ItemEvent.SELECTED) {            timestamp = new java.text.SimpleDateFormat("HH:mm:ss.SSSS");        } else if(evt.getStateChange() == java.awt.event.ItemEvent.DESELECTED) {            timestamp = null;        }    }//GEN-LAST:event_timestampCheckBoxItemStateChanged        private void noidCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_noidCheckBoxItemStateChanged        if (evt.getStateChange() == java.awt.event.ItemEvent.SELECTED) {            supressId = true;        } else if(evt.getStateChange() == java.awt.event.ItemEvent.DESELECTED) {            supressId = false;        }    }//GEN-LAST:event_noidCheckBoxItemStateChanged        static protected class BigMsg {        int lastSeqNum;        int nextPosition;        byte[] packet;    }        protected HashMap bigMsgs = new HashMap();        static final int PACKET_TYPE_FIELD = 2;    static final int PACKET_LENGTH_FIELD = 4;    static final int PACKET_SOURCE = 5;    static final int PACKET_SEQNUM = 7;    static final int PACKET_DATA = 8;        // the first 5 bytes are: addr(2), type(1), group(1), length(1)    public void packetReceived(byte[] packet) {        if( packet[PACKET_TYPE_FIELD] != activeMessage )            return;                byte len = packet[PACKET_LENGTH_FIELD];        int source = getShort(packet[PACKET_SOURCE], packet[PACKET_SOURCE+1]);        int seqNum = packet[PACKET_SEQNUM] & 0xFF;                // wrong format        if( len < 4 || PACKET_SOURCE + len > packet.length )            return;        len -= 3;	// omit the source and seqnum fields                byte[] data = new byte[len];        System.arraycopy(packet, PACKET_DATA, data, 0, len);                BigMsg bigMsg;        if( seqNum == 0 ) {            bigMsgs.remove(new Integer(source));                        bigMsg = new BigMsg();            bigMsg.lastSeqNum = 0;            bigMsg.packet = new byte[getShort(data[0], data[1])];            bigMsg.nextPosition = data.length - 2;            System.arraycopy(data, 2, bigMsg.packet, 0, bigMsg.nextPosition);                        bigMsgs.put(new Integer(source), bigMsg);        }        else {            bigMsg = (BigMsg)bigMsgs.get(new Integer(source));                        if( bigMsg == null || seqNum == bigMsg.lastSeqNum ){                                return;            }else if( seqNum != bigMsg.lastSeqNum+1 ){                                bigMsgs.remove(new Integer(source));            }            bigMsg.lastSeqNum = seqNum;            System.arraycopy(data, 0, bigMsg.packet, bigMsg.nextPosition, data.length);            bigMsg.nextPosition += data.length;        }                stateTextField.setText("mote"+source+":"+ bigMsg.nextPosition +"/" + bigMsg.packet.length );        //System.out.println("mote"+source+":"+ bigMsg.nextPosition +"/" + bigMsg.packet.length );                if( bigMsg.nextPosition == bigMsg.packet.length ) {            bigMsgs.remove(new Integer(Integer.toString(source)));                        if( timestamp != null ){                jTextArea1.append(timestamp.format(new java.util.Date()) + ' ');                if(out != null)                    out.print(timestamp.format(new java.util.Date()) + ' ');            }            if( !supressId ) {                jTextArea1.append(Integer.toString(source));                jTextArea1.append(" ");                if(out != null)                    out.print(Integer.toString(source)+" ");            }                        for(int i = 0; i < bigMsg.packet.length; ++i ) {                jTextArea1.append(Integer.toString(bigMsg.packet[i] & 0xFF));                jTextArea1.append(" ");                if(out != null)                    out.print(Integer.toString(bigMsg.packet[i] & 0xFF) + " ");            }                        jTextArea1.append("\n");            this.jTextArea1.setCaretPosition(this.jTextArea1.getDocument().getLength());            if(out != null)                    out.println("");			if(out != null)					out.flush();					        }    }        protected int getShort(byte a, byte b) {        return (a & 0x00FF) + ((b << 8) & 0xFF00);    }                    // Variables declaration - do not modify//GEN-BEGIN:variables    private javax.swing.JButton jButton1;    private javax.swing.JScrollPane jScrollPane1;    private javax.swing.JSeparator jSeparator1;    private javax.swing.JSeparator jSeparator2;    private javax.swing.JTextArea jTextArea1;    private javax.swing.JTextField jTextField1;    private javax.swing.JCheckBox noidCheckBox;    private javax.swing.JCheckBox saveCheckBox;    private javax.swing.JLabel stateLabel;    private javax.swing.JTextField stateTextField;    private javax.swing.JPanel subPanel;    private javax.swing.JCheckBox timestampCheckBox;    private javax.swing.JLabel typeLabel;    private javax.swing.JTextField typeTextField;    // End of variables declaration//GEN-END:variables    }

⌨️ 快捷键说明

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