📄 bigmsgdisplay.java
字号:
gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; subPanel.add(jButton1, gridBagConstraints); getContentPane().add(subPanel, java.awt.BorderLayout.SOUTH); pack(); }//GEN-END:initComponents private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed javax.swing.JFileChooser chooser = new javax.swing.JFileChooser(); chooser.setDialogTitle("Just a Test dialog"); 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 // Add your handling code here: }//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 String arg = typeTextField.getText(); arg.toUpperCase(); if( !arg.startsWith("0X") ) { typeTextField.setText("0X"+Integer.toHexString(activeMessage)); } else{ SerialConnector.instance().removePacketListener(this,activeMessage); activeMessage = (byte)Integer.parseInt(arg.substring(2), 16); SerialConnector.instance().registerPacketListener(this,activeMessage); prefs.putInt("ActiveMessage",activeMessage); } }//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; static final int PACKET_CRC_SIZE = 2; // 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_CRC_SIZE > 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 ){ System.out.println("Ez maaa volt!! "+seqNum); return; }else if( seqNum != bigMsg.lastSeqNum+1 ){ System.out.println("Rossz seqn: "+seqNum ); 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"); if(out != null) out.println(""); } } protected int getShort(byte a, byte b) { return (a & 0x00FF) + ((b << 8) & 0xFF00); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JSeparator jSeparator2; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JCheckBox saveCheckBox; private javax.swing.JButton jButton1; private javax.swing.JLabel stateLabel; private javax.swing.JPanel subPanel; private javax.swing.JTextField stateTextField; private javax.swing.JTextField typeTextField; private javax.swing.JCheckBox timestampCheckBox; private javax.swing.JTextArea jTextArea1; private javax.swing.JSeparator jSeparator1; private javax.swing.JLabel typeLabel; private javax.swing.JTextField jTextField1; private javax.swing.JCheckBox noidCheckBox; // End of variables declaration//GEN-END:variables }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -