src/com/data/PowerArk_Task_SQL.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/com/dev/base/data/Dynamicload_SocketClient_Thread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/com/modbus/data/MyModbusMaster.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/com/modbus/data/MyModbusUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/com/sql/Sql_Mysql.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/main_MonitorServer_Dynamicload.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/com/data/PowerArk_Task_SQL.java
@@ -11,6 +11,7 @@ import com.dev.base.data.Dynamicload_control; import com.dev.base.data.Dynamicload_inf; import com.dev.base.data.Dynamicload_state; import com.modbus.data.MyModbusMaster; import com.sql.MysqlConnPool; import com.sql.Sql_Mysql; @@ -466,4 +467,38 @@ sql.close_con(); } } /** * 插入或更新当前设备的连接状态 * @param pool * @param dev_id * @param master */ public static void insertOrUpdateDeviceConnectState(MysqlConnPool pool,int dev_id,MyModbusMaster master) { String sql_str_sel = " SELECT * FROM "+Sql_Mysql.Tb_Device_ConnectState+" WHERE dev_id = " + dev_id; String sql_str_ins = " INSERT INTO "+Sql_Mysql.Tb_Device_ConnectState+"(dev_id,connect_en,record_time) values("+dev_id+","+master.getConnectState()+",'"+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)+"');"; String sql_str_upd = " UPDATE "+Sql_Mysql.Tb_Device_ConnectState+" SET connect_en = "+master.getConnectState()+",record_time='"+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)+"' WHERE dev_id = " + dev_id; Sql_Mysql sql = new Sql_Mysql(pool.getConn()); ResultSet res = null; try { res = sql.sqlMysqlQuery(sql_str_sel); if(res.next()) { sql.sqlMysqlExecute(sql_str_upd); }else { sql.sqlMysqlExecute(sql_str_ins); } } catch (SQLException e) { e.printStackTrace(); } finally { if(res != null) { try { res.close(); } catch (SQLException e) { e.printStackTrace(); } sql.close_con(); } } } } src/com/dev/base/data/Dynamicload_SocketClient_Thread.java
@@ -60,6 +60,7 @@ //System.err.println(dinf.dev_id + "=====" + ((new Date()).getTime() - last.getTime())); last = new Date(); PowerArk_Task_SQL.insertOrUpdateDeviceConnectState(conn_pool, dinf.dev_id, master); if (runCount % 10 == 0) { // 更新当前设备ip master.setTarget_ip(dinf.dev_ip); src/com/modbus/data/MyModbusMaster.java
@@ -1,8 +1,5 @@ package com.modbus.data; import java.text.NumberFormat; import com.base.ComBase; import com.serotonin.modbus4j.ModbusMaster; import com.serotonin.modbus4j.ip.IpParameters; @@ -10,9 +7,11 @@ public final static int SLAVEID_DEFAULT = 2; public final static int MAX_ERROR_COUNT = 2; //最大连续错误计数 public final static int LOSE_CONNECT_COUNT = 20; //通讯中断最大计数 private ModbusMaster master; private int errcount; //错误计数 错误连续超过三个时重新获取master private int totalerr; //总的错误计数 //用于判别设备是否掉线 private int totalerr = 31; //总的错误计数[默认失去连接] 用于判别设备是否掉线 private String target_ip; //目标ip private int slaveId; //设备ID @@ -42,6 +41,7 @@ } public void reConnect() { System.out.println(target_ip); IpParameters params = new IpParameters(); params.setHost(target_ip); if(this.master != null) { @@ -85,6 +85,13 @@ } public int getConnectState() { if(this.totalerr < LOSE_CONNECT_COUNT) { return 1; } return 0; } public int getTotalerr() { return totalerr; } src/com/modbus/data/MyModbusUtils.java
@@ -147,10 +147,18 @@ public static BatchResults<Integer> readMutilRegisters(BatchRead<Integer> batch,MyModbusMaster master){ batch.setContiguousRequests(false); boolean isSuccess = true; try { return master.getMaster().send(batch); } catch (ModbusTransportException | ErrorResponseException e) { e.printStackTrace(); isSuccess = false; } finally { if(isSuccess) { master.clearError(); }else{ master.addErrorCount(); } } return null; } src/com/sql/Sql_Mysql.java
@@ -31,6 +31,8 @@ final public static String DB_Equip_Alarm = "`db_equip_alarm`"; final public static String DB_DynamicSystem = "`db_dynamicsystem`"; final public static String DB_Electric2MWSystem = "`db_electric2mwsystem`"; //--------------------------------------------------------------------------------------------// public final static String TB_HardDevSmsState = "tb_hard_dev_sms_state"; //--------------------------------------------------------------------------------------------// @@ -159,6 +161,7 @@ public final static String Tb_Dynamicload_Button_Rt = DB_DynamicSystem +".tb_dynamicload_button_rt"; //按钮反馈表 public final static String Tb_Dynamicload_Control = DB_DynamicSystem + ".tb_dynamicload_control"; //电源柜控制表 public final static String Tb_Device_ConnectState = DB_Electric2MWSystem+".tb_device_connectstate"; //设备通讯状态表 //--------------------------------------------------------------------------------------------// public Connection mysql_con; src/main/main_MonitorServer_Dynamicload.java
@@ -22,7 +22,7 @@ /**************************************************************************/ /**************************************************************************/ public final static boolean app_debug = false; public final static double m_VersionNum = 1.101; public final static double m_VersionNum = 1.201; public final static String m_Version = "Welcome To Use main_MonitorServer_Dynamicload V" + m_VersionNum ; /**************************************************************************/