package com.dev.nrf_lora_tester; import javax.swing.JPanel; import java.awt.BorderLayout; import javax.swing.border.TitledBorder; import javax.swing.JOptionPane; import javax.swing.JTextField; import javax.swing.JButton; import javax.swing.JTextArea; import javax.swing.Timer; import com.Com; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.JScrollPane; import javax.swing.ScrollPaneConstants; import java.awt.Font; import javax.swing.JTabbedPane; import javax.swing.UIManager; import java.awt.Color; public class multy_setnum_page extends JPanel { public SPCommLora Comm_LoraTester; /** * */ private static final long serialVersionUID = 1L; private JTextField tf_module_addr_start; private JTextField tf_module_cnt; private Timer mUdpTimer; private JTextField tf_rfch_now; private JTextField tf_rfch_setted; private JTextArea ta_rfch_inf; private JButton btn_start; private JButton btn_stop; private int module_addr = 0; private int module_sum = 0; private int module_rfch = 0; private int module_rfch_setted = 0; private int module_cnt = 0; private JScrollPane scrollPane; private JTabbedPane tabbedPane; private JPanel panel_1; private JPanel panel_6; private JPanel panel_7; private JTextField tf_module_numstart_a; private JPanel panel_8; private JTextField tf_module_cnt_a; private JButton btn_start_numset_a; private JButton btn_stop_numset_a; private JPanel panel_9; private JTextField tf_module_rfch_a; /** * Create the panel. */ public multy_setnum_page() { setLayout(new BorderLayout(0, 0)); JPanel panel = new JPanel(); add(panel, BorderLayout.NORTH); panel.setLayout(new BorderLayout(0, 0)); tabbedPane = new JTabbedPane(JTabbedPane.TOP); panel.add(tabbedPane); panel_1 = new JPanel(); tabbedPane.addTab("\u6279\u91CF\u8BBE\u7F6E\u9891\u6BB5", null, panel_1, null); JPanel panel_2 = new JPanel(); panel_1.add(panel_2); panel_2.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "\u8D77\u59CB\u7F16\u53F7", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0))); tf_module_addr_start = new JTextField(); panel_2.add(tf_module_addr_start); tf_module_addr_start.setColumns(10); Com.setTFDocLimit(tf_module_addr_start, 2, "0123456789"); JPanel panel_4 = new JPanel(); panel_1.add(panel_4); panel_4.setBorder(new TitledBorder(null, "\u5F53\u524D\u9891\u6BB5", TitledBorder.LEADING, TitledBorder.TOP, null, null)); tf_rfch_now = new JTextField(); panel_4.add(tf_rfch_now); tf_rfch_now.setColumns(10); Com.setTFDocLimit(tf_rfch_now, 2, "0123456789"); JPanel panel_5 = new JPanel(); panel_1.add(panel_5); panel_5.setBorder(new TitledBorder(null, "\u6240\u9700\u9891\u6BB5", TitledBorder.LEADING, TitledBorder.TOP, null, null)); tf_rfch_setted = new JTextField(); panel_5.add(tf_rfch_setted); tf_rfch_setted.setColumns(10); Com.setTFDocLimit(tf_rfch_setted, 2, "0123456789"); JPanel panel_3 = new JPanel(); panel_1.add(panel_3); panel_3.setBorder(new TitledBorder(null, "\u6A21\u5757\u6570\u91CF", TitledBorder.LEADING, TitledBorder.TOP, null, null)); tf_module_cnt = new JTextField(); panel_3.add(tf_module_cnt); tf_module_cnt.setColumns(10); Com.setTFDocLimit(tf_module_cnt, 2, "0123456789"); btn_start = new JButton("\u542F\u52A8"); panel_1.add(btn_start); btn_stop = new JButton("\u505C\u6B62"); panel_1.add(btn_stop); btn_stop.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { mUdpTimer.stop(); Comm_LoraTester.setModuleCommTimeoutToOrigin(); } }); btn_start.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try{ module_addr = Integer.parseInt(tf_module_addr_start.getText()); module_rfch = Integer.parseInt(tf_rfch_now.getText()); module_rfch_setted = Integer.parseInt(tf_rfch_setted.getText()); module_sum = Integer.parseInt(tf_module_cnt.getText()); } catch (Exception e1) { JOptionPane.showMessageDialog(null, "ÇëÏÈÕýÈ·Ìîд²ÎÊý!"); return; } if((module_rfch <= 0) || (module_rfch_setted<=0) || (module_rfch > 16) || (module_rfch_setted > 16)) { JOptionPane.showMessageDialog(null, "Ƶ¶Î±ØÐëÔÚ1-16Ö®¼ä!"); return; } module_cnt = 0; ta_rfch_inf.setText(""); Comm_LoraTester.setModuleCommTimeout(100); mUdpTimer.start(); } }); panel_6 = new JPanel(); tabbedPane.addTab("\u6279\u91CF\u5F52\u96F6\u7F16\u53F7", null, panel_6, null); panel_7 = new JPanel(); panel_7.setBorder(new TitledBorder(null, "\u8D77\u59CB\u7F16\u53F7", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_6.add(panel_7); tf_module_numstart_a = new JTextField(); panel_7.add(tf_module_numstart_a); tf_module_numstart_a.setColumns(10); Com.setTFDocLimit(tf_module_numstart_a, 2, "0123456789"); panel_9 = new JPanel(); panel_9.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "\u6A21\u5757\u9891\u6BB5", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0))); panel_6.add(panel_9); tf_module_rfch_a = new JTextField(); panel_9.add(tf_module_rfch_a); tf_module_rfch_a.setColumns(10); Com.setTFDocLimit(tf_module_rfch_a, 2, "0123456789"); panel_8 = new JPanel(); panel_8.setBorder(new TitledBorder(null, "\u6A21\u5757\u6570\u91CF", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_6.add(panel_8); tf_module_cnt_a = new JTextField(); panel_8.add(tf_module_cnt_a); tf_module_cnt_a.setColumns(10); Com.setTFDocLimit(tf_module_cnt_a, 2, "0123456789"); btn_start_numset_a = new JButton("\u542F\u52A8"); btn_start_numset_a.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try{ module_addr = Integer.parseInt(tf_module_numstart_a.getText()); module_rfch = Integer.parseInt(tf_module_rfch_a.getText()); module_sum = Integer.parseInt(tf_module_cnt_a.getText()); } catch (Exception e1) { JOptionPane.showMessageDialog(null, "ÇëÏÈÕýÈ·Ìîд²ÎÊý!"); return; } module_cnt = 0; ta_rfch_inf.setText(""); Comm_LoraTester.setModuleCommTimeout(100); mUdpTimer.start(); } }); panel_6.add(btn_start_numset_a); btn_stop_numset_a = new JButton("\u505C\u6B62"); btn_stop_numset_a.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { mUdpTimer.stop(); Comm_LoraTester.setModuleCommTimeoutToOrigin(); } }); panel_6.add(btn_stop_numset_a); scrollPane = new JScrollPane(); scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); ta_rfch_inf = new JTextArea(); ta_rfch_inf.setFont(new Font("Monospaced", Font.PLAIN, 18)); scrollPane.setViewportView(ta_rfch_inf); add(scrollPane, BorderLayout.CENTER); /**************************************************************************/ mUdpTimer = new Timer(100, new ActionListener() { private int cnt_run = 0; private int cnt_max = 2; @Override public void actionPerformed(ActionEvent arg0) { if(module_cnt > 0) { cnt_max = 10; } else { cnt_max = 2; } if(cnt_run++ < cnt_max) { return; } else { cnt_run = 0; } int module_index = module_addr+module_cnt; if(module_cnt > 0) { int cmd_type = 0; if(0 == tabbedPane.getSelectedIndex()){ cmd_type = SPCommLora.CMD_Set_RFCH; if(cmd_type == Comm_LoraTester.m_SetModuleRFCH[module_index-1]) { ta_rfch_inf.append(" OK!!!!!!! \n"); } else { ta_rfch_inf.append(" Error! \n"); } } else { cmd_type = SPCommLora.CMD_Set_ID; if(cmd_type == Comm_LoraTester.m_SetModuleRFCH[0]) { ta_rfch_inf.append(" OK!!!!!!! \n"); } else { ta_rfch_inf.append(" Error! \n"); } } } if((++module_cnt) > module_sum) { mUdpTimer.stop(); Comm_LoraTester.setModuleCommTimeoutToOrigin(); ta_rfch_inf.append("\nSet Module Task Stop!"); return; } Comm_LoraTester.setModule_Addr_Count(module_index, module_rfch, 1); if(0 == tabbedPane.getSelectedIndex()){ Comm_LoraTester.m_SetModuleRFCH[module_index-1] = 0; Comm_LoraTester.setCommCmd(SPCommLora.CMD_Set_RFCH, (short) (module_rfch_setted-1)); ta_rfch_inf.append("Set Module " + module_index + " RFCH To " + module_rfch_setted); } else { Comm_LoraTester.m_SetModuleRFCH[0] = 0; Comm_LoraTester.setCommCmd(SPCommLora.CMD_Set_ID, (short) 0); ta_rfch_inf.append("Set Module " + module_index + " NUM ID To " + 0); } } }); /**************************************************************************/ } public void setLoraComm(SPCommLora cp) { Comm_LoraTester = cp; } public void setButtonStat(boolean stat) { btn_start.setEnabled(stat); btn_stop.setEnabled(stat); btn_start_numset_a.setEnabled(stat); btn_stop_numset_a.setEnabled(stat); } public void updateData() { } }