package com.dev.fbs9600_mon; import gnu.io.SerialPort; import java.awt.Toolkit; import java.io.InputStream; import java.io.OutputStream; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.Date; import java.util.zip.CRC32; import javax.swing.JOptionPane; import javax.swing.JTextArea; import javax.swing.JTextField; import org.apache.logging.log4j.Logger; import sp_comm.CommSerialPort; import sp_comm.SP_COMM; import main.page_debug_inf; import com.Com; import com.Crc16; import com.PlaySound; import com.app.reg.RegistCoade; public class SPCommMon implements Runnable/*, SerialPortEventListener*/ { public static final int COMM_PORT_TYPE_Serial = 0; public static final int COMM_PORT_TYPE_Socket = 1; public static final short CMD_TYPE_READ = 0x03; public static final short CMD_TYPE_WRITE = 0x05; public static final short UART_MonVolSetAddr_RegAddr = 0x000B; public static final short UART_MonVol1AdjSlope_RegAddr = 0x000C; public static final short UART_MonTmp1AdjSlope_RegAddr = 0x000D; public static final short UART_MonVol1AdjOffset_RegAddr = 0x000E; public static final short UART_MonVol1AdjReset_RegAddr = 0x000F; public static final short UART_MonVol2AdjSlope_RegAddr = 0x00010; public static final short UART_MonTmp2AdjSlope_RegAddr = 0x00011; public static final short UART_MonVol2AdjOffset_RegAddr = 0x0012; public static final short UART_MonVol2AdjReset_RegAddr = 0x0013; public static final short UART_CurrAddrSet_RegAddr = 0x1010; public static final short UART_CurrRangeSet_RegAddr = 0x1011; public static final short UART_CurrOffset_RegAddr = 0x1012; public static final short UART_SetCurrSlope_RegAddr = 0x1013; public static final short UART_CurrTestStart_RegAddr = 0x1014; public static final short UART_CurrFloat_Offset_RegAddr = 0x1016; //ÇåÁ㸡³äµçÁ÷Áãµã public static final short UART_SetCurrFloat_Slope_RegAddr = 0x1017; //У׼¸¡³äµçÁ÷бÂÊ public static final short UART_MonomerSetJunHengVol_RegAddr = 0x0008; public static final short UART_MonomerClrTmpAddr_RegAddr = 0x0009; public static final short UART_MonomerLowSign_RegAddr = 0x000A; public static final short UART_MonomerSetAddr_RegAddr = 0x000B; public static final short UART_MonomerResTest_RegAddr = 0x000C; public static final short UART_MonomerAdjVol_RegAddr = 0x000D; public static final short UART_MonomerAdjTemp_RegAddr = 0x000E; public static final short UART_MonomerAdjRes_RegAddr = 0x000F; public static final short UART_MonomerAdjOffSet_RegAddr = 0x0010; //Æ«ÒÆÁ¿ public static final short UART_MonomerAdjReset_RegAddr = 0x0011; //¸´Î» public static final short UART_MonomerDFU_RegAddr = 0x0012; //Æô¶¯dfu public static final byte CMD_FBS9100_WriteDFU = (byte) 0x86; public static final byte CMD_FBS9100_ReadDFU = (byte) 0x87; public static final byte BOOTLOADER_CMD_QUIT = 0; public static final byte BOOTLOADER_CMD_GETINF = 1; public static final byte BOOTLOADER_CMD_WRITE = 2; public static final byte BOOTLOADER_CMD_READ = 3; public static final int DEV_TYPE_MON_SAMD09 = 0; public static final int DEV_TYPE_MON_MSP430 = 1; public static final int DEV_TYPE_MON_MSP430_RF = 2; public static final int DEV_TYPE_MON_SWM = 3; //»ªÐ¾ÍþÌØmcu public static final int DEV_TYPE_Curr = 100; public static final int DEV_TYPE_GroupVol = 110; public static final int DEV_TYPE_FCF651GroupVol = 111; public static final int DEV_TYPE_NTM = 120; public static final int DEV_TYPE_BYBB = 130; public int m_DEV_TYPE = DEV_TYPE_FCF651GroupVol; private SP_COMM m_COMM = null; private SPCommMon_DFU m_SPCommDFU = null; // ÊäÈëÊä³öÁ÷ public InputStream inputStream; public OutputStream outputStream; // RS-232µÄ´®ÐÐ¿Ú public SerialPort serialPort; public boolean CommThreadRunning = false; private ByteBuffer CommRxBuffer = ByteBuffer.allocate(512); private ByteBuffer CommTxBuffer = ByteBuffer.allocate(512); public int comm_tx_cnt = 0; public int comm_rx_cnt = 0; public short comm_OK_cnt = 0; public short comm_Err_cnt = 0; public boolean dt_new_tag = false; private int comm_bautrate = 9600; public int dt_target_addr = 0; public short dt_dfu_addr_start = 0; public short dt_dfu_addr_end = 0; public short dt_addr = 0; public short dt_junhengcurr = 0; public short dt_vol = 0; public short dt_tmp = 0; public short dt_abn_curr = 0; public int dt_res = 0; public int dt_res_conn = 0; public short dt_louye = 0; public short dt_version = 0; public short dt_voltype = -1; public int dt_rescurr = 0; public int dt_res_asyscode = 0; public int dt_lockpage_count = 0; public int dt_ssb = 0; public short mAddrSettedNow = 0; public int mBianHao_TestRes = -1; public boolean mBianHaoPIN_Low = false; //----------------------------------------------------------// public short dt_curr = 0; public short dt_curr_dir = 0; public short dt_curr_float = 0; public short dt_curr_float_dir = 0; public short dt_peakavg_curr = 0; public int dt_peak_curr = 0; public int dt_currrange = 0; public int dt_curr_slope = 0; public int dt_curr_float_slope = 0; //----------------------------------------------------------// public short dt_vol_1 = 0; public short dt_tmp_1 = 0; public short dt_vol_2 = 0; public short dt_tmp_2 = 0; //----------------------------------------------------------// private short dt_cmd = CMD_TYPE_READ; private short dt_cmd_regaddr = 0; private short dt_cmd_regcnt = 0; private short dt_cmd_data = 0; private short dt_cmd_data1 = 0; private boolean dt_cmd_guangbo = false; private boolean dt_normal_comm_en = true; public boolean dt_update_en = false; private String dt_update_file = ""; private int dt_dfu_bitrate = 9600; boolean dt_dfu_read_check_en = false; public JTextArea dt_show_dfu_inf = null; public String dt_set_addr_res_inf = ""; public char[] dt_dfu_pwd = new char[6]; public Date dt_app_start_time = new Date(); public char[] dt_dfu_pwd_auto = new char[6]; private String dt_dfu_pwd_sn = ""; int dt_multy_comm_type = CommSerialPort.mutycomm_Type_Samd09; private JTextField addr_TextField = null; private boolean cmd_Null_En = false; private page_debug_inf dt_debug_inf; private int m_COMM_PORT_TYPE = 0; private Logger m_Log = null; public SPCommMon(int addr_t, int bitrate, int dev_type, int multy_com_type, JTextArea show_dfu_inf, page_debug_inf debug, Logger log) { dt_target_addr = addr_t & 0xFFFF; comm_bautrate = bitrate; dt_multy_comm_type = multy_com_type; dt_show_dfu_inf = show_dfu_inf; dt_debug_inf = debug; //-------------------------------------------------------------// m_DEV_TYPE = dev_type; //-------------------------------------------------------------// dt_dfu_pwd_sn = RegistCoade.getRegistSerialCoade("amtb_amtb_amtb", "37373737"); CRC32 crc = new CRC32(); crc.update((dt_dfu_pwd_sn + "ÄÏÎÞ°¢ÃÖÍÓ·ð").getBytes()); char[] tmp_char = String.format("%06d", Math.abs(crc.getValue())%1000000).toCharArray(); for(int n=0; n>8)); CommTxBuffer.put((byte) dt_cmd_regaddr); CommTxBuffer.put((byte) (dt_cmd_regcnt>>8)); CommTxBuffer.put((byte) dt_cmd_regcnt); CommTxBuffer.put((byte) (dt_cmd_data>>8)); CommTxBuffer.put((byte) dt_cmd_data); CommTxBuffer.put((byte) (dt_cmd_data1>>8)); CommTxBuffer.put((byte) dt_cmd_data1); dt_cmd = CMD_TYPE_READ; dt_cmd_guangbo = false; } int crc = Crc16.CalCRC16(CommTxBuffer, CommTxBuffer.position()) & 0xFFFF; CommTxBuffer.putShort((short) (crc>>8 | crc<<8)); CommTxBuffer.flip(); } private void makeVolModule_CommTxData() { CommTxBuffer.clear(); if(null != addr_TextField) { dt_target_addr = (short) Integer.parseInt(addr_TextField.getText()) & 0xFFFF; } if(CMD_TYPE_READ == dt_cmd) { CommTxBuffer.put((byte) dt_target_addr); CommTxBuffer.put((byte) 0x03); CommTxBuffer.put((byte) 0x00); CommTxBuffer.put((byte) 0x00); CommTxBuffer.put((byte) 0x00); CommTxBuffer.put((byte) 0x09); } else { CommTxBuffer.put((byte) dt_target_addr); CommTxBuffer.put((byte) 0x05); CommTxBuffer.put((byte) (dt_cmd_regaddr>>8)); CommTxBuffer.put((byte) dt_cmd_regaddr); CommTxBuffer.put((byte) (dt_cmd_regcnt>>8)); CommTxBuffer.put((byte) dt_cmd_regcnt); CommTxBuffer.put((byte) (dt_cmd_data>>8)); CommTxBuffer.put((byte) dt_cmd_data); dt_cmd = CMD_TYPE_READ; } int crc = Crc16.CalCRC16(CommTxBuffer, CommTxBuffer.position()) & 0xFFFF; CommTxBuffer.putShort((short) (crc>>8 | crc<<8)); CommTxBuffer.flip(); } private void makeCurrModule_CommTxData() { CommTxBuffer.clear(); if(null != addr_TextField) { dt_target_addr = (short) Integer.parseInt(addr_TextField.getText()) & 0xFFFF; } if(CMD_TYPE_READ == dt_cmd) { CommTxBuffer.put((byte) dt_target_addr); CommTxBuffer.put((byte) 0x03); CommTxBuffer.put((byte) 0x10); CommTxBuffer.put((byte) 0x00); CommTxBuffer.put((byte) 0x00); if(dt_version < 20) { CommTxBuffer.put((byte) 8); } else { CommTxBuffer.put((byte) 11); } } else { CommTxBuffer.put((byte) dt_target_addr); CommTxBuffer.put((byte) 0x05); CommTxBuffer.put((byte) (dt_cmd_regaddr>>8)); CommTxBuffer.put((byte) dt_cmd_regaddr); CommTxBuffer.put((byte) (dt_cmd_regcnt>>8)); CommTxBuffer.put((byte) dt_cmd_regcnt); CommTxBuffer.put((byte) (dt_cmd_data>>8)); CommTxBuffer.put((byte) dt_cmd_data); dt_cmd = CMD_TYPE_READ; } int crc = Crc16.CalCRC16(CommTxBuffer, CommTxBuffer.position()) & 0xFFFF; CommTxBuffer.putShort((short) (crc>>8 | crc<<8)); CommTxBuffer.flip(); } private void makeCommTxDataNull() { CommTxBuffer.clear(); CommTxBuffer.put((byte) 0xFF); CommTxBuffer.put((byte) 0x00); CommTxBuffer.put((byte) (0)); CommTxBuffer.put((byte) 0); CommTxBuffer.put((byte) (0)); CommTxBuffer.put((byte) 0); CommTxBuffer.put((byte) 0); CommTxBuffer.put((byte) 0); int crc = Crc16.CalCRC16(CommTxBuffer, CommTxBuffer.position()) & 0xFFFF; CommTxBuffer.putShort((short) (crc>>8 | crc<<8)); CommTxBuffer.flip(); } private boolean checkCommBuf(ByteBuffer buf_t) { boolean res = false; if(buf_t.limit() >= 5) { buf_t.position(buf_t.limit()-2); int crc = buf_t.getShort() & 0xFFFF; crc = ((crc>>8) | (crc<<8)) & 0xFFFF; int crc_cal = Crc16.CalCRC16(buf_t, buf_t.limit()-2) & 0xFFFF; /*************************************************/ if(crc_cal == crc) { res = true; } /*************************************************/ } else { res = false; } return res; } public void tr_Msg(ByteBuffer bbf_tx, ByteBuffer bbf_rx, boolean showdat) { if(++comm_tx_cnt > 32500) { comm_tx_cnt = 0; } m_COMM.tr_Msg(bbf_tx, bbf_rx, dt_multy_comm_type, dt_debug_inf, showdat); /* if(COMM_PORT_TYPE_Serial == m_COMM_PORT_TYPE) { m_COMM.m_SP_Comm.SP_Comm(bbf_tx, bbf_rx, dt_multy_comm, dt_debug_inf, showdat); } else { m_SocketComm.SocketComm(bbf_tx, bbf_rx, dt_debug_inf, showdat); } */ } private void closeCommPort() { m_COMM.closeCommPort(); /* if(COMM_PORT_TYPE_Serial == m_COMM_PORT_TYPE) { m_SP_Comm.serialPort.close(); } else { m_SocketComm.socketClose(); } */ } public void exitCommPortThread() { CommThreadRunning = false; setUpdateCmd(false, false, "", comm_bautrate); } public void setCommCmd(short cmd, short cmd_reg_addr, short cmd_reg_cnt, short cmd_data, short cmd_data1) { dt_cmd = cmd; dt_cmd_regaddr = cmd_reg_addr; dt_cmd_regcnt = cmd_reg_cnt; dt_cmd_data = cmd_data; dt_cmd_data1 = cmd_data1; if(UART_MonomerLowSign_RegAddr == dt_cmd_regaddr) { mBianHao_TestRes = -1; } } public void setCommCmd_gb(short cmd, short cmd_reg_addr, short cmd_reg_cnt, short cmd_data, short cmd_data1, boolean guangbo_t) { dt_cmd = cmd; dt_cmd_regaddr = cmd_reg_addr; dt_cmd_regcnt = cmd_reg_cnt; dt_cmd_data = cmd_data; dt_cmd_data1 = cmd_data1; dt_cmd_guangbo = guangbo_t; if(UART_MonomerLowSign_RegAddr == dt_cmd_regaddr) { mBianHao_TestRes = -1; } } public void clearResDataBuf() { dt_res = -1; dt_rescurr = -1; dt_res_asyscode = -1; } public void setUpdateCmd(boolean update_en, boolean read_ckeck_en, String filepath, int dfu_bitrate) { dt_update_en = update_en; dt_dfu_read_check_en = read_ckeck_en; dt_update_file = filepath; dt_dfu_bitrate = dfu_bitrate; if(false == dt_update_en) { if(null != m_SPCommDFU) { m_SPCommDFU.setDFUCommState(false, false); } } } public void setNormalCommState(boolean stat) { dt_normal_comm_en = stat; } private void processRxData(ByteBuffer bbf_rx, boolean check_en) { if(false == checkCommBuf(bbf_rx)) { if(true == check_en) { comm_OK_cnt = 0; } if((comm_OK_cnt<1) && (0==dt_res)) { dt_new_tag = false; } return; } if(bbf_rx.limit() > 16) { bbf_rx.position(0); dt_addr = bbf_rx.get(); bbf_rx.get(); bbf_rx.get(); int tmp_val = bbf_rx.getShort()&0xFFFF; if((tmp_val & 0x8000) > 0) { dt_junhengcurr = (short) ((short)(tmp_val&(~0x8000)) * (-1)); } else { dt_junhengcurr = (short)(tmp_val); } dt_vol = bbf_rx.getShort(); dt_tmp = bbf_rx.getShort(); dt_abn_curr = bbf_rx.getShort(); dt_res = (int) (bbf_rx.getShort()&0xFFFF); dt_addr = bbf_rx.getShort(); dt_version = bbf_rx.getShort(); //dt_voltype = bbf_rx.getShort(); short vol_type = bbf_rx.getShort(); mBianHaoPIN_Low = ((vol_type&(1<<8)) > 0); dt_voltype = (short) (vol_type & 0x7F); dt_rescurr = (int)(bbf_rx.getShort()&0xFFFF); if(bbf_rx.hasRemaining()) { dt_res_asyscode = (int)(bbf_rx.getShort()&0xFFFF); } if(bbf_rx.hasRemaining()) { if(dt_version > 1000) { dt_louye = (short) (bbf_rx.getShort()&0xFFFF); dt_res_conn = (int) (bbf_rx.getShort()&0xFFFF); } } if(bbf_rx.hasRemaining()) { if(DEV_TYPE_MON_SWM == m_DEV_TYPE) { dt_lockpage_count = (int)(bbf_rx.getShort()); } else { dt_lockpage_count = (int)(bbf_rx.getShort()&0xFFFF); } } if(bbf_rx.hasRemaining()) { dt_ssb = (int)(bbf_rx.getShort()&0xFFFF); } if(++comm_rx_cnt > 32500) { comm_rx_cnt = 0; } if(comm_OK_cnt < 1000) { comm_OK_cnt += 1; } if((comm_OK_cnt > 3) && (comm_OK_cnt < 5)) { if(0 == dt_res) { dt_new_tag = true; mBianHao_TestRes = -1; } else { dt_new_tag = false; } } } } private void processVolModule_RxData(ByteBuffer bbf_rx) { if(false == checkCommBuf(bbf_rx)) { return; } if(bbf_rx.limit() >= 17) { bbf_rx.position(0); dt_addr = bbf_rx.get(); bbf_rx.get();//cmd bbf_rx.get();//bytes dt_vol_1 = bbf_rx.getShort(); dt_tmp_1 = bbf_rx.getShort(); dt_vol_2 = bbf_rx.getShort(); dt_tmp_2 = bbf_rx.getShort(); bbf_rx.getShort(); dt_version = bbf_rx.getShort(); dt_voltype = bbf_rx.getShort(); dt_lockpage_count = bbf_rx.getShort(); dt_ssb = bbf_rx.getShort(); if(++comm_rx_cnt > 32500) { comm_rx_cnt = 0; } if(comm_OK_cnt < 1000) { comm_OK_cnt += 1; } } } private void processCurrModule_RxData(ByteBuffer bbf_rx) { if(false == checkCommBuf(bbf_rx)) { return; } if(bbf_rx.limit() >= 17) { bbf_rx.position(0); dt_addr = bbf_rx.get(); bbf_rx.get();//cmd bbf_rx.get();//bytes short ver = bbf_rx.getShort(); bbf_rx.getShort(); dt_curr = bbf_rx.getShort(); dt_curr_dir = bbf_rx.getShort(); dt_peakavg_curr = bbf_rx.getShort(); dt_peak_curr = bbf_rx.getShort(); dt_currrange = bbf_rx.getShort(); dt_curr_slope = bbf_rx.getShort(); if((dt_version >= 20) && (bbf_rx.remaining()>=6)) { dt_curr_float = bbf_rx.getShort(); dt_curr_float_dir = bbf_rx.getShort(); dt_curr_float_slope = bbf_rx.getShort(); } dt_version = ver; if(++comm_rx_cnt > 32500) { comm_rx_cnt = 0; } if(comm_OK_cnt < 1000) { comm_OK_cnt += 1; } } } public void run() { int null_comm_cmd_cnt = 0; while(true == CommThreadRunning) { if(false == dt_update_en) { try { if(false == dt_normal_comm_en) { Thread.sleep(100); continue; } boolean cmd_set_addr = ((CMD_TYPE_WRITE==dt_cmd) && (UART_MonomerSetAddr_RegAddr==dt_cmd_regaddr)); boolean cmd_Set_bianhao_Low = ((CMD_TYPE_WRITE==dt_cmd) && (UART_MonomerLowSign_RegAddr==dt_cmd_regaddr)); boolean cmd_Set_bianhao_High = ((CMD_TYPE_WRITE==dt_cmd) && (UART_MonomerClrTmpAddr_RegAddr==dt_cmd_regaddr)); if(true == dt_update_en) { continue; } if(null_comm_cmd_cnt < 300) { null_comm_cmd_cnt++; } else { null_comm_cmd_cnt = 0; } //---------------------- make tx data --------------------------// if(SPCommMon.DEV_TYPE_Curr == m_DEV_TYPE) { makeCurrModule_CommTxData(); } else if(SPCommMon.DEV_TYPE_GroupVol == m_DEV_TYPE) { makeVolModule_CommTxData(); } else { if((null_comm_cmd_cnt % 10) == 0) { if(true == cmd_Null_En) { makeCommTxDataNull(); } else { makeCommTxData(); } } else { makeCommTxData(); } } //----------------------- tx rx data ---------------------------// tr_Msg(CommTxBuffer, CommRxBuffer, true); //----------------------- process data -------------------------// if(SPCommMon.DEV_TYPE_Curr == m_DEV_TYPE) { processCurrModule_RxData(CommRxBuffer); } else if(SPCommMon.DEV_TYPE_GroupVol == m_DEV_TYPE) { processVolModule_RxData(CommRxBuffer); } else { processRxData(CommRxBuffer, (false==cmd_Set_bianhao_Low)&&(false==cmd_Set_bianhao_High)&&(false==cmd_set_addr)); } //-------------------------------------------------------------// Thread.sleep(100); if(true == cmd_set_addr) { makeCommTxData(); tr_Msg(CommTxBuffer, CommRxBuffer, true); processRxData(CommRxBuffer, true); String wav_f = "6133.wav"; dt_set_addr_res_inf = "ÉèÖñàºÅΪ" + dt_addr + "³É¹¦ @ " + Com.get_DTF(new Date(), Com.DTF_YMDhms); if(dt_addr != (mAddrSettedNow+1)) { wav_f = "4577.wav"; dt_set_addr_res_inf = "ÉèÖñàºÅΪ" + (mAddrSettedNow+1) + "ʧ°Ü!!!!!!! @ " + Com.get_DTF(new Date(), Com.DTF_YMDhms); } mAddrSettedNow = dt_addr; new PlaySound(wav_f); } if(true == cmd_Set_bianhao_Low) { makeCommTxData(); tr_Msg(CommTxBuffer, CommRxBuffer, true); processRxData(CommRxBuffer, true); if((dt_ssb & (1<<8)) > 0) { this.setCommCmd(CMD_TYPE_WRITE, UART_MonomerClrTmpAddr_RegAddr, (short)1, (short)0x00, (short)0x00); } else { mBianHao_TestRes = 1; } } if(true == cmd_Set_bianhao_High) { makeCommTxData(); tr_Msg(CommTxBuffer, CommRxBuffer,true); processRxData(CommRxBuffer, true); if((dt_ssb & (1<<8)) == 0) { mBianHao_TestRes = 0; } else { mBianHao_TestRes = 2; } } Thread.sleep(200); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); exitCommPortThread(); JOptionPane.showMessageDialog(null, "Monomer CommPort ´®¿ÚÒì³£: " + e.getMessage()); } } else { try { makeCommTxData(); tr_Msg(CommTxBuffer, CommRxBuffer, false); Thread.sleep(100); } catch (InterruptedException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } setCommBautrate(dt_dfu_bitrate); String dfu_text_inf = ""; m_SPCommDFU = new SPCommMon_DFU(m_COMM, m_DEV_TYPE, dt_target_addr, dt_dfu_read_check_en, dt_show_dfu_inf, dt_debug_inf); boolean check_res = m_SPCommDFU.runDFU(dt_update_file, dfu_text_inf); if((true == dt_update_en) && (true == CommThreadRunning)) { if(false == check_res) { Toolkit.getDefaultToolkit().beep(); try { Thread.sleep(500); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } Toolkit.getDefaultToolkit().beep(); dt_update_en = false; } else { if(dt_target_addr < dt_dfu_addr_end) { dt_target_addr += 1; this.setCommCmd(SPCommMon.CMD_TYPE_WRITE, SPCommMon.UART_MonomerDFU_RegAddr, (short)0x55AA, (short)0xAA55, (short) 0x7F7F); } else { dt_update_en = false; } } } //-----------------------------------------------------------------------------// dfu_text_inf = dt_show_dfu_inf.getText(); dt_show_dfu_inf.setText(dfu_text_inf + "DFU Process Stopped!\n"); //-----------------------------------------------------------------------------// setCommBautrate(comm_bautrate); //-----------------------------------------------------------------------------// //-----------------------------------------------------------------------------// for(int n=0; n<2; n++) { try { Thread.sleep(200); } catch (InterruptedException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } makeCommTxDataNull(); tr_Msg(CommTxBuffer, CommRxBuffer, true); } try { Thread.sleep(200); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } //-----------------------------------------------------------------------------// //-----------------------------------------------------------------------------// } } /******************************************************************************/ closeCommPort(); /******************************************************************************/ dt_debug_inf.addDebugInf(Com.get_DTF(new Date(), Com.DTF_YMDhms_S) + " CommPort is quit, Dev Id: " + m_DEV_TYPE + ", COMM_PORT_TYPE: " + m_COMM_PORT_TYPE + "\n"); /******************************************************************************/ } }