Administrator
2022-10-19 bec9d52048d24f89ac665aa4b5abb726e212df63
应客户需求增加设备模拟单体电压内阻数据修改
5个文件已修改
78 ■■■■ 已修改文件
BattFBS9600_ForFG/src/com/battdata_rt/BattData_RT_SQL.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600_ForFG/src/com/dev/fg/FBS9600_State.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600_ForFG/src/com/dev/fg/FBS9600_State_SQL.java 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600_ForFG/src/com/sql/Sql_Mysql.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600_ForFG/src/com/version_inf/version_inf.txt 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600_ForFG/src/com/battdata_rt/BattData_RT_SQL.java
@@ -96,6 +96,10 @@
            String sql_str_vol = " ";
            for (int n = 0; n < bd_rt.MonCount; n++) {
                tmp_dt = ((MonVolData) bd_rt.al_MonVol.get(n)).monVol;
//                tmp_dt = (float)(bd_rt.MonStdVol + 0.2 + Math.random()*0.013);
//                if(bd_rt.MonStdVol == 12) {
//                    tmp_dt = tmp_dt + 1;
//                }
                if (((MonVolData) bd_rt.al_MonVol_RtOld.get(n)).monVol != tmp_dt) {
                    ((MonVolData) bd_rt.al_MonVol_RtOld.get(n)).monVol = tmp_dt;
                    sql_str_vol = sql_str_vol + " WHEN " + (n + 1) + " THEN "
BattFBS9600_ForFG/src/com/dev/fg/FBS9600_State.java
@@ -467,7 +467,7 @@
    public boolean putMonResBatchResult(BatchResults<Integer> res, int index, BattData_RT battData_RT) {
        if(res != null) {
            for(int i=0;i<battData_RT.MonCount;i++) {
                battData_RT.al_MonVol.get(i).monRes = ((float)res.getIntValue(i))/1000;
                //battData_RT.al_MonVol.get(i).monRes = ((float)res.getIntValue(i))/1000;
            }        
            return true;
        }
BattFBS9600_ForFG/src/com/dev/fg/FBS9600_State_SQL.java
@@ -433,22 +433,59 @@
            sql.close_con();
        }
    }
    public static float queryAvgBattMonResAlmPama(MysqlConnPool pool,int dev_id) {
        String sql_str_sel = " SELECT * FROM " + Sql_Mysql.Tb_Dev_Param_Table + " WHERE dev_Id = " + dev_id + " AND alm_id = 119007 LIMIT 1";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        ResultSet res = null;
        float avg_param = 0;
        try {
            res = sql.sqlMysqlQuery(sql_str_sel);
            if(res.next()) {
                float alm_high_coe = res.getFloat("alm_high_coe");
                float alm_low_coe = res.getFloat("alm_low_coe");
                avg_param = (alm_high_coe + alm_low_coe)/2;
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if(null != res) {
                try {
                    res.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            sql.close_con();
        }
        return avg_param;
    }
    /**
     * 启动是模拟每个电池组的内阻数据值
     * @param gB_MysqlConnPool
     */
    public static void MakeMonResDataRandom(MysqlConnPool pool) {        
        String sql_str_sel = "SELECT * FROM " + Sql_Mysql.BattRtData_Table;
        String sql_str_sel = "SELECT * FROM " + Sql_Mysql.BattInf_Table;
        //String sql_str_sel = "SELECT * FROM " + Sql_Mysql.BattRtData_Table;
        ResultSet res = null;
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            res = sql.sqlMysqlQuery(sql_str_sel);
            while(res.next()) {
                int battgroupid = res.getInt("BattGroupId");
                int mon_num = res.getInt("mon_num");
                int BattGroupId = res.getInt("BattGroupId");
                int MonCount    = res.getInt("MonCount");
                int MonVolStd   = res.getInt("MonVolStd");
                int MonCapStd   = res.getInt("MonCapStd");
                
                sql.sqlMysqlExecute("UPDATE " + Sql_Mysql.BattRtData_Table + " SET mon_res = " + String.format("%1.3f", (float)(0.101+Math.random()*0.298)) + " WHERE BattGroupId = " + battgroupid + " AND mon_num = " + mon_num);
                int FBSDeviceId = res.getInt("FBSDeviceId");
                float avg_param = queryAvgBattMonResAlmPama(pool,FBSDeviceId);
                float jiaozhun = (float)(1*((float)MonVolStd/2)/((float)MonCapStd/100));
                //System.out.println("校准值为:"+jiaozhun + "\t MonVolStd"+MonVolStd+"\t MonCapStd"+MonCapStd);
                for(int cnt = 1 ;cnt <= MonCount;cnt++) {
                    sql.sqlMysqlExecute("UPDATE " + Sql_Mysql.BattRtData_Table + " SET mon_res = " + String.format("%1.3f", (float)(jiaozhun*avg_param +Math.random()*0.01)) + " WHERE BattGroupId = " + BattGroupId + " AND mon_num = " + cnt);
                }
            }
        } catch (SQLException e) {
            e.printStackTrace();
@@ -466,14 +503,16 @@
    
    public static void main(String[] args) {
        MysqlConnPool pool = new MysqlConnPool("127.0.0.1", 3360, 5);
        MakeMonResDataRandom(pool);
        //MakeMonResDataRandom(pool);
        
//        for(int i = 0;i< 100000;i++) {
//            float ran = (float)(0.101+Math.random()*0.298);
//            if(ran < 0.101 || ran > 0.4 ) {
//                System.err.println(ran);
//            }
//            System.out.println(String.format("%1.3f", ran));
//        }
        System.out.println(queryAvgBattMonResAlmPama(pool, 401600012));
        for(int i = 0;i< 100000;i++) {
            float ran = (float)(0.11+Math.random()*0.019);
            if(ran < 0.101 || ran > 0.4 ) {
                System.err.println(ran);
            }
            System.out.println(String.format("%1.3f", ran));
        }
    }
}
BattFBS9600_ForFG/src/com/sql/Sql_Mysql.java
@@ -104,6 +104,10 @@
    
    public static final String Tb_Lithium_Data_Table = DB_RamDB + ".`tb_lithium_data`";
    public final static String Tb_Batt_RealData = DB_BATT_HISTORY + ".tb_batt_realdata_";
    public final static String Tb_Dev_Param_Table = DB_PARAM + ".tb_dev_param";
    public Logger logger;
    public Connection mysql_con;
BattFBS9600_ForFG/src/com/version_inf/version_inf.txt
@@ -1,7 +1,8 @@
FBS9600 福光总部显示屏通信程序   ModBus Tcp协议
    
2022-10-08 应客户要求模拟内阻数据范围0.101-0.399mΩ
已修改恢复
2022-10-08 应客户要求模拟内阻数据范围 标称值的 + 0.1*
                        单体电压范围为   标称电压+0.2+0.013*
已修改恢复
V1.103 edit at date 2022-02-24
    1.修改最新版本