package com.dev.bybb;
|
|
import java.awt.BorderLayout;
|
import java.awt.Color;
|
import java.awt.Font;
|
import java.awt.GridLayout;
|
import java.awt.datatransfer.Clipboard;
|
import java.awt.datatransfer.StringSelection;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import java.awt.event.MouseAdapter;
|
import java.awt.event.MouseEvent;
|
import java.util.Vector;
|
|
import javax.swing.JMenuItem;
|
import javax.swing.JPanel;
|
import javax.swing.JPopupMenu;
|
import javax.swing.JScrollPane;
|
import javax.swing.JTabbedPane;
|
import javax.swing.JTable;
|
import javax.swing.JTextField;
|
import javax.swing.UIManager;
|
import javax.swing.border.TitledBorder;
|
import javax.swing.table.DefaultTableModel;
|
|
import main.page_debug_inf;
|
import main.page_dfu;
|
|
import javax.swing.JList;
|
import javax.swing.AbstractListModel;
|
import javax.swing.event.ListSelectionListener;
|
import javax.swing.event.ListSelectionEvent;
|
import javax.swing.JLabel;
|
import javax.swing.ListSelectionModel;
|
import javax.swing.SwingConstants;
|
|
import org.apache.logging.log4j.Logger;
|
|
public class bybb_page_base extends JPanel {
|
public CommBYBB Comm_BYBB;
|
private page_debug_inf panel_debug;
|
private page_dfu panel_dfu;
|
private bybb_page_sendudp page_sendudp;
|
private bybb_paga_parm page_parm;
|
|
private JTable table_bybb_data;
|
private Vector<String> columnVector;
|
private Vector<Vector<String>> dataRow;
|
|
private static final long serialVersionUID = 1L;
|
private JTextField tf_dev_version;
|
private JTabbedPane tabbedPane;
|
private JPanel panel;
|
private JList<Object> list_datsel;
|
private JLabel lbl_dataname;
|
/**
|
* Create the panel.
|
*/
|
public bybb_page_base() {
|
setLayout(new BorderLayout(0, 0));
|
tabbedPane = new JTabbedPane(JTabbedPane.TOP);
|
add(tabbedPane, BorderLayout.CENTER);
|
|
panel = new JPanel();
|
tabbedPane.addTab("\u57FA\u672C\u6D4B\u8BD5", null, panel, null);
|
panel.setLayout(new BorderLayout(0, 0));
|
|
JPanel panel_44 = new JPanel();
|
panel.add(panel_44, BorderLayout.CENTER);
|
panel_44.setLayout(new BorderLayout(0, 0));
|
|
lbl_dataname = new JLabel("");
|
lbl_dataname.setHorizontalAlignment(SwingConstants.CENTER);
|
panel_44.add(lbl_dataname, BorderLayout.NORTH);
|
|
JScrollPane scrollPane_2 = new JScrollPane();
|
panel_44.add(scrollPane_2);
|
|
table_bybb_data = new JTable();
|
columnVector = new Vector<String>();
|
columnVector.add("ÐкÅ");
|
for(int n=0; n<10; n++) {
|
columnVector.add("ÁÐ" + n);
|
}
|
|
dataRow = new Vector<Vector<String>>();
|
table_bybb_data.setModel(new DefaultTableModel(dataRow, columnVector));
|
MouseAdapter m_a = new MouseAdapter() {
|
public void mouseReleased(MouseEvent e) {
|
if(e.getSource() != table_bybb_data) {
|
return;
|
}
|
/*
|
int selectColumn = m_JTable.columnAtPoint(e.getPoint());
|
int selectRow = m_JTable.rowAtPoint(e.getPoint());
|
if (selectColumn == mCheckBoxColnumIndex) {
|
boolean value = (boolean) m_JTable.getValueAt(selectRow, selectColumn);
|
m_UI_Monit.m_MonLineChart.getSeries(selectRow+1).setVisible(!value);
|
}
|
*/
|
}
|
public void mousePressed(MouseEvent evt) {
|
if (evt.getButton() == MouseEvent.BUTTON3) {
|
JPopupMenu popupMenu = new JPopupMenu();
|
JMenuItem tableItem_export_data = null;
|
|
tableItem_export_data = new JMenuItem("¸´ÖƵ½¼ôÌù°å");
|
tableItem_export_data.addActionListener(new ActionListener(){
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
Clipboard clipboard = getToolkit().getSystemClipboard();
|
String temp = "";
|
for(int c=0; c<columnVector.size(); c++)
|
{
|
temp += columnVector.get(c) + "\t";
|
}
|
temp += "\n";
|
for(int r=0; r<dataRow.size(); r++)
|
{
|
for(int c=0; c<columnVector.size(); c++)
|
{
|
temp += dataRow.get(r).get(c) + "\t";
|
}
|
temp += "\n";
|
}
|
StringSelection text = new StringSelection(temp);
|
clipboard.setContents(text, null);
|
}
|
});
|
popupMenu.add(tableItem_export_data);
|
popupMenu.show(evt.getComponent(), evt.getX(), evt.getY());
|
}
|
}
|
};
|
|
table_bybb_data.addMouseListener(m_a);
|
scrollPane_2.setViewportView(table_bybb_data);
|
|
JPanel panel_57 = new JPanel();
|
panel.add(panel_57, BorderLayout.WEST);
|
panel_57.setLayout(new BorderLayout(0, 0));
|
|
JPanel panel_38 = new JPanel();
|
panel_57.add(panel_38, BorderLayout.NORTH);
|
//panel_ZDHJ.add(panel_38, BorderLayout.NORTH);
|
panel_38.setLayout(new GridLayout(0, 1, 0, 0));
|
|
JPanel panel_47 = new JPanel();
|
panel_47.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "\u6A21\u5757\u7248\u672C", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
|
panel_38.add(panel_47);
|
panel_47.setLayout(new GridLayout(0, 1, 8, 0));
|
|
tf_dev_version = new JTextField();
|
tf_dev_version.setFont(new Font("Courier New", Font.PLAIN, 14));
|
panel_47.add(tf_dev_version);
|
tf_dev_version.setColumns(20);
|
|
JPanel panel_58 = new JPanel();
|
panel_58.setBorder(new TitledBorder(null, "\u6570\u636E\u7C7B\u578B\u9009\u62E9", TitledBorder.LEADING, TitledBorder.TOP, null, null));
|
panel_57.add(panel_58, BorderLayout.CENTER);
|
panel_58.setLayout(new BorderLayout(0, 0));
|
|
list_datsel = new JList<Object>();
|
list_datsel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
|
list_datsel.addListSelectionListener(new ListSelectionListener() {
|
public void valueChanged(ListSelectionEvent arg0) {
|
|
}
|
});
|
panel_58.add(list_datsel);
|
list_datsel.setModel(new AbstractListModel<Object>() {
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 1L;
|
String[] values = new String[] {"DAT_BUF_EthCpt1", "DAT_BUF_EthCpt2", "DAT_BUF_EthWgu1", "DAT_BUF_EthWgu2", "DAT_BUF_CanCpt1", "DAT_BUF_CanCpt2", "DAT_BUF_CanWgu1", "DAT_BUF_CanWgu2", "DAT_BUF_DEthLcu11", "DAT_BUF_DEthLcu12", "DAT_BUF_DEthLcu21", "DAT_BUF_DEthLcu22", "DAT_BUF_DCanLcu11", "DAT_BUF_DCanLcu12", "DAT_BUF_DCanLcu21", "DAT_BUF_DCanLcu22", "DAT_Main_DATAS", "DAT_Main_ALARM", "DAT_Comm_STATES", "DAT_Main_LED_STATE"};
|
public int getSize() {
|
return values.length;
|
}
|
public Object getElementAt(int index) {
|
return values[index];
|
}
|
});
|
list_datsel.setSelectedIndex(0);
|
|
page_sendudp = new bybb_page_sendudp();
|
tabbedPane.addTab("UDP·ÂÕæ·¢ËÍ", null, page_sendudp, null);
|
|
panel_dfu = new page_dfu();
|
panel_dfu.ckc_read_check.setSelected(true);
|
panel_dfu.ckc_read_check.setEnabled(false);
|
tabbedPane.addTab("DFU²Ù×÷", null, panel_dfu, null);
|
|
page_parm = new bybb_paga_parm();
|
tabbedPane.addTab("²ÎÊýÉèÖÃ", null, page_parm, null);
|
|
panel_debug = new page_debug_inf();
|
tabbedPane.addTab("µ÷ÊÔÐÅÏ¢", null, panel_debug, null);
|
|
setButttonState(false);
|
}
|
|
public boolean openCommPort(int comm_type, String spname_or_ipaddr,
|
int bitrate_or_ipport, int dev_addr, Logger log) {
|
boolean res = false;
|
Comm_BYBB = new CommBYBB(comm_type, dev_addr, bitrate_or_ipport, panel_debug, log);
|
if(true == Comm_BYBB.OpenCommPort(spname_or_ipaddr, bitrate_or_ipport)) {
|
Thread spcommThread = new Thread(Comm_BYBB);
|
spcommThread.start();
|
|
page_sendudp.openCommPort(spname_or_ipaddr, bitrate_or_ipport, panel_debug);
|
panel_dfu.setComm_BYBB(Comm_BYBB);
|
page_parm.setComm_BYBB(Comm_BYBB);
|
setButttonState(true);
|
|
res = true;
|
}
|
|
return res;
|
}
|
|
public void closeCommPort() {
|
if(null != Comm_BYBB) {
|
Comm_BYBB.exitCommPortThread();
|
Comm_BYBB = null;
|
}
|
|
page_sendudp.closeCommPort();
|
setButttonState(false);
|
}
|
|
public void setButttonState(boolean state) {
|
page_sendudp.setButttonState(state);
|
panel_dfu.setButttonState(state);
|
page_parm.setButttonState(state);
|
}
|
|
public void updateData() {
|
try{
|
if(null != Comm_BYBB) {
|
tf_dev_version.setText(Comm_BYBB.dev_stat_version_Str);
|
lbl_dataname.setText((String) list_datsel.getSelectedValue());
|
int dat_num = list_datsel.getSelectedIndex() + CommBYBB.DAT_BUF_EthCpt1;
|
String dat_format = "%02X";
|
String str_format = "16½øÖÆÊý";
|
if(CommBYBB.DAT_BUF_STATES == dat_num) {
|
dat_format = "%d";
|
str_format = "10½øÖÆÊý";
|
} else if(CommBYBB.DAT_CAL_LED_STATE == dat_num) {
|
dat_format = "%04X";
|
}
|
lbl_dataname.setText((String) list_datsel.getSelectedValue() + ": " + str_format);
|
|
Comm_BYBB.setReadDataCmd_Num(dat_num);
|
int[] dat_show = new int[0];
|
if(dat_num <= CommBYBB.DAT_CAL_ALARM) {
|
byte[] dat_tmp = Comm_BYBB.getByteData(dat_num);
|
dat_show = new int[dat_tmp.length];
|
for(int n=0; n<dat_tmp.length; n++) {
|
dat_show[n] = dat_tmp[n]&0xFF;
|
}
|
} else {
|
short[] dat_tmp = Comm_BYBB.getShortData(dat_num);
|
dat_show = new int[dat_tmp.length];
|
for(int n=0; n<dat_tmp.length; n++) {
|
dat_show[n] = dat_tmp[n]&0xFFFF;
|
}
|
}
|
|
int low_cnt = dat_show.length/10;
|
if(0 != (dat_show.length%10)) {
|
low_cnt += 1;
|
}
|
|
int[] dat = new int[dat_show.length];
|
for(int n=0; n<dat_show.length; n++) {
|
dat[n] = dat_show[n]&0xFF;
|
}
|
|
if(dataRow.size() != low_cnt)
|
{
|
dataRow.clear();
|
for(int low_n=0; low_n<low_cnt; low_n++) {
|
Vector<String> row = new Vector<String>();
|
row.addElement(String.format("%03d", low_n));
|
for(int col_n=0; col_n<10; col_n++) {
|
if((low_n*10 + col_n) < dat_show.length) {
|
row.addElement(String.format(dat_format, dat_show[low_n*10 + col_n]));
|
} else {
|
row.addElement("");
|
}
|
}
|
dataRow.add(row);
|
}
|
} else {
|
for(int low_n=0; low_n<low_cnt; low_n++) {
|
for(int col_n=0; col_n<10; col_n++) {
|
if((low_n*10 + col_n) < dat_show.length) {
|
dataRow.get(low_n).setElementAt(String.format(dat_format, dat_show[low_n*10 + col_n]), col_n+1);
|
}
|
}
|
}
|
}
|
table_bybb_data.updateUI();
|
|
/***********************************************/
|
page_parm.updateData();
|
/***********************************************/
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
//JOptionPane.showMessageDialog(null, "updateData():" + e.getMessage());
|
}
|
}
|
}
|