Device_Simulator_DTS_Tester/bin/com/dev/ica_200kw/IAC_Cmd.classBinary files differ
Device_Simulator_DTS_Tester/bin/com/dev/ica_200kw/IAC_RealData.classBinary files differ
Device_Simulator_DTS_Tester/bin/com/dev/ica_200kw/IAC_TestParam.classBinary files differ
Device_Simulator_DTS_Tester/bin/com/dev/ica_200kw/ModBus_ComBase.classBinary files differ
Device_Simulator_DTS_Tester/bin/com/dev/ica_200kw/SPCommIAC_200KW.classBinary files differ
Device_Simulator_DTS_Tester/bin/com/dev/ica_200kw/iac_200kw_page$1.classBinary files differ
Device_Simulator_DTS_Tester/bin/com/dev/ica_200kw/iac_200kw_page$2.classBinary files differ
Device_Simulator_DTS_Tester/bin/com/dev/ica_200kw/iac_200kw_page$3.classBinary files differ
Device_Simulator_DTS_Tester/bin/com/dev/ica_200kw/iac_200kw_page$4.classBinary files differ
Device_Simulator_DTS_Tester/bin/com/dev/ica_200kw/iac_200kw_page$5.classBinary files differ
Device_Simulator_DTS_Tester/bin/com/dev/ica_200kw/iac_200kw_page$6.classBinary files differ
Device_Simulator_DTS_Tester/bin/com/dev/ica_200kw/iac_200kw_page$7.classBinary files differ
Device_Simulator_DTS_Tester/bin/com/dev/ica_200kw/iac_200kw_page.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$1.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$10.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$11.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$12.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$13.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$14.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$15.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$16.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$17.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$18.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$19.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$2.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$20.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$21.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$22.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$23.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$24.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$25.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$3.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$4.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$5.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$6.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$7.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$8.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer$9.classBinary files differ
Device_Simulator_DTS_Tester/bin/main/main_window_computer.classBinary files differ
Device_Simulator_DTS_Tester/src/com/dev/ica_200kw/IAC_Cmd.java
New file @@ -0,0 +1,19 @@ package com.dev.ica_200kw; public class IAC_Cmd { public static final int Byte_Len = 18; //基本数据长度 public int addr; //地址 public int[] synCode = new int[] {0xAA,0xAA,0xAA}; public int length; //发送字节长度 public int cmd; //操作指令 public int result; //操作返回 public int testType; //测试类型 public int state; //״̬ public int alarm; //停止条件 public int[] back = new int[4]; //预留 public int crc; //crc16 } Device_Simulator_DTS_Tester/src/com/dev/ica_200kw/IAC_RealData.java
New file @@ -0,0 +1,267 @@ package com.dev.ica_200kw; public class IAC_RealData { private float Ua; //a相电压 private float Ub; //b相电压 private float Uc; //c相电压 private float Uab; //a相和b相之间的线电压 private float Ubc; //b相和c相之间的线电压 private float Uca; //c相和a相之间的线电压 private float Ia; //a相电流 private float Ib; //b相电流 private float Ic; //c相电流 private float Fre; //交流频率 private float FT; //功率因数 private float FTa; // private float FTb; // private float FTc; // private float Pa; // private float Pb; // private float Pc; // private float P; //有功功率 private float Qa; // private float Qb; // private float Qc; // private float Q; // private float Sa; // private float Sb; // private float Sc; // private float S; // private float Ep; // private float PHv; // private float PHa; // private float JBXBUa; //基波谐波电压a private float JBXBUb; //基波谐波电压b private float JBXBUc; //基波谐波电压c private float JBXBIa; //基波谐波电流a private float JBXBIb; //基波谐波电流b private float JBXBIc; //基波谐波电流c private int StateAlarm; //状态(0-没有测试 1-稳态测试 2-整定测试 3-瞬态测试 4-波动测试 5-谐波测试) public float getUa() { return Ua; } public float getUb() { return Ub; } public float getUc() { return Uc; } public float getUab() { return Uab; } public float getUbc() { return Ubc; } public float getUca() { return Uca; } public float getIa() { return Ia; } public float getIb() { return Ib; } public float getIc() { return Ic; } public float getFre() { return Fre; } public float getFT() { return FT; } public float getFTa() { return FTa; } public float getFTb() { return FTb; } public float getFTc() { return FTc; } public float getPa() { return Pa; } public float getPb() { return Pb; } public float getPc() { return Pc; } public float getP() { return P; } public float getQa() { return Qa; } public float getQb() { return Qb; } public float getQc() { return Qc; } public float getQ() { return Q; } public float getSa() { return Sa; } public float getSb() { return Sb; } public float getSc() { return Sc; } public float getS() { return S; } public float getEp() { return Ep; } public float getPHv() { return PHv; } public float getPHa() { return PHa; } public float getJBXBUa() { return JBXBUa; } public float getJBXBUb() { return JBXBUb; } public float getJBXBUc() { return JBXBUc; } public float getJBXBIa() { return JBXBIa; } public float getJBXBIb() { return JBXBIb; } public float getJBXBIc() { return JBXBIc; } public int getStateAlarm() { return StateAlarm; } public void setUa(float ua) { Ua = ua; } public void setUb(float ub) { Ub = ub; } public void setUc(float uc) { Uc = uc; } public void setUab(float uab) { Uab = uab; } public void setUbc(float ubc) { Ubc = ubc; } public void setUca(float uca) { Uca = uca; } public void setIa(float ia) { Ia = ia; } public void setIb(float ib) { Ib = ib; } public void setIc(float ic) { Ic = ic; } public void setFre(float fre) { Fre = fre; } public void setFT(float fT) { FT = fT; } public void setFTa(float fTa) { FTa = fTa; } public void setFTb(float fTb) { FTb = fTb; } public void setFTc(float fTc) { FTc = fTc; } public void setPa(float pa) { Pa = pa; } public void setPb(float pb) { Pb = pb; } public void setPc(float pc) { Pc = pc; } public void setP(float p) { P = p; } public void setQa(float qa) { Qa = qa; } public void setQb(float qb) { Qb = qb; } public void setQc(float qc) { Qc = qc; } public void setQ(float q) { Q = q; } public void setSa(float sa) { Sa = sa; } public void setSb(float sb) { Sb = sb; } public void setSc(float sc) { Sc = sc; } public void setS(float s) { S = s; } public void setEp(float ep) { Ep = ep; } public void setPHv(float pHv) { PHv = pHv; } public void setPHa(float pHa) { PHa = pHa; } public void setJBXBUa(float jBXBUa) { JBXBUa = jBXBUa; } public void setJBXBUb(float jBXBUb) { JBXBUb = jBXBUb; } public void setJBXBUc(float jBXBUc) { JBXBUc = jBXBUc; } public void setJBXBIa(float jBXBIa) { JBXBIa = jBXBIa; } public void setJBXBIb(float jBXBIb) { JBXBIb = jBXBIb; } public void setJBXBIc(float jBXBIc) { JBXBIc = jBXBIc; } public void setStateAlarm(int stateAlarm) { StateAlarm = stateAlarm; } @Override public String toString() { return "ICA_RealData [Ua=" + Ua + ", Ub=" + Ub + ", Uc=" + Uc + ", Uab=" + Uab + ", Ubc=" + Ubc + ", Uca=" + Uca + ", Ia=" + Ia + ", Ib=" + Ib + ", Ic=" + Ic + ", Fre=" + Fre + ", FT=" + FT + ", FTa=" + FTa + ", FTb=" + FTb + ", FTc=" + FTc + ", Pa=" + Pa + ", Pb=" + Pb + ", Pc=" + Pc + ", P=" + P + ", Qa=" + Qa + ", Qb=" + Qb + ", Qc=" + Qc + ", Q=" + Q + ", Sa=" + Sa + ", Sb=" + Sb + ", Sc=" + Sc + ", S=" + S + ", Ep=" + Ep + ", PHv=" + PHv + ", PHa=" + PHa + ", JBXBUa=" + JBXBUa + ", JBXBUb=" + JBXBUb + ", JBXBUc=" + JBXBUc + ", JBXBIa=" + JBXBIa + ", JBXBIb=" + JBXBIb + ", JBXBIc=" + JBXBIc + ", StateAlarm=" + StateAlarm + "]"; } } Device_Simulator_DTS_Tester/src/com/dev/ica_200kw/IAC_TestParam.java
New file @@ -0,0 +1,70 @@ package com.dev.ica_200kw; /** * 测试参数 * @author DELL * */ public class IAC_TestParam { private float CurrHigh; //电流上限值 private float VolLow; //电压下限 private float VolHigh; //电压上限 private float Power; //功率 private int TestTime; //测试时间 private int WTPowerCount; //稳态功率段数 private int ZDPowerCount; //整定功率段数 private int TimeCount; //整定测试间隔 public float getCurrHigh() { return CurrHigh; } public float getVolLow() { return VolLow; } public float getVolHigh() { return VolHigh; } public float getPower() { return Power; } public int getTestTime() { return TestTime; } public int getWTPowerCount() { return WTPowerCount; } public int getZDPowerCount() { return ZDPowerCount; } public int getTimeCount() { return TimeCount; } public void setCurrHigh(float currHigh) { CurrHigh = currHigh; } public void setVolLow(float volLow) { VolLow = volLow; } public void setVolHigh(float volHigh) { VolHigh = volHigh; } public void setPower(float power) { Power = power; } public void setTestTime(int testTime) { TestTime = testTime; } public void setWTPowerCount(int wTPowerCount) { WTPowerCount = wTPowerCount; } public void setZDPowerCount(int zDPowerCount) { ZDPowerCount = zDPowerCount; } public void setTimeCount(int timeCount) { TimeCount = timeCount; } @Override public String toString() { return "ICA_TestParam [CurrHigh=" + CurrHigh + ", VolLow=" + VolLow + ", VolHigh=" + VolHigh + ", Power=" + Power + ", TestTime=" + TestTime + ", WTPowerCount=" + WTPowerCount + ", ZDPowerCount=" + ZDPowerCount + ", TimeCount=" + TimeCount + "]"; } } Device_Simulator_DTS_Tester/src/com/dev/ica_200kw/ModBus_ComBase.java
New file @@ -0,0 +1,32 @@ package com.dev.ica_200kw; public class ModBus_ComBase { public static final int CMD_Null = 0x00; //空 public static final int CMD_Write_TestType = 0x5A01; //写测试测试类型 public static final int CMD_Write_TestParam = 0x5A07; //写测试参数 public static final int CMD_Write_StartTest = 0x5A02; //写启动测试指令 public static final int CMD_Write_StopTest = 0x5A04; //写停止测试指令 public static final int CMD_Write_CloseWin = 0x6A09; //写关闭提示窗口指令 public static final int CMD_Write_PauseTest = 0x6A10; //写暂停测试指令 public static final int CMD_Read_RealData = 0x5A05; //读取从机数据 public static final int TestType_Null = 0x00; //没有测试 public static final int TestType_SteadyTest = 0xF1; //稳态测试 public static final int TestType_SettingTest = 0xF2; //整定测试 public static final int TestType_TransientTest = 0xF3; //瞬态测试 public static final int TestType_WaveTest = 0xF4; //波动测试 public static final int TestType_HarmonicTest = 0xF5; //谐波测试 public static final int WorkState_Null = 0x00; //无测试 public static final int WorkState_SteadyTest = 0x01; //稳态测试 public static final int WorkState_SettingTest = 0x02; //整定测试 public static final int WorkState_TransientTest = 0x03; //瞬态测试 public static final int WorkState_WaveTest = 0x04; //波动测试 public static final int WorkState_HarmonicTest = 0x05; //谐波测试 } Device_Simulator_DTS_Tester/src/com/dev/ica_200kw/SPCommIAC_200KW.java
New file @@ -0,0 +1,659 @@ package com.dev.ica_200kw; import gnu.io.SerialPort; import gnu.io.UnsupportedCommOperationException; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.Date; import javax.swing.JOptionPane; import javax.swing.JTextArea; import org.apache.logging.log4j.Logger; import sp_comm.CommSerialPort; import sp_comm.Comm_Socket; import main.page_debug_inf; import com.Com; import com.ComFn; import com.Crc16; import com.PlaySound; import com.dev.bts.data.FBS9100_ComBase; import com.dev.bts.data.FBS9100_DFU; import com.dev.fbs9600_mon.SPCommMon; import com.dev.modbus.MyModBusRtu; import com.dev.simpower.dev.Power_ACData; import com.dev.simpower.dev.Power_AlmParam; import com.dev.simpower.dev.Power_AlmState; import com.dev.simpower.dev.Power_ComBase; import com.dev.simpower.dev.Power_LIBMSData; import com.dev.simpower.dev.Power_ModelData; import com.dev.simpower.dev.Power_Param; import com.dev.simpower.dev.Power_RoadState; import com.dev.simpower.dev.Power_TimeControl; public class SPCommIAC_200KW implements Runnable/*, SerialPortEventListener*/ { private ByteBuffer dt_databuffer = ByteBuffer.allocate(0); //遥控遥调数据 private short dt_user_cmd = Power_ComBase.CMD_NULL; private int dt_user_cmd_regaddr = 0; //用户控制时的寄存器地址 /*********************************************************************/ private boolean CommThreadRunning = false; public boolean AutoStartResTestEn = false; public Date AutoStartResTestTime = new Date(); public Date AutoSaveResDataTime = new Date(); public boolean AutoSaveResDataEn = false; public int AutoSaveResDataCount = 0; public String AutoSaveDataFileName = ""; private ByteBuffer CommRxBuffer = ByteBuffer.allocate(1500); private ByteBuffer CommTxBuffer = ByteBuffer.allocate(1048); public int comm_tx_cnt = 0; public int comm_rx_cnt = 0; private int comm_bautrate = 9600; public int dt_target_addr = 0; public int m_ZDHJ_REG_CNT = 1; public int ZDHJ_BattCount = -1; //--------------------------------------------------------// public int dev_param_data_state = 0; public int dev_param_addr = 0; public int dev_param_curr_range = 0; public double dev_param_FloatCurrLev = 0; public double dev_param_float_curr_lev = 0; public double dev_param_wenbo_curr_lev = 0; public int dev_param_auto_restest_interval = 0; public int dev_param_res_test_type = 0; public int dev_param_ResDisTestMethod = 0; public int dev_param_Batt_StdCap = 0; public double dev_param_res_dis_slope = 0; public double dev_param_res_wenbo_slope = 0; public int dev_param_monnum_setmode = 0; public int dev_param_devid = 0; public double[] dev_param_resparam_d = new double[4]; public double[] dev_param_resparam_s = new double[4]; //--------------------------------------------------------// public int dev_stat_version = 0; public int dev_stat_state = 0; public double GroupVol = 0; public double BattCurr = 0; public int BattState = 0; public int BattCurrDir = 0; public double AvgWenBoCurr = 0; public double PeakWenBoCurr = 0; public int SpiCommErrCount = 0; //SPI通信错误计数 public int ResTestCount = 0; //内阻测试次数 public int CurentResTestMode = 0; //当前内阻测试方法 public int BianhaoErrNum = 0; //编号错误单体号 public double ExTemp = 0; //外部温度 //--------------------------------------------------------// public short mAddrSettedNow = 0; private short dt_cmd = ModBus_ComBase.CMD_Null; public int dt_cmd_ack = Power_ComBase.CMD_NULL; public MyModBusRtu rtu_rt; public MyModBusRtu rtu_rx; public Date dt_cmd_ack_time = new Date(); private short dt_cmd_regaddr = 0; private short dt_cmd_regcnt = 0; private short[] dt_cmd_regdata = null; private int dt_cmd_cnt = 0; private page_debug_inf dt_debug_inf; private int m_COMM_PORT_TYPE = 0; private CommSerialPort m_SP_Comm = null; private Comm_Socket m_SocketComm = null; private Logger m_Log = null; private int read_libms_index = 0; //读取锂电池包索引 private int read_model_index = 0; //读取电源模块索引 public Power_ACData m_AcData; public Power_LIBMSData[] m_LibmsDatas; public Power_ModelData[] m_ModelDatas; public Power_AlmState m_AlmState; public Power_Param m_ParamFromDev; //设备读取的参数 public Power_TimeControl m_TimeControlFromDev; //设备读取的参数 public IAC_RealData m_RealData; //设备实时数据 public IAC_TestParam m_TestParam; //设置的参数 public IAC_TestParam m_TestParamFromDev; //设备上读取的参数 public String op_result = ""; //操作返回结果 public short dt_user_cmd_ack = Power_ComBase.CMD_NULL; //操作返回结果,用于界面判断更新 private boolean dt_dfu_en = false; //远程升级标识 private JTextArea dt_show_msg; //升级文本信息域 private String dt_dfuFileName; //升级文件名称 public SPCommIAC_200KW(int addr_t, int bitrate, page_debug_inf debug, Logger log) { dt_target_addr = addr_t & 0x00FF; comm_bautrate = bitrate; dt_debug_inf = debug; m_Log = log; rtu_rx = new MyModBusRtu(); m_TimeControlFromDev = new Power_TimeControl(); m_ParamFromDev = new Power_Param(); m_AcData = new Power_ACData(); m_AlmState = new Power_AlmState(); m_RealData = new IAC_RealData(); //设备实时数据 m_TestParam = new IAC_TestParam(); //设置的参数 m_TestParamFromDev = new IAC_TestParam(); //设备上读取的参数 m_LibmsDatas = new Power_LIBMSData[Power_ComBase.LIBMSDATA_MAX_COUNT]; for(int i =0;i<m_LibmsDatas.length;i++) { m_LibmsDatas[i] = new Power_LIBMSData(); } m_ModelDatas = new Power_ModelData[Power_ComBase.LIMODEL_MAX_COUNT]; for(int i =0;i<m_LibmsDatas.length;i++) { m_ModelDatas[i] = new Power_ModelData(); } } public void setCommBautrate(int bt_rate) { if(SPCommMon.COMM_PORT_TYPE_Serial != m_COMM_PORT_TYPE) { return; } try { comm_bautrate = bt_rate; m_SP_Comm.serialPort.setSerialPortParams(comm_bautrate, SerialPort.DATABITS_8, SerialPort.STOPBITS_1,SerialPort.PARITY_NONE); } catch (UnsupportedCommOperationException e) { e.printStackTrace(); } } //初始化串口 public boolean OpenCommPort(int comm_port_type, String comm_name_or_ip, int bitrate_or_comm_port) { boolean res = false; m_COMM_PORT_TYPE = comm_port_type; if(SPCommMon.COMM_PORT_TYPE_Serial == m_COMM_PORT_TYPE) { m_SP_Comm = new CommSerialPort(bitrate_or_comm_port, m_Log); res = m_SP_Comm.OpenCommPort(comm_name_or_ip); } else { m_SocketComm = new Comm_Socket(comm_name_or_ip, bitrate_or_comm_port); res = true; } if(true == res) { CommTxBuffer.order(ByteOrder.BIG_ENDIAN); CommRxBuffer.order(ByteOrder.BIG_ENDIAN); comm_tx_cnt = 0; comm_rx_cnt = 0; CommThreadRunning = true; } return res; } private void makeCommTxData() { CommTxBuffer.clear(); rtu_rt = new MyModBusRtu(); ByteBuffer dt_data = ByteBuffer.allocate(0); rtu_rt.addr = dt_target_addr; if(dt_user_cmd == Power_ComBase.CMD_NULL) { //随机读取实时数据 if(++dt_cmd_cnt > 1000) { dt_cmd_cnt = 0; } rtu_rt.Cmd = MyModBusRtu.CMD_TYPE_READ; if(dt_cmd_cnt%3 == 0) { //读取电源遥测数据-测 rtu_rt.reg_addr = Power_ComBase.PWD_ACData_RegAddr_Start; rtu_rt.reg_count = Power_ACData.REG_Count; //rtu_rt.reg_count = 17; //测试时最多读取17个寄存器 }else if(dt_cmd_cnt%3 == 1) { //读取锂电池包数据 rtu_rt.reg_addr = Power_ComBase.PWD_LIBMSData_RegAddr_Start[read_libms_index]; rtu_rt.reg_count = Power_LIBMSData.REG_Count; }else if(dt_cmd_cnt%3 == 2) { //读取电源模块数据 rtu_rt.reg_addr = Power_ComBase.PWD_ModelData_RegAddr_Start[read_model_index]; rtu_rt.reg_count = Power_ModelData.REG_Count; } if(dt_cmd_cnt%5 == 0) { //读取告警状态 rtu_rt.reg_addr = Power_ComBase.PWD_ModelAlm_RegAddr_Start; rtu_rt.reg_count = Power_AlmState.REG_Count; } if(dt_cmd_cnt%5 == 1) { //分路开关状态 rtu_rt.reg_addr = Power_ComBase.PWD_LoadControl_RegAddr_Start; rtu_rt.reg_count = Power_RoadState.REG_Count; } } else { //数据 dt_data = dt_databuffer; //遥调遥控数据 rtu_rt.Cmd = dt_user_cmd; dt_user_cmd = Power_ComBase.CMD_NULL; rtu_rt.reg_addr = dt_user_cmd_regaddr; if(dt_data.capacity() > 0) { rtu_rt.reg_count = dt_data.capacity()/2; }else if(Power_ComBase.PWD_SysParam_RegAddr_Start == rtu_rt.reg_addr) { rtu_rt.reg_count = Power_Param.REG_Count; }else if(Power_ComBase.PWD_LoadControl_RegAddr_Start <= rtu_rt.reg_addr && rtu_rt.reg_addr <= Power_ComBase.PWD_LoadControl_RegAddr_Start) { //分路控制以及门磁控制 rtu_rt.reg_count = Power_Param.Reg_Count_Control; }else if(Power_ComBase.PWD_AlmParam_RegAddr_Start == rtu_rt.reg_addr) { //告警参数 rtu_rt.reg_count = Power_AlmParam.REG_Count; }else if(Power_ComBase.PWD_PowerParam_RegAddr_Start == rtu_rt.reg_addr) { //电源参数 rtu_rt.reg_count = Power_Param.REG_Count_Power; }else if(Power_ComBase.PWD_SchoolTime_RegAddr_Start == rtu_rt.reg_addr) { //校时参数 rtu_rt.reg_count = Power_Param.REG_Count_Time; }else if(Power_ComBase.PWD_Load1Time_RegAddr_Start == rtu_rt.reg_addr) { //分路定时控制1-6 rtu_rt.reg_count = Power_TimeControl.REG_Count; }else if(Power_ComBase.PWD_Load7Time_RegAddr_Start == rtu_rt.reg_addr) { //分路定时控制7-12 rtu_rt.reg_count = Power_TimeControl.REG_Count; } } makeRTData(rtu_rt,dt_data); } public void makeRTData(MyModBusRtu rtu,ByteBuffer bf) { CommTxBuffer.position(0); CommTxBuffer.put((byte)rtu.addr); CommTxBuffer.put((byte)rtu.Cmd); CommTxBuffer.putShort((short)rtu.reg_addr); if(rtu.Cmd == MyModBusRtu.CMD_TYPE_READ) { //读取 CommTxBuffer.putShort((short)rtu.reg_count); } else if( rtu.Cmd == MyModBusRtu.CMD_TYPE_WRITE_STD || rtu.Cmd == MyModBusRtu.CMD_TYPE_WRITE_SysUpdate || rtu.Cmd == MyModBusRtu.CMD_TYPE_Read_UpdateFile ) { //单点写入 CommTxBuffer.put(bf); } else if(rtu.Cmd == MyModBusRtu.CMD_TYPE_WRITE_MULTY) { //多点写入 CommTxBuffer.putShort((short)rtu.reg_count); CommTxBuffer.put((byte)bf.capacity()); CommTxBuffer.put(bf); } int crc = Crc16.CalCRC16(CommTxBuffer, CommTxBuffer.position()) & 0xFFFF; CommTxBuffer.putShort((short) crc); CommTxBuffer.flip(); //System.out.println("发送数据长度:" + CommTxBuffer.remaining()); } public void tr_Msg(ByteBuffer bbf_tx, ByteBuffer bbf_rx, boolean showdat) { if(++comm_tx_cnt > 32500) { comm_tx_cnt = 0; } if(SPCommMon.COMM_PORT_TYPE_Serial == m_COMM_PORT_TYPE) { m_SP_Comm.SP_Comm(bbf_tx, bbf_rx, CommSerialPort.mutycomm_Type_Samd09, dt_debug_inf, showdat); } else { m_SocketComm.SocketComm(bbf_tx, bbf_rx, dt_debug_inf, showdat); } } public void CloseCommPort() { CommThreadRunning = false; } public void setCommCmd(short cmd, int cmd_reg_addr, short[] reg_data, int reg_len) { if(dt_cmd_regaddr > 0) { return; } dt_cmd = cmd; dt_cmd_regaddr = (short) cmd_reg_addr; dt_cmd_regdata = reg_data; dt_cmd_regcnt = (short) reg_len; } public void setCommCmd(short cmd, int cmd_user_reg_addr, ByteBuffer bf) { if(dt_cmd_regaddr > 0) { return; } dt_user_cmd = cmd; //命令 dt_user_cmd_regaddr = (short) cmd_user_reg_addr; //寄存器地址 dt_databuffer = bf; //遥控或遥调数据 } public void setCommCmdAck(int ack_t) { dt_cmd_ack = ack_t; dt_cmd_ack_time = new Date(); //System.out.println(Com.get_DTF(dt_cmd_ack_time, Com.DTF_YMDhms) + ", " + dev_param_data_state); String wav_f = "6133.wav"; if(ack_t%2 == 0) { wav_f = "4577.wav"; } if(ack_t > 0) { new PlaySound(wav_f); } } private boolean processRxData(ByteBuffer bbf_rx) { rtu_rx.clear(); boolean isSuccess = false; if(rtu_rx.putByteBuffer(bbf_rx)) { if(MyModBusRtu.CMD_TYPE_READ == rtu_rx.Cmd) { if(Power_ComBase.PWD_ACData_RegAddr_Start == rtu_rt.reg_addr) { //读取极简化电源遥测数据 if(m_AcData.putByteBuffer(bbf_rx)) { isSuccess = true; } }else if(Power_ComBase.PWD_LIBMSData_RegAddr_Start1 <= rtu_rt.reg_addr && rtu_rt.reg_addr <= Power_ComBase.PWD_LIBMSData_RegAddr_Start4) { //锂电池包数据 if(m_LibmsDatas[read_libms_index].putByteBuffer(bbf_rx)) { //System.out.println("锂电池包:"+(read_libms_index+1)+"读取成功"); read_libms_index ++; if(read_libms_index >= Power_ComBase.LIBMSDATA_MAX_COUNT) { read_libms_index = 0; } isSuccess = true; } }else if(Power_ComBase.PWD_ModelData_RegAddr_Start1 <= rtu_rt.reg_addr && rtu_rt.reg_addr <= Power_ComBase.PWD_ModelData_RegAddr_Start4) { //电源模块数据 if(m_ModelDatas[read_model_index].putByteBuffer(bbf_rx)) { //System.out.println("电源模块:"+(read_model_index+1)+"读取成功"); read_model_index ++; if(read_model_index >= Power_ComBase.LIMODEL_MAX_COUNT) { read_model_index = 0; } isSuccess = true; } }else if(Power_ComBase.PWD_ModelAlm_RegAddr_Start == rtu_rt.reg_addr) { if(m_AlmState.putByteBuffer(bbf_rx)) { isSuccess = true; } }else if(Power_ComBase.PWD_SysParam_RegAddr_Start == rtu_rt.reg_addr) { if(m_ParamFromDev.putByteBuffer(bbf_rx)) { dt_user_cmd_ack = Power_ComBase.PWD_SysParam_Read_ACK; op_result_sysparam = "读取电源系统参数成功" + Com.get_DTF(new Date(), Com.DTF_YMDhms); isSuccess = true; } }else if(Power_ComBase.PWD_PowerParam_RegAddr_Start == rtu_rt.reg_addr) { //System.out.println("999"); if(m_ParamFromDev.putPowerByteBuffer(bbf_rx)) { dt_user_cmd_ack = Power_ComBase.PWD_PwdParam_Read_ACK; op_result_powerparam = "读取电源参数成功" + Com.get_DTF(new Date(), Com.DTF_YMDhms); isSuccess = true; } }else if(Power_ComBase.PWD_AlmParam_RegAddr_Start == rtu_rt.reg_addr) { m_AlmParamFromDev = new Power_AlmParam(); if(m_AlmParamFromDev.putByteBuffer(bbf_rx)) { dt_user_cmd_ack = Power_ComBase.PWD_AlmParam_Read_ACK; op_result_almaram = "读取电源告警参数成功" + Com.get_DTF(new Date(), Com.DTF_YMDhms); isSuccess = true; } }else if(Power_ComBase.PWD_SchoolTime_RegAddr_Start == rtu_rt.reg_addr) { if(m_ParamFromDev.putTimeByteBuffer(bbf_rx)) { dt_user_cmd_ack = Power_ComBase.PWD_SchoolTime_Read_ACK; op_result_jiaozhun = "读取设备时间成功" + Com.get_DTF(new Date(), Com.DTF_YMDhms); isSuccess = true; } }else if(Power_ComBase.PWD_Load1Time_RegAddr_Start == rtu_rt.reg_addr) { if(m_TimeControlFromDev.putByteBuffer1(bbf_rx)) { dt_user_cmd_ack = Power_ComBase.PWD_Load1Time_Read_ACK; op_result_jiaozhun = "读取1-6路分时参数成功" + Com.get_DTF(new Date(), Com.DTF_YMDhms); isSuccess = true; } }else if(Power_ComBase.PWD_Load7Time_RegAddr_Start == rtu_rt.reg_addr) { if(m_TimeControlFromDev.putByteBuffer2(bbf_rx)) { dt_user_cmd_ack = Power_ComBase.PWD_Load2Time_Read_ACK; op_result_jiaozhun = "读取7-12路分时参数成功" + Com.get_DTF(new Date(), Com.DTF_YMDhms); isSuccess = true; } }else if(Power_ComBase.PWD_LoadControl_RegAddr_Start == rtu_rt.reg_addr) { if(m_RoadStateFromDev.putByteBuffer(bbf_rx)) { //System.err.println("读取分路1~12分路状态成功" + m_RoadStateFromDev); isSuccess = true; } } }else if(MyModBusRtu.CMD_TYPE_WRITE_STD == rtu_rx.Cmd) { if(Power_ComBase.PWD_DoorControl_RegAddr_Start == rtu_rx.reg_addr) { //门磁控制 if(Power_ComBase.CMD_Fail != rtu_rx.result) { op_result_sysparam = "控制门磁打开成功" + Com.get_DTF(new Date(), Com.DTF_YMDhms); }else { op_result_sysparam = "控制门磁关闭成功" + Com.get_DTF(new Date(), Com.DTF_YMDhms); } isSuccess = true; }else if(Power_ComBase.PWD_LoadControl_RegAddr_Start <= rtu_rx.reg_addr && rtu_rx.reg_addr < Power_ComBase.PWD_BackControl_RegAddr_Start) { //分路1~12控制 int idx = rtu_rx.reg_addr - Power_ComBase.PWD_LoadControl_RegAddr_Start +1; if(Power_ComBase.CMD_Fail != rtu_rx.result) { op_result_sysparam = "控制分路" + idx + "打开成功" + Com.get_DTF(new Date(), Com.DTF_YMDhms); }else { op_result_sysparam = "控制分路" + idx + "关闭成功" + Com.get_DTF(new Date(), Com.DTF_YMDhms); } isSuccess = true; }else if(Power_ComBase.PWD_BackControl_RegAddr_Start <= rtu_rx.reg_addr && rtu_rx.reg_addr < Power_ComBase.PWD_DoorControl_RegAddr_Start) { //分路1~12备电控制 int idx = rtu_rx.reg_addr - Power_ComBase.PWD_BackControl_RegAddr_Start +1; if(Power_ComBase.CMD_Fail != rtu_rx.result) { op_result_sysparam = "控制分路" + idx + "备电控制打开成功" + Com.get_DTF(new Date(), Com.DTF_YMDhms); }else { op_result_sysparam = "控制分路" + idx + "备电控制关闭失败" + Com.get_DTF(new Date(), Com.DTF_YMDhms); } isSuccess = true; } }else if(MyModBusRtu.CMD_TYPE_WRITE_MULTY == rtu_rx.Cmd) { if(Power_ComBase.PWD_PowerParam_RegAddr_Start == rtu_rx.reg_addr) { //设置电源参数 if(rtu_rx.result == Power_Param.REG_Count_Power) { op_result_powerparam = "设置电源参数成功" + Com.get_DTF(new Date(), Com.DTF_YMDhms); isSuccess = true; }else { op_result_powerparam = "设置电源参数失败" + Com.get_DTF(new Date(), Com.DTF_YMDhms); } }else if(Power_ComBase.PWD_AlmParam_RegAddr_Start == rtu_rx.reg_addr) { //设置电源告警参数 if(rtu_rx.result == Power_AlmParam.REG_Count) { op_result_almaram = "设置电源告警参数成功" + Com.get_DTF(new Date(), Com.DTF_YMDhms); isSuccess = true; }else { op_result_almaram = "设置电源告警参数失败" + Com.get_DTF(new Date(), Com.DTF_YMDhms); } }else if(Power_ComBase.PWD_SysParam_RegAddr_Start == rtu_rx.reg_addr) { //设置电源系统参数 if(rtu_rx.result == Power_Param.REG_Count) { op_result_sysparam = "设置电源系统参数成功" + Com.get_DTF(new Date(), Com.DTF_YMDhms); isSuccess = true; }else { op_result_sysparam = "设置电源系统参数失败" + Com.get_DTF(new Date(), Com.DTF_YMDhms); } }else if(Power_ComBase.PWD_SchoolTime_RegAddr_Start == rtu_rx.reg_addr) { //设置电源校时 if(rtu_rx.result == Power_Param.REG_Count_Time) { op_result_jiaozhun = "设置电源校时成功" + Com.get_DTF(new Date(), Com.DTF_YMDhms); isSuccess = true; }else { op_result_jiaozhun = "设置电源校时失败" + Com.get_DTF(new Date(), Com.DTF_YMDhms); } }else if(Power_ComBase.PWD_Load1Time_RegAddr_Start == rtu_rx.reg_addr) { //设置分路1-6分时控制 if(rtu_rx.result == Power_TimeControl.REG_Count) { op_result_jiaozhun = "设置分路1-6分时参数成功" + Com.get_DTF(new Date(), Com.DTF_YMDhms); isSuccess = true; }else { op_result_jiaozhun = "设置分路1-6分时参数失败" + Com.get_DTF(new Date(), Com.DTF_YMDhms); } }else if(Power_ComBase.PWD_Load7Time_RegAddr_Start == rtu_rx.reg_addr) { //设置分路7-12分时控制 if(rtu_rx.result == Power_TimeControl.REG_Count) { op_result_jiaozhun = "设置分路7-12分时参数成功" + Com.get_DTF(new Date(), Com.DTF_YMDhms); isSuccess = true; }else { op_result_jiaozhun = "设置分路7-12分时参数失败" + Com.get_DTF(new Date(), Com.DTF_YMDhms); } } } else if(MyModBusRtu.CMD_TYPE_WRITE_SysUpdate == rtu_rx.Cmd) { if(Power_ComBase.PWD_SysReStart_RegAddr_Start == rtu_rx.reg_addr) { //远程重启设备 if(rtu_rx.result == 0xBBBB) { //设备远程重启成功 dt_user_cmd_ack = Power_ComBase.PWD_SysRestart_Success_ACK; isSuccess = true; }else { //设备远程重启失败 dt_user_cmd_ack = Power_ComBase.PWD_SysRestart_Fail_ACK; } }else if(Power_ComBase.PWD_TransUpdateFile_RegAddr_Start == rtu_rx.reg_addr) { if(rtu_rx.result != 0) { isSuccess = true; } }else if(Power_ComBase.PWD_StartUpdate_RegAddr_Start == rtu_rx.reg_addr) { if(rtu_rx.result != 0) { isSuccess = true; appendUppdateInfo("System Update Success ... " + Com.get_DTF(new Date(), Com.DTF_YMDhms) + "\n"); }else { appendUppdateInfo("System Update Fail ... " + Com.get_DTF(new Date(), Com.DTF_YMDhms) + "\n"); } } } else if(MyModBusRtu.CMD_TYPE_Read_UpdateFile == rtu_rx.Cmd) { if(Power_ComBase.PWD_TransUpdateFile_RegAddr_Start == rtu_rt.reg_addr) { if(bbf_rx.remaining() > 2) { isSuccess = true; }else { System.err.println("返回数据长度不足"); } } } } if(bbf_rx.limit() > 0 && isSuccess) { if(++comm_rx_cnt > 32500) { comm_rx_cnt = 0; } } return isSuccess; } public void setAutoStartRestTest(String filename, int type, boolean en) { AutoSaveDataFileName = filename; AutoStartResTestEn = en; AutoSaveResDataCount = 0; } private void closeSPCommPort() { if(SPCommMon.COMM_PORT_TYPE_Serial == m_COMM_PORT_TYPE) { m_SP_Comm.serialPort.close(); } else { m_SocketComm.socketClose(); } } public void run() { while(true == CommThreadRunning) { try { Thread.sleep(200); if(dt_dfu_en == false) { makeCommTxData(); tr_Msg(CommTxBuffer, CommRxBuffer, true); processRxData(CommRxBuffer); } } catch (InterruptedException e) { e.printStackTrace(); CloseCommPort(); JOptionPane.showMessageDialog(null, "ZDHJ CommPort 串口异常: " + e.getMessage()); } } /******************************************/ closeSPCommPort(); /******************************************/ dt_debug_inf.addDebugInf(Com.get_DTF(new Date(), Com.DTF_YMDhms_S) + " ZDHJ CommPort is quit," + " COMM_PORT_TYPE: " + m_COMM_PORT_TYPE + "\n"); /******************************************/ } public void makeSendFileData(byte[] data,int block_num) { dt_databuffer = ByteBuffer.allocate(data.length + 2); dt_databuffer.order(ByteOrder.BIG_ENDIAN); dt_databuffer.putShort(FBS9100_ComBase.changeIntToShort(block_num)); dt_databuffer.put(data); dt_databuffer.flip(); } public void setCommCmd_DFU(boolean dfu_en, String dfu_file, JTextArea show_area) { dt_dfu_en = dfu_en; dt_show_msg = show_area; dt_dfuFileName = dfu_file; } public boolean checkDfuReadAckBuf(ByteBuffer bf,byte[] data) { boolean check_ok = false; if(data.length <= bf.remaining()) { check_ok = true; for(int k = 0 ;k< data.length;k++) { if(data[k] != bf.get()) { System.err.println("校验字节:" + k + "失败"); check_ok = false; break; } } }else { //System.err.println("bf:"+ComFn.bytesToHexString(bf.array(), bf.array().length)); //System.err.println("data:"+ComFn.bytesToHexString(data, data.length)); //System.err.println("data.length:" + data.length + "\tbf.remaining():"+bf.remaining()); } return check_ok; } public void appendUppdateInfo(String msg) { StringBuffer buffer = new StringBuffer(dt_show_msg.getText()); dt_show_msg.setText(msg); dt_show_msg.append(buffer.toString()); } } Device_Simulator_DTS_Tester/src/com/dev/ica_200kw/iac_200kw_page.java
New file @@ -0,0 +1,525 @@ package com.dev.ica_200kw; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JPanel; import javax.swing.JTabbedPane; import javax.swing.JTextField; import javax.swing.border.TitledBorder; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import main.page_debug_inf; /** * 极简化电源界面 * @author DELL * */ public class iac_200kw_page extends JPanel { public static int LANG_TYPE_CN = 0; public static int LANG_TYPE_EN = 1; public static int LANG_TYPE = LANG_TYPE_CN; public SPCommIAC_200KW Comm_ICA = null; private JTabbedPane tabbedPane; private JPanel panel_baseinfo; //主界面 private page_debug_inf panel_debug; //调试信息 private JTextField tf_Ua; //A相电压 private JTextField tf_Ub; //B相电压 private JTextField tf_Uc; //C相电压 private JTextField tf_Fre; //交流频率 private JTextField tf_Uab; //AB线电压 private JTextField tf_Ubc; //BC线电压 private JTextField tf_Uca; //CA线电压 private JTextField tf_Ft; //功率因数 private JTextField tf_JbxbUa; //基波谐波电压A private JTextField tf_JbxbUb; //基波谐波电压B private JTextField tf_JbxbUc; //基波谐波电压C private JTextField tf_P; //有功功率 private JTextField tf_JbxbIa; //基波谐波电流A private JTextField tf_JbxbIb; //基波谐波电流B private JTextField tf_JbxbIc; //基波谐波电流C private JTextField tf_CurrHigh; //电流上限值 private JTextField tf_VolLow; //电压下限值 private JTextField tf_VolHigh; //电压上限值 private JTextField tf_Power; //功率 private JTextField tf_TestTime; //测试时间 private JTextField tf_WTPowerCount; //稳态功率段数 private JTextField tf_ZDPowerCount; //整定功率段数 private JTextField tf_TimeCount; //整定测试间隔 private JTextField tf_StateAlm; //工作状态 private JButton btn_ica_read; //读取 private JButton btn_ica_write; //设置 private JComboBox<String> cb_testtype; //测试类型 private JButton btn_set_testtype; //设置 private JButton btn_start_test; //启动 private JButton btn_stop_test; //ֹͣ private JButton btn_pause_test; //暂停 private JButton btn_close_windos; //暂停 private JTextField tf_op_inf; //工作状态 private Logger logger; /** * Create the panel. */ @SuppressWarnings({ "rawtypes", "unchecked" }) public iac_200kw_page() { logger = LogManager.getLogger(iac_200kw_page.class); setLayout(new BorderLayout(0, 0)); tabbedPane = new JTabbedPane(JTabbedPane.TOP); add(tabbedPane, BorderLayout.CENTER); panel_baseinfo = new JPanel(); //电源遥测 panel_debug = new page_debug_inf(); //调试信息 //tabbedPane.add(panel_baseinfo,"电源遥测"); tabbedPane.addTab("设备信息",null/*new ImageIcon(zdhj_page_base.class.getResource("/png_16x16/target.png"))*/, panel_baseinfo, null); // tabbedPane.addTab("调试信息",null, panel_debug, null); tabbedPane.addTab("调试信息",null/*new ImageIcon(zdhj_page_base.class.getResource("/png_16x16/target.png"))*/, panel_debug, null); /************************ 电源遥测 ********************************************/ panel_baseinfo.setLayout(new BorderLayout()); JPanel panel_100 = new JPanel(); panel_100.setBorder(new TitledBorder(null, "设备状态", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_baseinfo.add(panel_100, BorderLayout.CENTER); panel_100.setLayout(new GridLayout(6, 3, 10, 10)); JPanel panel_101 = new JPanel(); panel_baseinfo.add(panel_101, BorderLayout.EAST); panel_101.setLayout(new BorderLayout(0, 0)); JPanel panel_102 = new JPanel(); panel_102.setBorder(new TitledBorder(null, "A相电压", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_100.add(panel_102); panel_102.setLayout(new BorderLayout(0, 0)); tf_Ua = new JTextField(); panel_102.add(tf_Ua); tf_Ua.setColumns(10); JPanel panel_103 = new JPanel(); panel_103.setBorder(new TitledBorder(null, "B相电压", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_100.add(panel_103); panel_103.setLayout(new BorderLayout(0, 0)); tf_Ub = new JTextField(); panel_103.add(tf_Ub); tf_Ub.setColumns(10); JPanel panel_104 = new JPanel(); panel_104.setBorder(new TitledBorder(null, "C相电压", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_100.add(panel_104); panel_104.setLayout(new BorderLayout(0, 0)); tf_Uc = new JTextField(); panel_104.add(tf_Uc); tf_Uc.setColumns(10); JPanel panel_105 = new JPanel(); panel_105.setBorder(new TitledBorder(null, "交流频率", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_105.setLayout(new BorderLayout(0, 0)); tf_Fre = new JTextField(); panel_105.add(tf_Fre); tf_Fre.setColumns(10); JPanel panel_106 = new JPanel(); panel_106.setBorder(new TitledBorder(null, "AB线电压", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_100.add(panel_106); panel_106.setLayout(new BorderLayout(0, 0)); tf_Uab = new JTextField(); panel_106.add(tf_Uab); tf_Uab.setColumns(10); JPanel panel_107 = new JPanel(); panel_107.setBorder(new TitledBorder(null, "BC线电压", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_100.add(panel_107); panel_107.setLayout(new BorderLayout(0, 0)); tf_Ubc = new JTextField(); panel_107.add(tf_Ubc); tf_Ubc.setColumns(10); JPanel panel_108 = new JPanel(); panel_108.setBorder(new TitledBorder(null, "CA线电压", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_100.add(panel_108); panel_108.setLayout(new BorderLayout(0, 0)); tf_Uca = new JTextField(); panel_108.add(tf_Uca); tf_Uca.setColumns(10); JPanel panel_109 = new JPanel(); panel_109.setBorder(new TitledBorder(null, "功率因数", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_109.setLayout(new BorderLayout(0, 0)); tf_Ft = new JTextField(); panel_109.add(tf_Ft); tf_Ft.setColumns(10); JPanel panel_110 = new JPanel(); panel_110.setBorder(new TitledBorder(null, "基波谐波电压A", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_100.add(panel_110); panel_110.setLayout(new BorderLayout(0, 0)); tf_JbxbUa = new JTextField(); panel_110.add(tf_JbxbUa); tf_JbxbUa.setColumns(10); JPanel panel_111 = new JPanel(); panel_111.setBorder(new TitledBorder(null, "基波谐波电压B", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_100.add(panel_111); panel_111.setLayout(new BorderLayout(0, 0)); tf_JbxbUb = new JTextField(); panel_111.add(tf_JbxbUb); tf_JbxbUb.setColumns(10); JPanel panel_112 = new JPanel(); panel_112.setBorder(new TitledBorder(null, "基波谐波电压C", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_100.add(panel_112); panel_112.setLayout(new BorderLayout(0, 0)); tf_JbxbUc = new JTextField(); panel_112.add(tf_JbxbUc); tf_JbxbUc.setColumns(10); JPanel panel_113 = new JPanel(); panel_113.setBorder(new TitledBorder(null, "有功功率", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_113.setLayout(new BorderLayout(0, 0)); tf_P = new JTextField(); panel_113.add(tf_P); tf_P.setColumns(10); JPanel panel_114 = new JPanel(); panel_114.setBorder(new TitledBorder(null, "基波谐波电流A", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_100.add(panel_114); panel_114.setLayout(new BorderLayout(0, 0)); tf_JbxbIa = new JTextField(); panel_114.add(tf_JbxbIa); tf_JbxbIa.setColumns(10); JPanel panel_115 = new JPanel(); panel_115.setBorder(new TitledBorder(null, "基波谐波电流B", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_100.add(panel_115); panel_115.setLayout(new BorderLayout(0, 0)); tf_JbxbIb = new JTextField(); panel_115.add(tf_JbxbIb); tf_JbxbIb.setColumns(10); JPanel panel_116 = new JPanel(); panel_116.setBorder(new TitledBorder(null, "基波谐波电流C", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_100.add(panel_116); panel_116.setLayout(new BorderLayout(0, 0)); tf_JbxbIc = new JTextField(); panel_116.add(tf_JbxbIc); tf_JbxbIc.setColumns(10); JPanel panel_117 = new JPanel(); panel_117.setBorder(new TitledBorder(null, "工作状态", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_117.setLayout(new BorderLayout(0, 0)); tf_StateAlm = new JTextField(); panel_117.add(tf_StateAlm); tf_StateAlm.setColumns(10); panel_100.add(panel_105); panel_100.add(panel_109); panel_100.add(panel_113); panel_100.add(panel_117); JPanel panel_130 = new JPanel(); panel_130.setBorder(new TitledBorder(null, "设备参数", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_101.add(panel_130,BorderLayout.NORTH); panel_130.setLayout(new BorderLayout(0, 0)); JPanel panel_131 = new JPanel(); panel_130.add(panel_131,BorderLayout.CENTER); panel_131.setLayout(new GridLayout(3,3)); JPanel panel_132 = new JPanel(); panel_132.setBorder(new TitledBorder(null, "电流上限值", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_131.add(panel_132); panel_132.setLayout(new BorderLayout(0, 0)); tf_CurrHigh = new JTextField(); panel_132.add(tf_CurrHigh); tf_CurrHigh.setColumns(10); JPanel panel_133 = new JPanel(); panel_133.setBorder(new TitledBorder(null, "电压下限值", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_131.add(panel_133); panel_133.setLayout(new BorderLayout(0, 0)); tf_VolLow = new JTextField(); panel_133.add(tf_VolLow); tf_VolLow.setColumns(10); JPanel panel_134 = new JPanel(); panel_134.setBorder(new TitledBorder(null, "电压上限值", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_131.add(panel_134); panel_134.setLayout(new BorderLayout(0, 0)); tf_VolHigh = new JTextField(); panel_134.add(tf_VolHigh); tf_VolHigh.setColumns(10); JPanel panel_135 = new JPanel(); panel_135.setBorder(new TitledBorder(null, "功率", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_131.add(panel_135); panel_135.setLayout(new BorderLayout(0, 0)); tf_Power = new JTextField(); panel_135.add(tf_Power); tf_Power.setColumns(10); JPanel panel_136 = new JPanel(); panel_136.setBorder(new TitledBorder(null, "测试时间", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_131.add(panel_136); panel_136.setLayout(new BorderLayout(0, 0)); tf_TestTime = new JTextField(); panel_136.add(tf_TestTime); tf_TestTime.setColumns(10); JPanel panel_137 = new JPanel(); panel_137.setBorder(new TitledBorder(null, "稳态功率段数", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_131.add(panel_137); panel_137.setLayout(new BorderLayout(0, 0)); tf_WTPowerCount = new JTextField(); panel_137.add(tf_WTPowerCount); tf_WTPowerCount.setColumns(10); JPanel panel_138 = new JPanel(); panel_138.setBorder(new TitledBorder(null, "整定功率段数", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_131.add(panel_138); panel_138.setLayout(new BorderLayout(0, 0)); tf_ZDPowerCount = new JTextField(); panel_138.add(tf_ZDPowerCount); tf_ZDPowerCount.setColumns(10); JPanel panel_139 = new JPanel(); panel_139.setBorder(new TitledBorder(null, "整定测试间隔", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_131.add(panel_139); panel_139.setLayout(new BorderLayout(0, 0)); tf_TimeCount = new JTextField(); panel_139.add(tf_TimeCount); tf_TimeCount.setColumns(10); JPanel panel_140 = new JPanel(); panel_130.add(panel_140,BorderLayout.SOUTH); panel_140.setLayout(new FlowLayout(FlowLayout.CENTER,10,10)); btn_ica_read = new JButton("读取"); btn_ica_read.setEnabled(false); btn_ica_read.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { } }); btn_ica_read.setFont(new Font("宋体", Font.PLAIN, 12)); panel_140.add(btn_ica_read); btn_ica_write = new JButton("设置"); btn_ica_write.setEnabled(false); btn_ica_write.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { } }); btn_ica_write.setFont(new Font("宋体", Font.PLAIN, 12)); panel_140.add(btn_ica_write); JPanel panel_141 = new JPanel(); panel_141.setBorder(new TitledBorder(null, "设备遥调遥控", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_101.add(panel_141,BorderLayout.CENTER); panel_141.setLayout(new GridLayout(3, 1, 40, 10)); JPanel panel_142 = new JPanel(); panel_142.setBorder(new TitledBorder(null, "设置测试类型", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_141.add(panel_142); panel_142.setLayout(new GridLayout(1, 2,10,20)); cb_testtype= new JComboBox<String>(); panel_142.add(cb_testtype); cb_testtype.setFont(new Font("Dialog", Font.PLAIN, 14)); cb_testtype.setModel(new DefaultComboBoxModel<String>(new String[] {"稳态测试", "整定测试" , "瞬态测试" , "波动测试" , "谐波测试"})); cb_testtype.setSelectedIndex(0); btn_set_testtype = new JButton("设置"); btn_set_testtype.setEnabled(false); btn_set_testtype.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { } }); btn_set_testtype.setFont(new Font("宋体", Font.PLAIN, 12)); panel_142.add(btn_set_testtype); JPanel panel_143 = new JPanel(); panel_143.setBorder(new TitledBorder(null, "", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_141.add(panel_143); panel_143.setLayout(new FlowLayout(FlowLayout.CENTER,10,10)); btn_start_test = new JButton("启动测试"); btn_start_test.setEnabled(false); btn_start_test.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { } }); btn_start_test.setFont(new Font("宋体", Font.PLAIN, 12)); btn_start_test.setPreferredSize(new Dimension(120, 40)); panel_143.add(btn_start_test); btn_stop_test = new JButton("停止测试"); btn_stop_test.setEnabled(false); btn_stop_test.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { } }); btn_stop_test.setFont(new Font("宋体", Font.PLAIN, 12)); btn_stop_test.setPreferredSize(new Dimension(120, 40)); panel_143.add(btn_stop_test); btn_pause_test = new JButton("暂停测试"); btn_pause_test.setEnabled(false); btn_pause_test.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { } }); btn_pause_test.setFont(new Font("宋体", Font.PLAIN, 12)); btn_pause_test.setPreferredSize(new Dimension(120, 40)); panel_143.add(btn_pause_test); JPanel panel_144 = new JPanel(); panel_144.setBorder(new TitledBorder(null, "", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_141.add(panel_144); panel_144.setLayout(new FlowLayout(FlowLayout.CENTER,10,10)); btn_close_windos = new JButton("关闭提示窗口"); btn_close_windos.setEnabled(false); btn_close_windos.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { } }); btn_close_windos.setFont(new Font("宋体", Font.PLAIN, 12)); btn_close_windos.setPreferredSize(new Dimension(120, 40)); panel_144.add(btn_close_windos); JPanel panel_190 = new JPanel(); panel_190.setBorder(new TitledBorder(null, "操作结果", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_baseinfo.add(panel_190,BorderLayout.SOUTH); panel_190.setLayout(new BorderLayout(0, 0)); tf_op_inf = new JTextField(); panel_190.add(tf_op_inf,BorderLayout.CENTER); /********************************************************************/ } public boolean openCommPort(int comm_type, String spname_or_ipaddr, int bitrate_or_ipport, int dev_addr, Logger log) { boolean res = false; Comm_ICA = new SPCommIAC_200KW(dev_addr, bitrate_or_ipport, panel_debug, log); if(true == Comm_ICA.OpenCommPort(comm_type, spname_or_ipaddr, bitrate_or_ipport)) { Thread spcommThread = new Thread(Comm_ICA); spcommThread.start(); setButttonState(true); res = true; } return res; } public void closeCommPort() { if(null != Comm_ICA) { Comm_ICA.CloseCommPort(); Comm_ICA = null; setButttonState(false); } } public void setButttonState(boolean state) { btn_ica_read.setEnabled(state); btn_ica_write.setEnabled(state); btn_set_testtype.setEnabled(state); //设置 btn_start_test.setEnabled(state); //启动 btn_stop_test.setEnabled(state); //ֹͣ btn_pause_test.setEnabled(state); //暂停 btn_close_windos.setEnabled(state); //暂停 } /** * */ public void updateData() { if(null != Comm_ICA) { } } } Device_Simulator_DTS_Tester/src/main/main_window_computer.java
@@ -62,6 +62,7 @@ import com.dev.simpower.power_page_base; import com.dev.switchdev.SwitchDevice_page_base; import com.ueky.ukeycfg_page_base; import com.dev.ica_200kw.*; import javax.swing.BorderFactory; import javax.swing.Box; @@ -99,6 +100,7 @@ public static int CommDevType_IEC61850 = -1; //13 IEC61850 public static int CommDevType_UKEY = -1; //14 UKEY public static int CommDevType_SIMPOWER = -1; //15 极简化电源 public static int CommDevType_ICA_200KW = -1; //15 ICA_200KW public static final int CommDevType_MAX = 17; @@ -129,14 +131,16 @@ public static final boolean APP_IEC61850_EN = true; //IEC61850 public static final boolean APP_UKEY_EN = true; //UKEY public static final boolean APP_SIMPOWER_EN = true; //极简化电源 public static final boolean APP_ICA_200KW_EN = true; //ICA-200KW public int CommDevType = 2; //默认显示tab选项卡 public int CommDevType = 6; //默认显示tab选项卡 public static final int DebugMode_TYPE_Debug = 0; //调试模拟 public static final int DebugMode_TYPE_Package = 1; //电脑打包模式 public static final int DebugMode_TYPE_Screen = 2; //10寸屏模式 public int DebugMode = DebugMode_TYPE_Screen; //是否为调试模式true:调试模式 false:打包模式[会隐藏左侧选项卡] public int DebugMode = DebugMode_TYPE_Package; //是否为调试模式true:调试模式 false:打包模式[会隐藏左侧选项卡] public boolean MonVol_Is_Adj = false; public boolean MonRes_Is_Test = false; @@ -175,6 +179,7 @@ private JPanel main_TabbedTopPane13; private JPanel main_TabbedTopPane14; private JPanel main_TabbedTopPane15; private JPanel main_TabbedTopPane16; private JPanel main_TabbedRightPane0; private JPanel main_TabbedRightPane1; @@ -192,6 +197,7 @@ private JPanel main_TabbedRightPane13; private JPanel main_TabbedRightPane14; private JPanel main_TabbedRightPane15; private JPanel main_TabbedRightPane16; private JButton btn_renew_commport; @@ -230,6 +236,8 @@ private ukeycfg_page_base panel_ueky_page_base; private power_page_base panel_power_page_base; //极简化电源 private iac_200kw_page panel_ica_200kw_page; //ICA-200KW private List<JPanel> pre_panels = new ArrayList<>(); //前置面板空白面板 @@ -776,6 +784,8 @@ main_TabbedTopPane14.setLayout(new BoxLayout(main_TabbedTopPane14, BoxLayout.X_AXIS)); main_TabbedTopPane15 = new JPanel(); main_TabbedTopPane15.setLayout(new BoxLayout(main_TabbedTopPane15, BoxLayout.X_AXIS)); main_TabbedTopPane16 = new JPanel(); main_TabbedTopPane16.setLayout(new BoxLayout(main_TabbedTopPane16, BoxLayout.X_AXIS)); main_TabbedRightPane0 = new JPanel(); @@ -810,6 +820,8 @@ main_TabbedRightPane14.setLayout(new BorderLayout()); main_TabbedRightPane15 = new JPanel(); main_TabbedRightPane15.setLayout(new BorderLayout()); main_TabbedRightPane16 = new JPanel(); main_TabbedRightPane16.setLayout(new BorderLayout()); top_panel1 = new JPanel(); top_panel1.setLayout(new BoxLayout(top_panel1, BoxLayout.X_AXIS)); @@ -1103,6 +1115,18 @@ int tcp_type = cb_tcp_udp.getSelectedIndex(); System.out.println("tcp_type:" + tcp_type); } } else if(main_window_computer.CommDevType_ICA_200KW == main_DevType) { if(SPCommMon.COMM_PORT_TYPE_Serial == comm_type) { //串口通信 int dev_addr = Integer.parseInt(tf_target_addr.getText().trim()); comm_open_res = panel_ica_200kw_page.openCommPort(comm_type, spname_or_ipaddr, bitrate_or_ipport, dev_addr, m_Log); }else if(SPCommMon.COMM_PORT_TYPE_Socket == comm_type){ //客户端通信 int tcp_type = cb_tcp_udp.getSelectedIndex(); System.out.println("tcp_type:" + tcp_type); } } if(true == comm_open_res) { @@ -1191,7 +1215,9 @@ if(null != panel_power_page_base) { panel_power_page_base.closeCommPort(); } if(null != panel_ica_200kw_page) { panel_ica_200kw_page.closeCommPort(); } tf_target_addr.setEditable(true); btn_renew_commport.setEnabled(true); cb_commport.setEnabled(true); @@ -1251,7 +1277,7 @@ public void stateChanged(ChangeEvent arg0) { System.out.println("监听到软件切换:" + main_TabbedPane.getSelectedIndex() + " CommDevType:" + CommDevType); if (DebugMode_TYPE_Screen == DebugMode /* || DebugMode_TYPE_Package == DebugMode */ ) { if (DebugMode_TYPE_Screen == DebugMode /* || DebugMode_TYPE_Package == DebugMode */ ) { //显示屏模式时会出现头部组件消失问题,提前结束 return; } @@ -1789,6 +1815,36 @@ pre_panels.add(new JPanel()); } if(APP_ICA_200KW_EN) { CommDevType_ICA_200KW = jtable_index++; String bybb_title = "ICA-200KW"; panel_ica_200kw_page = new iac_200kw_page(); if(DebugMode == DebugMode_TYPE_Screen) { main_TabbedPane.add(bybb_title, new JPanel()); }else { main_TabbedPane.add(bybb_title, main_TabbedRightPane16); main_TabbedPane.setIconAt(CommDevType_ICA_200KW, new ImageIcon(main_window_computer.class.getResource("/png_16x16/layer_treansparent.png"))); } main_TabbedRightPane16.add(main_TabbedTopPane16,BorderLayout.NORTH); main_TabbedRightPane16.add(panel_ica_200kw_page,BorderLayout.CENTER); tabbedTopPanes.add(main_TabbedTopPane16); tabbedRightPanes.add(main_TabbedRightPane16); if(CommDevType == CommDevType_ICA_200KW) { //当默认是ICA-200KW cb_comm_bitrate.setSelectedIndex(6); //默认波特率9600 tf_target_addr.setText("1"); //默认设备地址1 } }else { pre_panels.add(new JPanel()); } if(pre_panels.size() > 0) { for (JPanel jPanel : pre_panels) { @@ -1804,14 +1860,14 @@ //打包模式判断选项--隐藏左侧选卡并设置调试软件名称 if(CommDevType >= CommDevType_MON && CommDevType <= CommDevType_MAX) { //System.out.println("CommDevType$$$$$$$$$$$--"+CommDevType); System.out.println("CommDevType$$$$$$$$$$$--"+CommDevType); //选中默认选项卡 main_TabbedPane.setSelectedIndex(CommDevType); int tab_index = main_TabbedPane.getSelectedIndex(); //System.out.println("tab_index$$$$$$$$$$$--"+tab_index); System.out.println("tab_index$$$$$$$$$$$--"+tab_index); if(DebugMode == DebugMode_TYPE_Package) { //打包模式时 会出现 main_TabbedPane.getSelectedIndex 与 CommDevType 不一致 @@ -1824,20 +1880,22 @@ JPanel topPanel = tabbedTopPanes.get(tab_index); JPanel rightPanel = tabbedRightPanes.get(tab_index); System.out.println("66666666666"+main_TabbedPane.getSelectedIndex()); //System.err.println(main_TabbedTopPane0+"==="+topPanel + "=="+ rightPanel); if(topPanel != null && rightPanel != null) { frmSerialport.getContentPane().removeAll(); //System.out.println("333:"+main_TabbedPane.getSelectedIndex()+"\tCommDevType"+CommDevType); System.out.println("333:"+main_TabbedPane.getSelectedIndex()+"\tCommDevType"+CommDevType); frmSerialport.getContentPane().add(topPanel, BorderLayout.NORTH); frmSerialport.getContentPane().add(rightPanel, BorderLayout.CENTER); System.out.println("777:"+main_TabbedPane.getSelectedIndex()+"\tCommDevType"+CommDevType); frmSerialport.setMinimumSize(new Dimension(1030, 640)); //System.out.println("222:"+main_TabbedPane.getSelectedIndex()+"\tCommDevType"+CommDevType); System.out.println("222:"+main_TabbedPane.getSelectedIndex()+"\tCommDevType"+CommDevType); } if(CommDevType_MON == CommDevType){ //frmSerialport.getContentPane().add(panel_mon_base, BorderLayout.CENTER); @@ -1889,8 +1947,10 @@ }else if(CommDevType_IEC61850 == CommDevType) { frmSerialport.getContentPane().remove(topPanel); }else if(CommDevType_ICA_200KW == CommDevType) { frmSerialport.getContentPane().add(top_panel1, BorderLayout.NORTH); mTitle = "ICA-200KW调试工具"; } } else if(DebugMode == DebugMode_TYPE_Screen){ //btn_back = null; @@ -1901,7 +1961,7 @@ top_panel1.remove(panel_10); } } //System.out.println("444:"+main_TabbedPane.getSelectedIndex()+"\tCommDevType"+CommDevType); System.out.println("444:"+main_TabbedPane.getSelectedIndex()+"\tCommDevType"+CommDevType); frmSerialport.setTitle(mTitle+ mVerSioin + " " + Com.get_DTF(new Date(), Com.DTF_YMDhms)); @@ -2007,7 +2067,12 @@ tf_rxcnt.setText(String.format("RX:%d", panel_power_page_base.Comm_POWER.comm_rx_cnt)); panel_power_page_base.updateData(); } } else if(CommDevType_ICA_200KW == main_DevType) { tf_txcnt.setText(String.format("TX:%d", panel_ica_200kw_page.Comm_ICA.comm_tx_cnt)); tf_rxcnt.setText(String.format("RX:%d", panel_ica_200kw_page.Comm_ICA.comm_rx_cnt)); panel_ica_200kw_page.updateData(); } } catch (Exception e) { m_Log.error(e.toString(), e); }