whyclj
2020-09-22 997279cf58562e7178ef4fa3cca3f29486180adb
添加历史实时数据记录
1个文件已添加
5个文件已修改
142 ■■■■■ 已修改文件
ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electric_2Kw_TestData_Thread.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electric_State_2kw.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electric_inf_2kw.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electrical_2KWTask_SQL.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electrical_2KW_SocketClient_Thread.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_2KW/src/com/sql/Sql_Mysql.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electric_2Kw_TestData_Thread.java
New file
@@ -0,0 +1,84 @@
package com.electrical.TwoKW;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.base.Com;
import com.sql.MysqlConnPool;
public class Electric_2Kw_TestData_Thread implements Runnable{
    public static final int TESTDATA_RECORD_INTERVAL = 10;                //记录数据间隔
    public MysqlConnPool pool;
    public List<TestData_Record_Thread> threads;
    public List<Electric_inf_2kw> einfs;
    public Electric_2Kw_TestData_Thread(MysqlConnPool pool,List<Electric_inf_2kw> einfs){
        this.pool = pool;
        this.einfs = einfs;
        threads = new ArrayList<>();
    }
    @Override
    public void run() {
        System.out.println("Electric_2Kw_TestData_Thread Start at "+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
        while(true) {
            try {
                for(int i=0;i<einfs.size();i++) {
                    boolean isExist = false;
                    Electric_inf_2kw einf = einfs.get(i);
                    for(int k=0;k<threads.size();k++) {
                        if(threads.get(k).einf.electric2KW_id == einf.electric2KW_id) {
                            isExist = true;
                            break;
                        }
                    }
                    if(!isExist) {
                        TestData_Record_Thread thread = new TestData_Record_Thread(pool, einf);
                        threads.add(thread);
                        new Thread(thread).start();
                    }
                }
                Thread.sleep(3000);
            } catch (Exception e) {
                try {
                    Thread.sleep(5000);
                } catch (InterruptedException e1) {
                    e1.printStackTrace();
                }
                e.printStackTrace();
            }
        }
    }
    class TestData_Record_Thread implements Runnable{
        public MysqlConnPool pool;
        public Electric_inf_2kw einf;
        public TestData_Record_Thread(MysqlConnPool pool,Electric_inf_2kw einf) {
            this.pool = pool;
            this.einf = einf;
        }
        @Override
        public void run() {
            Date last = new Date(0);        //上一次测试的时间
            Date now = null;                //当前时间
            while(true) {
                try {
                    now = new Date();
                    long timelong = (now.getTime()-last.getTime())/1000;
                    if(timelong >= TESTDATA_RECORD_INTERVAL) {
                    }
                    Thread.sleep(500);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electric_State_2kw.java
@@ -69,9 +69,9 @@
            this.brachdcvol = (float)res.getValue(0);                //分直流电压
            this.brachdccurr = (float)res.getValue(1);                //分直流电流
            this.alldcvol = (float)res.getValue(2);                    //总直流电压
            this.alldccurr = (float)res.getValue(3);                    //总直流电流
            this.stopchargevol_one = (float)res.getValue(4);            //第1阶段充电终止电压
            this.stopchargevol_two = (float)res.getValue(5);            //第2阶段充电终止电压
            this.alldccurr = (float)res.getValue(3);                //总直流电流
            this.stopchargevol_one = (float)res.getValue(4);        //第1阶段充电终止电压
            this.stopchargevol_two = (float)res.getValue(5);        //第2阶段充电终止电压
            this.stopchargevol_three = (float)res.getValue(6);        //第3阶段充电终止电压
            this.stopchargevol_four = (float)res.getValue(7);        //第4阶段充电终止电压
            this.stopchargevol_five = (float)res.getValue(8);        //第5阶段充电终止电压
ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electric_inf_2kw.java
@@ -8,7 +8,9 @@
    public int electric2KW_type ; //'2' COMMENT '电源类型',
    public String note  ;//'',
    
    public Electric_State_2kw state;
    public Electric_Rt_2kw rt;
    public Electric_Control_Single_2kw control;
    
    public int getNum() {
        return num;
@@ -21,6 +23,9 @@
    }
    public void setElectric2KW_id(int electric2kw_id) {
        electric2KW_id = electric2kw_id;
        state = new Electric_State_2kw(electric2kw_id);
        rt = new Electric_Rt_2kw(electric2kw_id);
        control = new Electric_Control_Single_2kw(electric2kw_id);
    }
    public String getElectric2KW_ip() {
        return electric2KW_ip;
ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electrical_2KWTask_SQL.java
@@ -430,6 +430,43 @@
        }
    }
    
    /**
     * 创建历史实时记录表
     * @param pool
     * @param electric_id
     */
    public static void createTb_electric2mw_realdata(MysqlConnPool pool,int electric_id,Date time) {
        String time_str = Com.getDateTimeFormat(time, Com.DTF_Y_M_D);
        String sql_str = "CREATE TABLE IF NOT EXISTS "+Sql_Mysql.Tb_electric2MW_realdata+electric_id+"_"+time_str+" (" +
                "  num bigint(20) NOT NULL AUTO_INCREMENT," +
                "  electric2KW_id int(11) NOT NULL DEFAULT '0' COMMENT 'id'," +
                "  record_time datetime NOT NULL DEFAULT '2000-01-01 00:00:00' COMMENT '测试结束时间'," +
                "  brachdcvol float NOT NULL DEFAULT '0' COMMENT '分直流电压'," +
                "  brachdccurr float NOT NULL DEFAULT '0' COMMENT '分直流电流'," +
                "  alldcvol float NOT NULL DEFAULT '0' COMMENT '总直流电压'," +
                "  alldccurr float NOT NULL DEFAULT '0' COMMENT '总直流电流'," +
                "  controlangle float NOT NULL DEFAULT '0' COMMENT '控制角'," +
                "  localgivevol float NOT NULL DEFAULT '0' COMMENT '当前给定电压'," +
                "  localgivecurr float NOT NULL DEFAULT '0' COMMENT '当前给定电流'," +
                "  note varchar(255) NOT NULL DEFAULT '' COMMENT '备用'," +
                "  PRIMARY KEY (num)," +
                "  KEY index_electric2Kw_id (electric2KW_id) USING BTREE," +
                "  KEY index_record_time (record_time) USING BTREE" +
                ") ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            sql.sqlMysqlExecute(sql_str);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
    public static void insertTb_electric2mw_realdata() {
        String sql_str = " INSERT INTO db_electric2mwsystem.tb_electric2mw_realdata_6001_2020_09_21(electric2KW_id,record_time,brachdcvol,brachdccurr,alldcvol,alldccurr,controlangle,localgivevol,localgivecurr) " +
                         " VALUES();";
    }
    
    //更新2mw电源控制信息表
    public static void update_Electric_Control_2KW(MysqlConnPool pool,Electric_Control_Single_2kw econ) {
ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electrical_2KW_SocketClient_Thread.java
@@ -26,9 +26,15 @@
        this.conn_pool = conn_pool;
        this.einf = winf;
    
        state = einf.state;
        ert = einf.rt;
        econ = einf.control;
        /*
        state = new Electric_State_2kw(einf.electric2KW_id);
        ert = new Electric_Rt_2kw(einf.electric2KW_id);
        econ = new Electric_Control_Single_2kw(einf.electric2KW_id);
        */
        master = new MyModbusMaster(einf.getElectric2KW_ip(), MyModbusMaster.SLAVEID_DEFAULT);
        listAlarm=new ArrayList<Electric_2MW_alarm>();
        eAlarm=new Electric_2MW_alarm(einf.electric2KW_id);
ElectricalSystem_MonitorServer_2KW/src/com/sql/Sql_Mysql.java
@@ -188,6 +188,8 @@
    public final static String Tb_electric2MW_inf = DB_Electric2MWSystem + ".tb_electric2MW_inf";
    public final static String Tb_electric2MW_control = DB_Electric2MWSystem + ".tb_electric2MW_control";
    
    public final static String Tb_electric2MW_realdata = DB_Electric2MWSystem + ".tb_electric2mw_realdata_";        //2MW设备历史实时记录表
    public final static String Tb_Device_ConnectState = DB_Electric2MWSystem+".tb_device_connectstate";                //设备通讯状态表
    public final static String Tb_Electric_2MW_alarm = DB_Electric2MWSystem+".tb_Electric_2MW_alarm";                //2MW实时告警
    public final static String Tb_Electric_2MW_alarm_history = DB_Electric2MWSystem+".tb_Electric_2MW_alarm_history";//2MW历史告警