V1.104	edit at date 2022-04-21 lijun
1.修复实时状态内阻测试跳变bug
2.修复多组电池组时,启动/停止内阻测试时,启动/停止当前选择的电池组
8个文件已修改
100 ■■■■■ 已修改文件
BattMonitor_Concentrator/config.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_Concentrator/src/com/battmonitor/data/BattData_RT.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_Concentrator/src/com/battmonitor/data/BattData_RT_SQL.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_Concentrator/src/com/batttest/BattResStorePro_Thread.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_Concentrator/src/com/dev_concentrator/data/Concentrator_SocketThread.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_Concentrator/src/com/dev_concentrator/data/Concentrator_SocketThread_SQL.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_Concentrator/src/com/version_inf/version_inf.txt 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_Concentrator/src/main/main_MonitorServer_Concentrator.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_Concentrator/config.xml
@@ -2,7 +2,7 @@
<root>
  <mysql_ramdb_recreate_en>false</mysql_ramdb_recreate_en>
  <mysql_server_ip>127.0.0.1</mysql_server_ip>
  <mysql_server_ip>192.168.10.79</mysql_server_ip>
  <!--SOURCE_BATTDATA_TYPE_FBSDEV = 0-->
  <!--SOURCE_BATTDATA_TYPE_SQLSERVER = 1-->
  <!--SOURCE_BATTDATA_TYPE_C_INTERFACE = 2-->
BattMonitor_Concentrator/src/com/battmonitor/data/BattData_RT.java
@@ -386,6 +386,14 @@
    {
        return mTestData.battState;
    }
    public byte getNewBattState()
    {
        if((mTestData.battState == BattStatData.BATTDATA_FLOAT || mTestData.battState == BattStatData.BATTDATA_JUNCHARGE)&& mTestData.batt_res_test_state == 1) {
            //如果电池组是浮充状态并且在内阻测试则返回内阻测试状态
            return BattStatData.BATTDATA_RES;
        }
        return mTestData.battState;
    }
    public byte getBattTestType()
    {
        return mTestData.battTestState;
BattMonitor_Concentrator/src/com/battmonitor/data/BattData_RT_SQL.java
@@ -100,7 +100,8 @@
                    + " group_vol=" + bd_rt.getGroupVol() + ","
                    + " group_tmp=" + bd_rt.getGroupTmp() + ","
                    + " group_curr=" + bd_rt.getTestCurr() + ","
                    + " batt_state=" + bd_rt.getBattState() + ","
                    //+ " batt_state=" + bd_rt.getBattState() + ","
                    + " batt_state=" + bd_rt.getNewBattState() + ","
                    + " batt_test_type=" + bd_rt.getBattTestType() + ","
                    + " test_loadertype=" + bd_rt.mTestData.getLoaderType() + ","
                    + " test_recordnum=" + bd_rt.mTestData.getTestRecordNum() + ","
BattMonitor_Concentrator/src/com/batttest/BattResStorePro_Thread.java
@@ -220,8 +220,8 @@
                for(int n=0; n<m_Data.getItemCount(); n++) {
                    BattData_RT rt_data = m_Data.getItem(n);
                    if(((rt_data.FBSDeviceId/10000000) == 96)) {
                        InsertDataToMysql_Task_SQL.get_MonData_From_BattData_RT_RamDB_Table(m_Conn_Pool, rt_data);
                        InsertDataToMysql_Task_SQL.get_ResTestState_From_FBS9100State_RT_RamDB_Table(m_Conn_Pool, rt_data);
                        //InsertDataToMysql_Task_SQL.get_MonData_From_BattData_RT_RamDB_Table(m_Conn_Pool, rt_data);
                        //InsertDataToMysql_Task_SQL.get_ResTestState_From_FBS9100State_RT_RamDB_Table(m_Conn_Pool, rt_data);
                    }
                    
                    if(0x00 == rt_data.mTestData.batt_res_test_state) {
BattMonitor_Concentrator/src/com/dev_concentrator/data/Concentrator_SocketThread.java
@@ -51,7 +51,7 @@
            for(int i = 0; i < 3 ;i++) {
                
                Thread.sleep(500);
                m_CMD.makeCmd(0xFF, Concentrator_ComBase.CMD_MODEBUS_READCMD, Concentrator_ComBase.CMD_MODEBUS_DEVICEIDINFO_INDEX,1);
                m_CMD.makeCmd(0x01, Concentrator_ComBase.CMD_MODEBUS_READCMD, Concentrator_ComBase.CMD_MODEBUS_DEVICEIDINFO_INDEX,1);
                boolean flag = SocketComm(m_CMD, ByteBuffer.allocate(0), socket);
                if(flag = true) {
                    dataArray = Concentrator_SocketThread_SQL.queryDeviceFromDataBase(pool,sysState.getDev_id());
@@ -80,9 +80,10 @@
        } catch (InterruptedException e) {
            e.printStackTrace();
        } finally {
            if(reg_in_flag) {
            if(reg_in_flag && sysState.getDev_id() > 0) {
                System.out.println("设备:"+sysState.getDev_id()+"识别成功  at "+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
            }else {
                reg_in_flag = false;
                System.out.println("设备:"+sysState.getDev_id()+"识别失败  at "+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
            }
        }
@@ -103,12 +104,12 @@
        }
        while(S_thread_run_flag && reg_in_flag) {
            try {
                for(int i= 0;i<dataArray.getItemCount();i++) {
                for(int i= 0;i<dataArray.getItemCount() && i<12;i++) {
                    main_MonitorServer_Concentrator.isFlushData = true;                            //通知更新线程
                    
                    Thread.sleep(100);
                    BattData_RT batt = dataArray.getItem(i);
                    m_CMD.makeCmd(0xFF, Concentrator_ComBase.CMD_MODEBUS_READCMD, Concentrator_ComBase.CMD_MODEBUS_DEVICESTATE_INDEX, Concentrator_State.REG_LEN);
                    m_CMD.makeCmd((i+1), Concentrator_ComBase.CMD_MODEBUS_READCMD, Concentrator_ComBase.CMD_MODEBUS_DEVICESTATE_INDEX, Concentrator_State.REG_LEN);
                    SocketComm(m_CMD, ByteBuffer.allocate(0), socket);
                    
                    int reg_count = batt.MonCount;
@@ -117,29 +118,32 @@
                    }
                    
                    Thread.sleep(100);
                    m_CMD.makeCmd(0xFF, Concentrator_ComBase.CMD_MODEBUS_READCMD, Concentrator_ComBase.CMD_MODEBUS_BATTMONVOL_INDEX,reg_count);
                    m_CMD.makeCmd((i+1), Concentrator_ComBase.CMD_MODEBUS_READCMD, Concentrator_ComBase.CMD_MODEBUS_BATTMONVOL_INDEX,reg_count);
                    SocketComm(m_CMD, ByteBuffer.allocate(0), socket);
                    
                    Thread.sleep(100);
                    m_CMD.makeCmd(0xFF, Concentrator_ComBase.CMD_MODEBUS_READCMD, Concentrator_ComBase.CMD_MODEBUS_BATTMONTMP_INDEX,reg_count);
                    m_CMD.makeCmd((i+1), Concentrator_ComBase.CMD_MODEBUS_READCMD, Concentrator_ComBase.CMD_MODEBUS_BATTMONTMP_INDEX,reg_count);
                    SocketComm(m_CMD, ByteBuffer.allocate(0), socket);
                    
                    Thread.sleep(100);
                    m_CMD.makeCmd(0xFF, Concentrator_ComBase.CMD_MODEBUS_READCMD, Concentrator_ComBase.CMD_MODEBUS_BATTMONRES_INDEX,reg_count);
                    m_CMD.makeCmd((i+1), Concentrator_ComBase.CMD_MODEBUS_READCMD, Concentrator_ComBase.CMD_MODEBUS_BATTMONRES_INDEX,reg_count);
                    SocketComm(m_CMD, ByteBuffer.allocate(0), socket);
                    
                    if(sysState != null) {
                        Concentrator_SocketThread_SQL.insertOrupdateFbs9100StateByDev_Id(pool, sysState);
                    }
                }
                Concentrator_SocketThread_SQL.queryFBS9100SetParam_Table(pool, param);
                if(param.op_cmd == Concentrator_ComBase.CMD_Start) {
                    //if(param.TestCmd == Concentrator_ComBase.CMD_StartResDischarge) {
                        if(param.BattGroupNum >3) {
                            param.BattGroupNum = 0;
                            if(param.BattGroupNum < 1) {
                                param.BattGroupNum = 1;
                        }                        
                            System.out.println("DevId:"+sysState.getDev_id()+";电池组:"+param.BattGroupNum+";启动内阻测试 at"+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
                        //启动内阻测试
                        m_CMD.makeCmd(0xFF, Concentrator_ComBase.CMD_MODEBUS_WRITECMD, Concentrator_ComBase.CMD_MODEBUS_STARTRESTEST,1);
                            //m_CMD.makeCmd(0xFF, Concentrator_ComBase.CMD_MODEBUS_WRITECMD, Concentrator_ComBase.CMD_MODEBUS_STARTRESTEST,1);
                            m_CMD.makeCmd(param.BattGroupNum, Concentrator_ComBase.CMD_MODEBUS_WRITECMD, Concentrator_ComBase.CMD_MODEBUS_STARTRESTEST,1);
                        if(SocketComm(m_CMD, m_CMD.getControlByteBuffer(), socket)) {
                            param.op_cmd = Concentrator_ComBase.CMD_StartAck;
                        }
@@ -148,11 +152,13 @@
                    //}
                }else if(param.op_cmd == Concentrator_ComBase.CMD_Stop) {
                    //停止内阻测试
                    if(param.BattGroupNum >3) {
                        param.BattGroupNum = 0;
                        if(param.BattGroupNum < 1) {
                            param.BattGroupNum = 1;
                    }                        
                        System.out.println("DevId:"+sysState.getDev_id()+";电池组:"+param.BattGroupNum+";停止内阻测试 at"+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
                    //停止内阻测试
                    m_CMD.makeCmd(0xFF, Concentrator_ComBase.CMD_MODEBUS_WRITECMD, Concentrator_ComBase.CMD_MODEBUS_STOPRESTEST,1);
                        m_CMD.makeCmd(param.BattGroupNum, Concentrator_ComBase.CMD_MODEBUS_WRITECMD, Concentrator_ComBase.CMD_MODEBUS_STOPRESTEST,1);
                        //m_CMD.makeCmd(0xFF, Concentrator_ComBase.CMD_MODEBUS_WRITECMD, Concentrator_ComBase.CMD_MODEBUS_STOPRESTEST,1);
                    if(SocketComm(m_CMD, m_CMD.getControlByteBuffer(), socket)) {
                        param.op_cmd = Concentrator_ComBase.CMD_StopAck;
                    }
@@ -169,6 +175,7 @@
                }
                
                
                }
                Thread.sleep(50);
            } catch (Exception e) {
                e.printStackTrace();
@@ -336,9 +343,12 @@
                    Concentrator_State battstate = new Concentrator_State();
                    //读取设备的状态信息
                    if(true == battstate.putByteBuffer(bf)) {
                        //System.out.println(battstate);
                        //更新指定的设备的组端信息   
                        getConcentratorBattState(dataArray.getItem(0),battstate);
                        BattData_RT batt = dataArray.getItem(m_Con_Cmd.ADDR-1);
                        //System.out.println(batt + "==="+(m_Con_Cmd.ADDR-1)+"=="+batt.BattGroupId);
                        if(null != batt) {
                            getConcentratorBattState(batt,battstate);
                        }
                        
                        isSuccess = true;
                    }
@@ -348,7 +358,10 @@
                    Concentrator_ResCapData mondata = new Concentrator_ResCapData();
                    if(true == mondata.putByteBuffer(bf, FBS9100_ComBase.DataType_MonVol)) {
                        //System.out.println("读取电压成功");
                        getConCentratorMonData(dataArray.getItem(0),mondata);
                        BattData_RT batt = dataArray.getItem(m_Con_Cmd.ADDR-1);
                        if(null != batt) {
                            getConCentratorMonData(batt,mondata);
                        }
                        isSuccess = true;
                    }
                    
@@ -358,7 +371,11 @@
                    Concentrator_ResCapData mondata = new Concentrator_ResCapData();
                    if(true == mondata.putByteBuffer(bf, FBS9100_ComBase.CMD_GetMonomerTMP)) {
                        //System.out.println("读取温度成功"+"==="+mondata.m_DataType);
                        getConCentratorMonData(dataArray.getItem(0),mondata);
                        BattData_RT batt = dataArray.getItem(m_Con_Cmd.ADDR-1);
                        if(null != batt) {
                            getConCentratorMonData(batt,mondata);
                        }
                        //getConCentratorMonData(dataArray.getItem(0),mondata);
                        isSuccess = true;
                    }
                    
@@ -367,7 +384,11 @@
                    Concentrator_ResCapData mondata = new Concentrator_ResCapData();
                    if(true == mondata.putByteBuffer(bf, FBS9100_ComBase.CMD_GetMonomerRES)) {
                        //System.out.println("读取内阻成功");
                        getConCentratorMonData(dataArray.getItem(0),mondata);
                        BattData_RT batt = dataArray.getItem(m_Con_Cmd.ADDR-1);
                        if(null != batt) {
                            getConCentratorMonData(batt,mondata);
                        }
                        //getConCentratorMonData(dataArray.getItem(0),mondata);
                        isSuccess = true;
                    }
                    
@@ -375,16 +396,17 @@
            }else if(Concentrator_ComBase.CMD_MODEBUS_WRITECMD == m_Con_Cmd.CMD){
                if(Concentrator_ComBase.CMD_Result_Success == m_Con_Cmd.Result_val) {
                    if(Concentrator_ComBase.CMD_MODEBUS_STARTRESTEST == m_Con_Cmd.RES_Index) {
                        System.out.println("启动内阻测试成功");
                        System.out.println("DevId:"+sysState.getDev_id()+" 启动内阻测试成功 "+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
                    }
                    if(Concentrator_ComBase.CMD_MODEBUS_STOPRESTEST == m_Con_Cmd.RES_Index) {
                        System.out.println("停止内阻测试成功");
                        System.out.println("DevId:"+sysState.getDev_id()+" 停止内阻测试成功 "+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
                    }
                    if(Concentrator_ComBase.CMD_MODEBUS_RESTARTSYS == m_Con_Cmd.RES_Index) {
                        System.out.println("重启成功");
                        System.out.println("DevId:"+sysState.getDev_id()+" 重启成功 "+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
                        //System.out.println("重启成功");
                    }
                    }
                    isSuccess = true;
                }
            }
        }
        return isSuccess;
@@ -451,11 +473,11 @@
            battData.mTestData.updateCurrFrom_FBSDev((float) battstate.getGroupcurr());
            sysState.setSysstate(battData.mTestData.upDevWorkState((float) battstate.getGroupcurr()));
            sysState.sysversion = battstate.getSysversion();
            sysState.dev_restest_count = battstate.getRestestcount();
            sysState.dev_res_test_state = battstate.getDev_Res_State();                    //内阻测试
            //sysState.dev_restest_count = battstate.getRestestcount();
            //sysState.dev_res_test_state = battstate.getDev_Res_State();                    //内阻测试
            //---------------------------------------------------------------------------//
            //--------------------- 然后读取内阻测试状态  ---------------------------------//
            //battData.mTestData.batt_res_test_state = sys_state.ResTestState;
            battData.mTestData.batt_res_test_state = battstate.getDev_Res_State();
            battData.mTestData.batt_res_test_cnt = battstate.getRestestcount();
            battData.setmRecordTime(new Date());
            battData.updata_BattRtSate_To_RamDb();
BattMonitor_Concentrator/src/com/dev_concentrator/data/Concentrator_SocketThread_SQL.java
@@ -24,12 +24,15 @@
    public static void insertFBS9100SetParam_Table(MysqlConnPool pool,Concentrator_SetParam param) {
        String sql_str_sel = " SELECT * FROM " + Sql_Mysql.FBS9100SetParam_Table + " where dev_id = " + param.dev_id;
        String sql_str_ins = " INSERT INTO " + Sql_Mysql.FBS9100SetParam_Table + "(dev_id) values("+param.dev_id+")";
        String sql_str_upd = " UPDATE " + Sql_Mysql.FBS9100SetParam_Table + " SET op_cmd = 0 WHERE dev_id =  "+param.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_ins);
            }else {
                sql.sqlMysqlExecute(sql_str_upd);
            }
        } catch (Exception e) {
            e.printStackTrace();
BattMonitor_Concentrator/src/com/version_inf/version_inf.txt
@@ -311,3 +311,7 @@
    1.添加内阻数据记录线程
    2.添加电池充放电数据记录线程
    3.添加电池组数据时录入电池组信息
V1.104    edit at date 2022-04-21 lijun
    1.修复实时状态内阻测试跳变bug
    2.修复多组电池组时,启动/停止内阻测试时,启动/停止当前选择的电池组
BattMonitor_Concentrator/src/main/main_MonitorServer_Concentrator.java
@@ -29,7 +29,7 @@
    /**************************************************************************/
    /**************************************************************************/
    public final static boolean app_debug = false;
    public final static double m_VersionNum = 1.103;
    public final static double m_VersionNum = 1.104;
    public final static String m_Version = "Welcome To Use main_MonitorServer_Concentrator V" 
                                            + m_VersionNum + " RC_20190112";
    /**************************************************************************/