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

📄 registermanager.java

📁 无线通信的主要编程软件,是无线通信工作人员的必备工具,关天相关教程我会在后续传上.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        setSize(new java.awt.Dimension(657, 357));        setLocation((screenSize.width-657)/2,(screenSize.height-357)/2);    }//GEN-END:initComponents    private void bcastCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_bcastCheckBoxItemStateChanged        if (evt.getStateChange() == java.awt.event.ItemEvent.SELECTED) {            broadcastEnabled = true;        } else if(evt.getStateChange() == java.awt.event.ItemEvent.DESELECTED) {            broadcastEnabled = false;        }    }//GEN-LAST:event_bcastCheckBoxItemStateChanged        private void moteTextFieldFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_moteTextFieldFocusLost        updateMoteID();    }//GEN-LAST:event_moteTextFieldFocusLost        private void moteTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_moteTextFieldActionPerformed        updateMoteID();    }//GEN-LAST:event_moteTextFieldActionPerformed        private void radioDelayCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_radioDelayCheckBoxItemStateChanged        if (evt.getStateChange() == java.awt.event.ItemEvent.SELECTED) {            radioDelay = 250;        } else if(evt.getStateChange() == java.awt.event.ItemEvent.DESELECTED) {            radioDelay = 10;        }    }//GEN-LAST:event_radioDelayCheckBoxItemStateChanged        private void writeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_writeButtonActionPerformed        if(!changes.isEmpty()){            int address, data;            int destinationAddress = moteAddress;            java.util.Iterator changesIterartor= changes.iterator();            while(changesIterartor.hasNext()){                                int changedAddress = ((Integer)changesIterartor.next()).intValue();                changesIterartor.remove();                if(0 <= changedAddress && changedAddress < registerCount){                    address = registerAddress[0] + changedAddress;                                    }else if(registerCount <= changedAddress && changedAddress < (2*registerCount)){                    address = registerAddress[1] + changedAddress-registerCount;                                    }else if((2*registerCount) <= changedAddress && changedAddress < (3*registerCount)){                    address = registerAddress[2] + changedAddress-(2*registerCount);                                    }else if((3*registerCount) <= changedAddress && changedAddress < (4*registerCount)){                    address = registerAddress[3] + changedAddress-(3*registerCount);                }else{                    return;                }                                data = registerSpace[changedAddress];                                sendPacket[2] = (byte)(WRITE_REQ & 0xff);             	// Type = AM_WRITE_REQ                                sendPacket[6] = (byte)((destinationAddress >> 8) & 0xff);      	// Mote Address high byte                sendPacket[5] = (byte)(destinationAddress & 0xff);              	// Mote Address low byte                                                sendPacket[8] = (byte)((address >> 8) & 0xff);      	// Address high byte                sendPacket[7] = (byte)(address & 0xff);              	// Address low byte                sendPacket[9] = (byte)(0x01 & 0xff);             	// length byte                sendPacket[10] = (byte)(data & 0xff);             	// Data byte                                byte[] writeData = new byte[6];                writeData[0] = sendPacket[5];                writeData[1] = sendPacket[6];                writeData[2] = sendPacket[7];                writeData[3] = sendPacket[8];                writeData[4] = sendPacket[9];                writeData[5] = sendPacket[10];                                if(broadcastEnabled)                    destinationAddress = 0xFFFF;                                SerialConnector.instance().sendMessage(destinationAddress, (short)sendPacket[2], (short)sendPacket[3], writeData);            }        }    }//GEN-LAST:event_writeButtonActionPerformed        private void readButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_readButtonActionPerformed        System.out.println("Send Read");        sendThread = new RegisterReaderThread();        sendThread.start();    }//GEN-LAST:event_readButtonActionPerformed            // Variables declaration - do not modify//GEN-BEGIN:variables    private javax.swing.JLabel jLabel4;    private javax.swing.JScrollPane channelBScrollPane;    private javax.swing.JButton readButton;    private javax.swing.JLabel jLabel1;    private javax.swing.JLabel jLabel3;    private javax.swing.JScrollPane channelCScrollPane;    private javax.swing.JPanel jPanel3;    private javax.swing.JButton writeButton;    private javax.swing.JLabel jLabel2;    private javax.swing.JCheckBox radioDelayCheckBox;    private javax.swing.JPanel jPanel2;    private javax.swing.JScrollPane channelAScrollPane;    private javax.swing.JLabel moteLabel;    private javax.swing.JCheckBox bcastCheckBox;    private javax.swing.JPanel jPanel1;    private javax.swing.JScrollPane generalScrollPane;    private javax.swing.JTextField moteTextField;    // End of variables declaration//GEN-END:variables        private void updateMoteID(){        String value = moteTextField.getText();        if(value.trim().toUpperCase().startsWith("0X"))            moteAddress=Short.parseShort(value.trim().substring(2),16);        else            moteAddress=Short.parseShort(value.trim());    }            /** packetReceived() is called by the SerialPortStub object. After     *  the message processing we force the update of the screen.     *     *  TODO: CRC checking     */    public void packetReceived(byte[] packet) {                int msgtype;        int address;        int baseAddress;        int moteId;        int data;        int relativeAddress;        int length;        String msgstr;                moteId = (packet[6] & 0xff) << 8;        moteId |= packet[5] & 0xff;                        if(moteId != moteAddress)            return;                msgtype = packet[2] & 0xff;                baseAddress = (packet[8] & 0xff) << 8;        baseAddress |= packet[7] & 0xff;                length = packet[9] & 0xff;                        if (msgtype == READ_REPLY) {                        for(int i = 0; i < length; i++){                data= packet[10+i] & 0xff;                address = baseAddress+i;                if( registerAddress[0] <= address && address < registerAddress[1] ){                    relativeAddress = address-registerAddress[0];                    if(relativeAddress < registerCount){                                                registerSpace[relativeAddress]=(byte)data;                        ((javax.swing.table.DefaultTableModel) generalTable.getModel()).fireTableCellUpdated(0, relativeAddress) ;                        //((javax.swing.table.DefaultTableModel) generalTable.getModel()).fireTableDataChanged();                    }                                    }else if( registerAddress[1] <= address && address < registerAddress[2] ){                    relativeAddress = address-registerAddress[1];                    if(relativeAddress < registerCount){                                                registerSpace[registerCount + relativeAddress]=(byte)data;                        ((javax.swing.table.DefaultTableModel) channelATable.getModel()).fireTableCellUpdated(0, relativeAddress) ;                        //((javax.swing.table.DefaultTableModel)channelATable.getModel()).fireTableDataChanged();                    }                                    }else if( registerAddress[2] <= address && address < registerAddress[3] ){                    relativeAddress = address-registerAddress[2];                    if(relativeAddress < registerCount){                        registerSpace[2*registerCount + relativeAddress]=(byte)data;                        ((javax.swing.table.DefaultTableModel) channelBTable.getModel()).fireTableCellUpdated(0, relativeAddress) ;                        //((javax.swing.table.DefaultTableModel)channelBTable.getModel()).fireTableDataChanged();                    }                                    }else if( registerAddress[3] <= address && address < (registerAddress[3] + registerCount) ){                    relativeAddress = address-registerAddress[3];                    if(relativeAddress < registerCount){                        registerSpace[3*registerCount + relativeAddress]=(byte)data;                        ((javax.swing.table.DefaultTableModel) channelCTable.getModel()).fireTableCellUpdated(0, relativeAddress) ;                    }                }                            }                                }            }                /************************ Inner Classes ***********************************/        private class RegisterTableModel extends javax.swing.table.DefaultTableModel{                        private int spaceStart;                public RegisterTableModel(int spaceStart){            super(headTitles,1);                        this.spaceStart = spaceStart;                    }                public Object getValueAt(int row, int column) {            if(column < registerCount && row == 0){                return Integer.toHexString(registerSpace[spaceStart + column] & 0xFF);            }            return Integer.toString(-1);        }                public void setValueAt(Object aValue, int row, int column){            if(column < registerCount && row == 0){                registerSpace[spaceStart + column] = (byte)(Integer.parseInt((String)aValue,16) & 0xFF);                changes.add(new Integer(spaceStart + column));            }        }            }        private class RegisterReaderThread extends Thread{                public RegisterReaderThread(){}                public void run(){                        int address;            int destinationAddress = moteAddress;            for(int channel = 0; channel < 4; channel++){                //System.out.println("Channel"+Integer.toString(channel));                                //address = Integer.parseInt(addressField.getText(), 16);                                address = registerAddress[channel];                                sendPacket[2] = (byte)(READ_REQ & 0xff);             	// Type = AM_READ_REQ                                sendPacket[6] = (byte)((destinationAddress >> 8) & 0xff);      	// Mote Address high byte                sendPacket[5] = (byte)(destinationAddress & 0xff);              	// Mote Address low byte                                                sendPacket[8] = (byte)((address >> 8) & 0xff);      	// Address high byte                sendPacket[7] = (byte)(address & 0xff);              	// Address low byte                sendPacket[9] = (byte)(16 & 0xff);             	// length byte                sendPacket[10] = (byte)(0x00 & 0xff);             	// Data byte                byte[] readData = new byte[6];                readData[0] = sendPacket[5];                readData[1] = sendPacket[6];                readData[2] = sendPacket[7];                readData[3] = sendPacket[8];                readData[4] = sendPacket[9];                readData[5] = sendPacket[10];                if(broadcastEnabled)                    destinationAddress = 0xFFFF;                SerialConnector.instance().sendMessage(destinationAddress, (short)sendPacket[2], (short)sendPacket[3], readData);                try{                    this.sleep(radioDelay);                }catch(java.lang.InterruptedException ie){}                                            }        }            }    }

⌨️ 快捷键说明

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