package com.dev.btsm;
|
|
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.nio.ByteBuffer;
|
import java.util.Vector;
|
|
import javax.swing.JButton;
|
import javax.swing.JMenuItem;
|
import javax.swing.JOptionPane;
|
import javax.swing.JPanel;
|
import javax.swing.JPopupMenu;
|
import javax.swing.JScrollPane;
|
import javax.swing.JTable;
|
import javax.swing.JTextField;
|
import javax.swing.UIManager;
|
import javax.swing.border.TitledBorder;
|
import javax.swing.table.DefaultTableModel;
|
|
import org.apache.logging.log4j.Logger;
|
|
import com.dev.bts.data.FBS9100_ComBase;
|
|
import main.page_debug_inf;
|
|
public class bts_page_base extends JPanel {
|
public CommBTS Comm_BTS;
|
private page_debug_inf panel_ZDHJ_debug;
|
private JTable table_zdhj_data;
|
private Vector<String> columnVector;
|
private Vector<Vector<String>> dataRow;
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 1L;
|
private JTextField tf_dev_version;
|
private JTextField tf_dev_datetime;
|
private JTextField tf_dev_moncount;
|
private JTextField tf_batt_state_1;
|
private JTextField tf_online_vol_1;
|
private JTextField tf_op_rest_inf;
|
private JTextField tf_group_vol_1;
|
private JTextField tf_group_curr_1;
|
private JTextField tf_dev_temp;
|
private JButton btn_start_discharge;
|
private JButton btn_stop_test;
|
private JButton btn_start_res_test;
|
private JTextField tf_group_vol_2;
|
private JTextField tf_online_vol_2;
|
private JTextField tf_group_curr_2;
|
private JTextField tf_batt_state_2;
|
private JButton btnNewButton;
|
/**
|
* Create the panel.
|
*/
|
public bts_page_base() {
|
setLayout(new BorderLayout(0, 0));
|
|
JPanel panel_44 = new JPanel();
|
panel_44.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "\u5355\u4F53\u7535\u538B(V) / \u5355\u4F53\u5185\u963B(m\u03A9) / \u5355\u4F53\u6E29\u5EA6(\u2103)", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
|
add(panel_44);
|
panel_44.setLayout(new BorderLayout(0, 0));
|
|
JScrollPane scrollPane_2 = new JScrollPane();
|
panel_44.add(scrollPane_2);
|
|
table_zdhj_data = new JTable();
|
columnVector = new Vector<String>();
|
columnVector.add("µ¥Ìå±àºÅ");
|
columnVector.add("µçѹ(V)");
|
columnVector.add("ÄÚ×è(m¦¸)");
|
columnVector.add("ζÈ(¡æ)");
|
|
dataRow = new Vector<Vector<String>>();
|
table_zdhj_data.setModel(new DefaultTableModel(dataRow, columnVector));
|
MouseAdapter m_a = new MouseAdapter() {
|
public void mouseReleased(MouseEvent e) {
|
if(e.getSource() != table_zdhj_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_zdhj_data.addMouseListener(m_a);
|
scrollPane_2.setViewportView(table_zdhj_data);
|
|
JPanel panel_57 = new JPanel();
|
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(4, 2, 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(10);
|
|
JPanel panel_46 = new JPanel();
|
panel_38.add(panel_46);
|
panel_46.setBorder(new TitledBorder(null, "\u5355\u4F53\u603B\u6570", TitledBorder.LEADING, TitledBorder.TOP, null, null));
|
panel_46.setLayout(new BorderLayout(0, 0));
|
|
tf_dev_moncount = new JTextField();
|
tf_dev_moncount.setFont(new Font("Courier New", Font.PLAIN, 14));
|
panel_46.add(tf_dev_moncount);
|
tf_dev_moncount.setColumns(10);
|
|
JPanel panel_50 = new JPanel();
|
panel_50.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "\u5728\u7EBF\u7535\u538B(V)", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
|
panel_38.add(panel_50);
|
panel_50.setLayout(new GridLayout(2, 1, 0, 0));
|
|
tf_online_vol_1 = new JTextField();
|
tf_online_vol_1.setFont(new Font("Courier New", Font.PLAIN, 14));
|
panel_50.add(tf_online_vol_1);
|
tf_online_vol_1.setColumns(10);
|
|
tf_online_vol_2 = new JTextField();
|
tf_online_vol_2.setFont(new Font("Courier New", Font.PLAIN, 14));
|
panel_50.add(tf_online_vol_2);
|
tf_online_vol_2.setColumns(10);
|
|
JPanel panel_39 = new JPanel();
|
panel_39.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "\u7EC4\u7AEF\u7535\u538B(V) ", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
|
panel_38.add(panel_39);
|
panel_39.setLayout(new GridLayout(2, 1, 8, 0));
|
|
tf_group_vol_1 = new JTextField();
|
tf_group_vol_1.setFont(new Font("Courier New", Font.PLAIN, 14));
|
panel_39.add(tf_group_vol_1);
|
tf_group_vol_1.setColumns(10);
|
|
tf_group_vol_2 = new JTextField();
|
tf_group_vol_2.setFont(new Font("Courier New", Font.PLAIN, 14));
|
panel_39.add(tf_group_vol_2);
|
tf_group_vol_2.setColumns(10);
|
|
JPanel panel_40 = new JPanel();
|
panel_40.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "\u7EC4\u7AEF\u7535\u6D41(A)", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
|
panel_38.add(panel_40);
|
panel_40.setLayout(new GridLayout(2, 1, 8, 0));
|
|
tf_group_curr_1 = new JTextField();
|
tf_group_curr_1.setFont(new Font("Courier New", Font.PLAIN, 14));
|
panel_40.add(tf_group_curr_1);
|
tf_group_curr_1.setColumns(10);
|
|
tf_group_curr_2 = new JTextField();
|
tf_group_curr_2.setFont(new Font("Courier New", Font.PLAIN, 14));
|
panel_40.add(tf_group_curr_2);
|
tf_group_curr_2.setColumns(10);
|
|
JPanel panel_55 = new JPanel();
|
panel_55.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "\u7535\u6C60\u72B6\u6001", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
|
panel_38.add(panel_55);
|
panel_55.setLayout(new GridLayout(2, 1, 0, 0));
|
|
tf_batt_state_1 = new JTextField();
|
tf_batt_state_1.setFont(new Font("Courier New", Font.PLAIN, 14));
|
panel_55.add(tf_batt_state_1);
|
tf_batt_state_1.setColumns(10);
|
|
tf_batt_state_2 = new JTextField();
|
tf_batt_state_2.setFont(new Font("Courier New", Font.PLAIN, 14));
|
panel_55.add(tf_batt_state_2);
|
tf_batt_state_2.setColumns(10);
|
|
JPanel panel_41 = new JPanel();
|
panel_41.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "\u8BBE\u5907\u6E29\u5EA6(\u2103)", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
|
panel_38.add(panel_41);
|
panel_41.setLayout(new GridLayout(0, 1, 8, 0));
|
|
tf_dev_temp = new JTextField();
|
tf_dev_temp.setFont(new Font("Courier New", Font.PLAIN, 14));
|
panel_41.add(tf_dev_temp);
|
tf_dev_temp.setColumns(10);
|
|
JPanel panel_56 = new JPanel();
|
panel_56.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "\u8BBE\u5907\u65F6\u95F4(y-Y-d hh:mm:ss)", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
|
panel_38.add(panel_56);
|
panel_56.setLayout(new BorderLayout(0, 0));
|
|
tf_dev_datetime = new JTextField();
|
tf_dev_datetime.setFont(new Font("Courier New", Font.PLAIN, 14));
|
panel_56.add(tf_dev_datetime);
|
tf_dev_datetime.setColumns(10);
|
|
JPanel panel_58 = new JPanel();
|
panel_57.add(panel_58, BorderLayout.SOUTH);
|
panel_58.setLayout(new GridLayout(2, 1, 0, 0));
|
|
JPanel panel_45 = new JPanel();
|
panel_58.add(panel_45);
|
panel_45.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "\u64CD\u4F5C", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
|
panel_45.setLayout(new GridLayout(0, 2, 4, 0));
|
btn_start_discharge = new JButton("\u542F\u52A8\u653E\u7535");
|
btn_start_discharge.setEnabled(false);
|
btn_start_discharge.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent e) {
|
Comm_BTS.setCommCmd(FBS9100_ComBase.CMD_StartDischarge, ByteBuffer.allocate(0));
|
}
|
});
|
btn_start_discharge.setFont(new Font("ËÎÌå", Font.PLAIN, 12));
|
panel_45.add(btn_start_discharge);
|
|
btn_stop_test = new JButton("\u505C\u6B62");
|
btn_stop_test.setEnabled(false);
|
btn_stop_test.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent e) {
|
Comm_BTS.setCommCmd(FBS9100_ComBase.CMD_Stop, ByteBuffer.allocate(0));
|
}
|
});
|
btn_stop_test.setFont(new Font("ËÎÌå", Font.PLAIN, 12));
|
panel_45.add(btn_stop_test);
|
|
btn_start_res_test = new JButton("\u542F\u52A8\u5185\u963B\u6D4B\u8BD5");
|
btn_start_res_test.setEnabled(false);
|
btn_start_res_test.setFont(new Font("ËÎÌå", Font.PLAIN, 12));
|
btn_start_res_test.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent e) {
|
Comm_BTS.setCommCmd(FBS9100_ComBase.CMD_StartResDischarge, ByteBuffer.allocate(0));
|
}
|
});
|
panel_45.add(btn_start_res_test);
|
|
btnNewButton = new JButton("\u542F\u52A8DFU");
|
btnNewButton.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent arg0) {
|
Comm_BTS.setCommCmd(FBS9100_ComBase.CMD_SystemUpdate, ByteBuffer.allocate(0));
|
}
|
});
|
panel_45.add(btnNewButton);
|
|
tf_op_rest_inf = new JTextField();
|
tf_op_rest_inf.setColumns(10);
|
JPanel panel_42 = new JPanel();
|
panel_58.add(panel_42);
|
panel_42.setBorder(new TitledBorder(null, "\u64CD\u4F5C\u7ED3\u679C\u4FE1\u606F", TitledBorder.LEADING, TitledBorder.TOP, null, null));
|
panel_42.setLayout(new BorderLayout(0, 0));
|
panel_42.add(tf_op_rest_inf, BorderLayout.CENTER);
|
|
panel_ZDHJ_debug = new page_debug_inf();
|
|
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_BTS = new CommBTS(dev_addr, bitrate_or_ipport, panel_ZDHJ_debug, log);
|
if(true == Comm_BTS.OpenCommPort(comm_type, spname_or_ipaddr, bitrate_or_ipport)) {
|
Thread spcommThread = new Thread(Comm_BTS);
|
spcommThread.start();
|
|
setButttonState(true);
|
|
res = true;
|
}
|
|
return res;
|
}
|
|
public void closeCommPort() {
|
if(null != Comm_BTS) {
|
Comm_BTS.exitCommPortThread();
|
Comm_BTS = null;
|
|
setButttonState(false);
|
}
|
}
|
|
public void setButttonState(boolean state) {
|
btn_start_discharge.setEnabled(state);
|
btn_stop_test.setEnabled(state);
|
btn_start_res_test.setEnabled(state);
|
}
|
|
public void updateData() {
|
try{
|
if(null != Comm_BTS) {
|
tf_dev_version.setText(Comm_BTS.dev_stat_version_Str);
|
tf_dev_moncount.setText(String.format("%d", Comm_BTS.m_FBS_VCData.battSum));
|
|
String group_onlinevol_text = "";
|
String group_vol_text = "";
|
String group_curr_text = "";
|
String batt_state_text = "";
|
for(int n=0; n<2; n++) {
|
group_onlinevol_text += String.format("G%d:%1.2f ", n+1, Comm_BTS.m_FBS_VCData.onlinevol[n]);
|
group_vol_text += String.format("G%d:%1.2f ", n+1, Comm_BTS.m_FBS_VCData.groupvol[n]);
|
group_curr_text += String.format("G%d:%1.1f ", n+1, Comm_BTS.m_FBS_VCData.battcurr[n]);
|
batt_state_text += String.format("G%d:%d ", n+1, Comm_BTS.m_FBS_VCData.battstate[n]);
|
}
|
tf_group_vol_1.setText(group_vol_text);
|
tf_online_vol_1.setText(group_onlinevol_text);
|
tf_group_curr_1.setText(group_curr_text);
|
tf_batt_state_1.setText(batt_state_text);
|
|
group_onlinevol_text = "";
|
group_vol_text = "";
|
group_curr_text = "";
|
batt_state_text = "";
|
for(int n=2; n<FBS9100_ComBase.BattGroupCountMax; n++) {
|
group_onlinevol_text += String.format("G%d:%1.2f ", n+1, Comm_BTS.m_FBS_VCData.onlinevol[n]);
|
group_vol_text += String.format("G%d:%1.2f ", n+1, Comm_BTS.m_FBS_VCData.groupvol[n]);
|
group_curr_text += String.format("G%d:%1.1f ", n+1, Comm_BTS.m_FBS_VCData.battcurr[n]);
|
batt_state_text += String.format("G%d:%d ", n+1, Comm_BTS.m_FBS_VCData.battstate[n]);
|
}
|
tf_group_vol_2.setText(group_vol_text);
|
tf_online_vol_2.setText(group_onlinevol_text);
|
tf_group_curr_2.setText(group_curr_text);
|
tf_batt_state_2.setText(batt_state_text);
|
tf_dev_temp.setText(String.format("%1.1f", Comm_BTS.m_FBS_VCData.batttemp[0]));
|
tf_dev_datetime.setText(Comm_BTS.m_FBS_VCData.m_SysState.DTime.getDateTimeStr());
|
|
if(CommBTS.DEV_PARAM_DATA_STATE_UPDATE == Comm_BTS.dev_param_data_state) {
|
Comm_BTS.dev_param_data_state = CommBTS.DEV_PARAM_DATA_STATE_NULL;
|
/*
|
tf_zdhj_devaddr.setText(String.format("%d", SerialComm_FBS9100.dev_param_addr));
|
tf_zdhj_curr_range.setText(String.format("%d", SerialComm_FBS9100.dev_param_curr_range));
|
tf_zdhj_autores_interval.setText(String.format("%d", SerialComm_FBS9100.dev_param_auto_restest_interval));
|
tf_zdhj_wenbo_curr_lev.setText(String.format("%1.2f", SerialComm_FBS9100.dev_param_wenbo_curr_lev));
|
cb_zdhj_res_testtype.setSelectedIndex(SerialComm_FBS9100.dev_param_res_test_type);
|
|
tf_zdhj_ch1_cnt.setText(String.format("%d", SerialComm_FBS9100.m_FBS_VCData.battSum));
|
|
tf_zdhj_ch2_cnt.setText(String.format("%d", SerialComm_FBS9100.dev_param_ch_mon_cnt[1]));
|
tf_zdhj_ch3_cnt.setText(String.format("%d", SerialComm_FBS9100.dev_param_ch_mon_cnt[2]));
|
tf_zdhj_ch4_cnt.setText(String.format("%d", SerialComm_FBS9100.dev_param_ch_mon_cnt[3]));
|
tf_zdhj_ch5_cnt.setText(String.format("%d", SerialComm_FBS9100.dev_param_ch_mon_cnt[4]));
|
*/
|
}
|
|
/*
|
String inf_t = "";
|
if(Math.abs(new Date().getTime() - SerialComm_FBS9100.dt_cmd_ack_time.getTime()) < (1000*5)) {
|
inf_t = SPCommFBS9100.ZDHJ_OP_REST_INF_TEXT[SerialComm_FBS9100.dt_cmd_ack]
|
+ " @ " + Com.get_DTF(SerialComm_FBS9100.dt_cmd_ack_time, Com.DTF_YMDhms);
|
}
|
tf_op_rest_inf.setText(inf_t);
|
tf_param_set_inf.setText(inf_t);
|
*/
|
int mon_cnt = Comm_BTS.m_FBS_VCData.battSum;
|
if(dataRow.size() != mon_cnt)
|
{
|
dataRow.clear();
|
for(int n=0; n<mon_cnt; n++) {
|
Vector<String> row = new Vector<String>();
|
row.addElement(String.format("%03d", n+1));
|
row.addElement(String.format("%1.3f", Comm_BTS.m_FBS_VCData.vol[n]));
|
row.addElement(String.format("%1.3f", Comm_BTS.m_FBS_ResCapData.m_res[n]));
|
row.addElement(String.format("%1.1f", Comm_BTS.m_FBS_ResCapData.m_tmp[n]));
|
dataRow.add(row);
|
}
|
} else {
|
for(int n=0; n<mon_cnt; n++) {
|
dataRow.get(n).setElementAt(String.format("%1.3f", Comm_BTS.m_FBS_VCData.vol[n]), 1);
|
dataRow.get(n).setElementAt(String.format("%1.3f", Comm_BTS.m_FBS_ResCapData.m_res[n]), 2);
|
dataRow.get(n).setElementAt(String.format("%1.1f", Comm_BTS.m_FBS_ResCapData.m_tmp[n]), 3);
|
}
|
}
|
table_zdhj_data.updateUI();
|
|
//m_TBarMonVolChart.updateChartData(TBarChart.Bar_Type_MonVol, SerialComm_FBS9100.m_FBS_VCData.vol, mon_cnt);
|
//m_TBarMonResChart.updateChartData(TBarChart.Bar_Type_MonRes, SerialComm_FBS9100.m_FBS_ResCapData.m_res, mon_cnt);
|
//m_TBarMonTmpChart.updateChartData(TBarChart.Bar_Type_MonTmp, SerialComm_FBS9100.m_FBS_ResCapData.m_tmp, mon_cnt);
|
|
/*
|
m_LineMonChart.updateChartData(dt);
|
//if(tab_panel_zdhj)
|
if(SerialComm_FBS9100.m_TaskList.limit() > 10) {
|
SerialComm_FBS9100.m_TaskList.position(0);
|
byte[] str_b = new byte[SerialComm_FBS9100.m_TaskList.limit()];
|
|
for(int n=0; n<str_b.length; n++) {
|
byte tmp = SerialComm_FBS9100.m_TaskList.get();
|
if(tmp > 0) {
|
str_b[n] = tmp;
|
} else {
|
break;
|
}
|
}
|
ta_task_list.setText(new String(str_b, "GB2312"));
|
}*/
|
}
|
} catch (Exception e) {
|
JOptionPane.showMessageDialog(null, "updateData():" + e.getMessage());
|
}
|
}
|
}
|