实例介绍
【实例简介】
【实例截图】
【核心代码】
package uhf18win; import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JOptionPane; import javax.swing.JComboBox; import javax.swing.JDesktopPane; import java.awt.FlowLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import javax.swing.ButtonGroup; import javax.swing.DefaultListModel; import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.Timer; import java.util.TimerTask; import UHF18.UHFReader; import UHF.Reader18; public class MainFrame extends JFrame { /** * */ private static final long serialVersionUID = 1L; private UHFReader uhf = new UHFReader(); String[] s = {"COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","COM10","COM11","COM12"}; String[] bauds = {"9600bps","19200bps","38400bps","57600bps","115200bps"}; String[] powers={"0 dBm","1 dBm","2 dBm","3 dBm","4 dBm","5 dBm","6 dBm","7 dBm","8 dBm","9 dBm", "10 dBm","11 dBm","12 dBm","13 dBm","14 dBm","15 dBm","16 dBm","17 dBm","18 dBm","19 dBm", "20 dBm","21 dBm","22 dBm","23 dBm","24 dBm","25 dBm","26 dBm","27 dBm","28 dBm","29 dBm","30 dBm"}; private final JLabel label_4 = new JLabel(); private int fCmdRet=0x30; private final JPanel panel_2 = new JPanel(); private final JLabel label_3 = new JLabel(); private final JComboBox comboBox = new JComboBox(); private final JButton button = new JButton(); private final JLabel label_6 = new JLabel(); private final JDesktopPane desktopPane_1 = new JDesktopPane(); private final JLabel label_1 = new JLabel(); private final JComboBox comboBox_port = new JComboBox(s); private final JLabel label_5 = new JLabel(); private final JComboBox comboBox_baud = new JComboBox(bauds); private final JButton bt_open = new JButton(); private final JButton bt_close = new JButton(); private final JLabel label_7 = new JLabel(); private final JComboBox comboBox_power = new JComboBox(powers); private final JButton bt_power = new JButton(); private final JComboBox comboBox_epc = new JComboBox(); private final JRadioButton rb_psd = new JRadioButton(); private final JRadioButton rb_epc = new JRadioButton(); private final JRadioButton rb_tid = new JRadioButton(); private final JRadioButton rb_user = new JRadioButton(); private final ButtonGroup group=new ButtonGroup(); private final ButtonGroup group1=new ButtonGroup(); private final ButtonGroup group2=new ButtonGroup(); private final JLabel addrLabel = new JLabel(); private final JTextField text_num = new JTextField(); private final JLabel label_8 = new JLabel(); private final JTextField text_addr = new JTextField(); private final JLabel label_9 = new JLabel(); private final JTextField text_psd = new JTextField(); private final JLabel label_10 = new JLabel(); private final JTextField text_data = new JTextField(); private final JButton bt_read = new JButton(); private final JButton bt_write = new JButton(); private final JButton bt_start = new JButton(); private final JButton bt_stop = new JButton(); private final JLabel label = new JLabel(); private final JLabel label_2 = new JLabel(); private final JTextField text_tagnum = new JTextField(); private final DefaultListModel listmodel=new DefaultListModel(); private final JList list = new JList(listmodel); private final JLabel ipLabel = new JLabel(); private final JTextField text_ip = new JTextField(); private final JLabel portLabel = new JLabel(); private final JTextField text_port = new JTextField(); private final JButton bt_con = new JButton(); private final JButton bt_discon = new JButton(); private final JPanel panel = new JPanel(); private final JRadioButton rb_tcp = new JRadioButton(); private final JRadioButton rb_com = new JRadioButton(); private final JPanel panel_1 = new JPanel(); private final JRadioButton rb_band1 = new JRadioButton(); private final JRadioButton rb_band2 = new JRadioButton(); private final JRadioButton rb_band3 = new JRadioButton(); private final JRadioButton rb_band4 = new JRadioButton(); private final JRadioButton rb_band5 = new JRadioButton(); private final JButton bt_Region = new JButton(); /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { MainFrame frame = new MainFrame(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the */ public MainFrame() { setTitle("UHFReader18 Demo-2018"); getContentPane().setLayout(null); setResizable(false); setBounds(100, 100, 754, 488); //setDefaultCloseOperation(JEXIT_ON_CLOSE); getContentPane().add(desktopPane_1); desktopPane_1.setLayout(null); desktopPane_1.setBounds(153, 305, 287, -228); comboBox_epc.setBounds(492, 152, 226, 30); getContentPane().add(comboBox_epc); label_1.setBounds(23, 15, 40, 30); getContentPane().add(label_1); label_1.setText("串口:"); comboBox_port.setBounds(70, 15, 86, 30); getContentPane().add(comboBox_port); comboBox_port.setSelectedIndex(0); label_5.setBounds(175, 15, 60, 30); getContentPane().add(label_5); label_5.setText("波特率:"); comboBox_baud.setBounds(238, 15, 100, 30); getContentPane().add(comboBox_baud); comboBox_baud.setSelectedIndex(3); bt_open.setBounds(352, 15, 88, 30); bt_open.addActionListener(new Bt_openActionListener()); getContentPane().add(bt_open); bt_open.setText("打 开"); bt_close.setBounds(446, 15, 88, 30); bt_close.addActionListener(new Bt_closeActionListener()); getContentPane().add(bt_close); bt_close.setText("关 闭"); label_7.setBounds(20, 110, 40, 30); getContentPane().add(label_7); label_7.setText("功率:"); comboBox_power.setBounds(64, 110, 72, 30); getContentPane().add(comboBox_power); comboBox_power.setSelectedIndex(30); bt_power.setBounds(145, 110, 86, 30); bt_power.addActionListener(new Bt_powerActionListener()); getContentPane().add(bt_power); bt_power.setText("功率设置"); addrLabel.setBounds(395, 226, 120, 30); getContentPane().add(addrLabel); addrLabel.setText("起始地址:"); text_num.setBounds(493, 276, 225, 30); getContentPane().add(text_num); text_num.setText("04"); label_8.setBounds(395, 276, 120, 30); getContentPane().add(label_8); label_8.setText("字数:"); text_addr.setBounds(493, 226, 225, 30); getContentPane().add(text_addr); text_addr.setText("00"); label_9.setBounds(395, 319, 72, 30); getContentPane().add(label_9); label_9.setText("访问密码:"); text_psd.setBounds(494, 319, 224, 30); getContentPane().add(text_psd); text_psd.setText("00000000"); label_10.setBounds(395, 371, 49, 30); getContentPane().add(label_10); label_10.setText("数据:"); text_data.setBounds(493, 371, 225, 30); getContentPane().add(text_data); text_data.setText("00000000000000000000"); bt_read.setBounds(492, 409, 106, 30); bt_read.addActionListener(new Bt_readActionListener()); getContentPane().add(bt_read); bt_read.setText("读数据"); bt_write.setBounds(604, 409, 114, 30); bt_write.addActionListener(new Bt_writeActionListener()); getContentPane().add(bt_write); bt_write.setText("写数据"); //table_epc. bt_start.setBounds(172, 409, 78, 30); bt_start.addActionListener(new Bt_startActionListener()); getContentPane().add(bt_start); bt_start.setText("开始"); bt_stop.setBounds(270, 409, 78, 30); bt_stop.addActionListener(new Bt_stopActionListener()); getContentPane().add(bt_stop); bt_stop.setText("停止"); rb_epc.setBounds(470, 190, 78, 30); getContentPane().add(rb_epc); rb_epc.setText("EPC区"); rb_tid.setBounds(553, 191, 78, 30); getContentPane().add(rb_tid); rb_tid.setText("TID区"); rb_user.setBounds(632, 191, 86, 30); getContentPane().add(rb_user); rb_user.setText("用户区"); rb_psd.setBounds(390, 190, 78, 30); getContentPane().add(rb_psd); rb_psd.setText("保留区"); getContentPane().add(label); label.setText("EPC号:"); label.setBounds(395, 164, 66, 18); final GridBagConstraints gridBagConstraints_4 = new GridBagConstraints(); gridBagConstraints_4.gridx = 4; gridBagConstraints_4.gridy = 0; label_4.setText(" "); panel_2.setLayout(new GridBagLayout()); final GridBagConstraints gridBagConstraints_8 = new GridBagConstraints(); gridBagConstraints_8.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints_8.insets = new Insets(0, 0, -10, 0); gridBagConstraints_8.ipady = 20; panel_2.add(label_3, gridBagConstraints_8); label_3.setText("读写器功率:"); panel_2.add(comboBox, new GridBagConstraints()); final GridBagConstraints gridBagConstraints_9 = new GridBagConstraints(); gridBagConstraints_9.gridx = 4; final GridBagConstraints gridBagConstraints_10 = new GridBagConstraints(); gridBagConstraints_10.gridy = 0; gridBagConstraints_10.gridx = 2; panel_2.add(label_6, gridBagConstraints_10); label_6.setText(" "); gridBagConstraints_9.fill = GridBagConstraints.VERTICAL; panel_2.add(button, gridBagConstraints_9); button.setText("设置"); bt_discon.setEnabled(false); bt_discon.addActionListener(new Bt_disconActionListener()); bt_con.setEnabled(false); bt_con.addActionListener(new Bt_conActionListener()); bt_open.setEnabled(true); bt_close.setEnabled(false);//关闭 bt_power.setEnabled(false);//功率 bt_start.setEnabled(false);//开始 bt_stop.setEnabled(false);//停止 bt_read.setEnabled(false);//读 bt_write.setEnabled(false);//写 bt_Region.setEnabled(false); bt_Region.addActionListener(new Bt_RegionActionListener()); rb_user.setSelected(true); group.add(rb_psd); group.add(rb_epc); group.add(rb_tid); group.add(rb_user); group1.add(rb_com); rb_com.setSelected(true); rb_com.addActionListener(new Rb_comActionListener()); group1.add(rb_tcp); rb_tcp.addActionListener(new Rb_tcpActionListener()); getContentPane().add(label_2); label_2.setText("张数:"); label_2.setBounds(37, 415, 40, 18); getContentPane().add(text_tagnum); text_tagnum.setText("0"); text_tagnum.setBounds(80, 413, 78, 22); getContentPane().add(list); list.setLayoutOrientation(JList.HORIZONTAL_WRAP); list.setVisibleRowCount(100); list.setBounds(20, 157, 328, 234); getContentPane().add(ipLabel); ipLabel.setText("IP"); ipLabel.setBounds(23, 64, 62, 18); getContentPane().add(text_ip); text_ip.setText("192.168.1.190"); text_ip.setBounds(49, 52, 106, 30); getContentPane().add(portLabel); portLabel.setText("端口"); portLabel.setBounds(175, 64, 62, 18); getContentPane().add(text_port); text_port.setText("6000"); text_port.setBounds(235, 52, 106, 30); getContentPane().add(bt_con); bt_con.setText("打 开"); bt_con.setBounds(352, 52, 88, 30); getContentPane().add(bt_discon); bt_discon.setText("关 闭"); bt_discon.setBounds(446, 52, 88, 30); getContentPane().add(panel); panel.setBounds(564, 15, 154, 36); panel.add(rb_com); rb_com.setText("COM"); panel.add(rb_tcp); rb_tcp.setText("TCP"); getContentPane().add(panel_1); final FlowLayout flowLayout = new FlowLayout(); flowLayout.setAlignment(FlowLayout.LEFT); panel_1.setLayout(flowLayout); panel_1.setBounds(235, 85, 299, 65); panel_1.add(rb_band1); rb_band1.setText("User band"); panel_1.add(rb_band2); rb_band2.setText("Chinese band2"); panel_1.add(rb_band3); rb_band3.setText("US band"); panel_1.add(rb_band4); rb_band4.setText("Korean band"); panel_1.add(rb_band5); rb_band5.setText("EU band"); getContentPane().add(bt_Region); bt_Region.setText("频段设置"); bt_Region.setBounds(545, 110, 86, 30); group2.add(rb_band1); group2.add(rb_band2); group2.add(rb_band3); group2.add(rb_band4); group2.add(rb_band5); rb_band1.setSelected(true); } private class Bt_openActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { bt_open_actionPerformed(e); } } private class Bt_closeActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { bt_close_actionPerformed(e); } } private class Bt_powerActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { bt_power_actionPerformed(e); } } private class Bt_startActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { bt_start_actionPerformed(e); } } private class Bt_stopActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { bt_stop_actionPerformed(e); } } private class Bt_readActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { bt_read_actionPerformed(e); } } private class Bt_writeActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { bt_write_actionPerformed(e); } } private class Rb_comActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { rb_com_actionPerformed(e); } } private class Rb_tcpActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { rb_tcp_actionPerformed(e); } } private class Bt_conActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { bt_con_actionPerformed(e); } } private class Bt_disconActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { bt_discon_actionPerformed(e); } } private class Bt_RegionActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { bt_Region_actionPerformed(e); } } //打开串口 protected void bt_open_actionPerformed(ActionEvent e) { int ComPort=comboBox_port.getSelectedIndex() 1; byte ComAddr=(byte)255; byte baudRate=(byte)comboBox_baud.getSelectedIndex(); if(baudRate>2)baudRate=(byte)(baudRate 2); fCmdRet=uhf.OpenByCom(ComPort, ComAddr, baudRate); if(fCmdRet==0) { bt_close.setEnabled(true);//关闭 bt_open.setEnabled(false);//打开 bt_power.setEnabled(true);//功率 bt_start.setEnabled(true);//开始 bt_stop.setEnabled(true);//停止 bt_read.setEnabled(true);//读 bt_write.setEnabled(true);//写 bt_Region.setEnabled(true); } } //关闭串口 protected void bt_close_actionPerformed(ActionEvent e) { int FrmHandle=uhf.FrmHandle; fCmdRet=uhf.CloseByCom(FrmHandle); if(fCmdRet==0) { bt_close.setEnabled(false);//关闭 bt_open.setEnabled(true);//打开 bt_power.setEnabled(false);//功率 bt_start.setEnabled(false);//开始 bt_stop.setEnabled(false);//停止 bt_read.setEnabled(false);//读 bt_write.setEnabled(false);//写 bt_Region.setEnabled(false); listmodel.clear(); comboBox_epc.removeAllItems(); timeQyery=false; } } //设置功率 protected void bt_power_actionPerformed(ActionEvent e) { byte power=(byte)comboBox_power.getSelectedIndex(); fCmdRet = uhf.SetPower(power); if(fCmdRet!=0) { JOptionPane.showMessageDialog(null,"功率设置失败","提示",JOptionPane.ERROR_MESSAGE); } else { JOptionPane.showMessageDialog(null,"功率设置成功","提示",JOptionPane.ERROR_MESSAGE); } } public void timeVoid(){ final Timer timer = new Timer(); TimerTask tt=new TimerTask() { @Override public void run() { if(timeQyery) { if(Qyeryflag)return; Qyeryflag=true; Inventory(); Qyeryflag=false; timer.cancel(); timeVoid(); } } }; timer.schedule(tt, 200); } private void Inventory() { String[] EPC; EPC=uhf.Inventory(); if(EPC != null ) { for(int m=0;m<EPC.length;m ) { String sepc=EPC[m]; boolean inlist=false; for(int n=0;n<comboBox_epc.getItemCount();n ) { String temp=comboBox_epc.getItemAt(n).toString(); if(temp.equals(sepc)) { inlist=true; break; } } if(inlist==false) { listmodel.addElement(sepc); comboBox_epc.addItem(sepc); } } comboBox_epc.setSelectedIndex(0); text_tagnum.setText(String.valueOf(comboBox_epc.getItemCount())); } } private boolean timeQyery=false;//定时器执行标志 private boolean Qyeryflag=false;//单次询查结束标志 protected void bt_start_actionPerformed(ActionEvent e) { timeQyery=true; listmodel.clear(); comboBox_epc.removeAllItems(); timeVoid(); } protected void bt_stop_actionPerformed(ActionEvent e) { timeQyery=false; } protected void bt_read_actionPerformed(ActionEvent e) { String EPC=comboBox_epc.getSelectedItem().toString(); byte WordPtr = (byte)(0xff & Integer.parseInt(text_addr.getText(),16)); byte Num =(byte)(0xff & Integer.parseInt(text_num.getText(),16)); byte Mem=0; if(rb_psd.isSelected()){ Mem=0; } if(rb_epc.isSelected()){ Mem=1; } if(rb_tid.isSelected()){ Mem=2; } if(rb_user.isSelected()){ Mem=3; } byte[] Psd=new byte[4]; Psd=uhf.stringToByte(text_psd.getText()); String result=uhf.ReadData(EPC,WordPtr,Num,Mem,Psd); text_data.setText(result); } protected void bt_write_actionPerformed(ActionEvent e) { String EPC=comboBox_epc.getSelectedItem().toString(); byte WordPtr = (byte)(0xff & Integer.parseInt(text_addr.getText(),16)); byte Mem=0; if(rb_psd.isSelected()){ Mem=0; } if(rb_epc.isSelected()){ Mem=1; } if(rb_tid.isSelected()){ Mem=2; } if(rb_user.isSelected()){ Mem=3; } byte[] Psd=new byte[4]; Psd=uhf.stringToByte(text_psd.getText()); String str_data=text_data.getText(); byte Num=(byte)(str_data.length()/4); byte[] Data; Data=uhf.stringToByte(str_data); fCmdRet=uhf.WriteData(EPC,WordPtr,Num,Data,Mem,Psd); if(fCmdRet!=0){ JOptionPane.showMessageDialog(null,"写数据失败","提示",JOptionPane.ERROR_MESSAGE); } else { JOptionPane.showMessageDialog(null,"写数据成功","提示",JOptionPane.ERROR_MESSAGE); } } protected void rb_com_actionPerformed(ActionEvent e) { if(uhf.FrmHandle>1023) bt_discon_actionPerformed(e); bt_discon.setEnabled(false); bt_con.setEnabled(false); bt_open.setEnabled(true); bt_close.setEnabled(false);//关闭 } protected void rb_tcp_actionPerformed(ActionEvent e) { if((uhf.FrmHandle>0)&&(uhf.FrmHandle<256)) bt_close_actionPerformed(e); bt_discon.setEnabled(false); bt_con.setEnabled(true); bt_open.setEnabled(false); bt_close.setEnabled(false);//关闭 } protected void bt_con_actionPerformed(ActionEvent e) { String ipaddr=""; int Port=0; ipaddr = text_ip.getText().toString(); Port = Integer.valueOf(text_port.getText()); fCmdRet=uhf.OpenByTcp(ipaddr,Port); if(fCmdRet==0) { bt_discon.setEnabled(true);//关闭 bt_con.setEnabled(false);//打开 bt_power.setEnabled(true);//功率 bt_start.setEnabled(true);//开始 bt_stop.setEnabled(true);//停止 bt_read.setEnabled(true);//读 bt_write.setEnabled(true);//写 bt_Region.setEnabled(true); } } protected void bt_discon_actionPerformed(ActionEvent e) { int FrmHandle=uhf.FrmHandle; fCmdRet=uhf.CloseByTcp(FrmHandle); if(fCmdRet==0) { bt_discon.setEnabled(false);//关闭 bt_con.setEnabled(true);//打开 bt_power.setEnabled(false);//功率 bt_start.setEnabled(false);//开始 bt_stop.setEnabled(false);//停止 bt_read.setEnabled(false);//读 bt_write.setEnabled(false);//写 bt_Region.setEnabled(false); timeQyery=false; listmodel.clear(); comboBox_epc.removeAllItems(); } } protected void bt_Region_actionPerformed(ActionEvent e) { byte MaxFre=0; byte MinFre=0; if(rb_band1.isSelected()){ MaxFre=(byte)0x3E; MinFre=(byte)0x00; } if(rb_band2.isSelected()){ MaxFre=(byte)0x13; MinFre=(byte)0x40; } if(rb_band3.isSelected()){ MaxFre=(byte)0x31; MinFre=(byte)0x80; } if(rb_band4.isSelected()){ MaxFre=(byte)0x1F; MinFre=(byte)0xC0; } if(rb_band5.isSelected()){ MaxFre=0x4E; MinFre=0x00; } fCmdRet = uhf.SetRegion(MaxFre, MinFre); if(fCmdRet==0) { JOptionPane.showMessageDialog(null,"设置成功","提示",JOptionPane.ERROR_MESSAGE); } else { JOptionPane.showMessageDialog(null,"设置失败","提示",JOptionPane.ERROR_MESSAGE); } } }
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论