充放电一体机二期通信程序【在用】
Administrator
2022-08-19 9289597c4d54a416d841360394f5dd9007f149d8
修复放电过程中一体机中断重连,放电数据记录成1笔还是2笔的区分判断
5个文件已修改
76 ■■■■ 已修改文件
BattMonitor_FGCD-A059NT_Four/src/com/battmonitor/data/BattData_RT.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FGCD-A059NT_Four/src/com/battmonitor/data/BattStatData.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FGCD-A059NT_Four/src/com/dev/fgcd/comm/FGCD_SocketClient_Thread.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FGCD-A059NT_Four/src/com/dev/fgcd/comm/FGCD_SocketClient_Thread_SQL.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FGCD-A059NT_Four/src/com/dev/fgcd/data/FGCD_SysState.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FGCD-A059NT_Four/src/com/battmonitor/data/BattData_RT.java
@@ -788,8 +788,19 @@
                    else if((BattStatData.BATTSTATE_FLOAT == mTestData.battTestState) && (FGCD_ComBase.WORK_STATE_STOPPED != mTestData.dev_FBS9100S_WorkState))
                    //2022-06-29修复放电结束后电流未更新,仍在记录充电数据bug
                    {
                        mTestData.dev_teststarttime =     mTestData.dev_teststarttime_en;
                        initTestData(BattStatData.BATTSTATE_CHARGE);
                        printBattRtDataDebugInf_FBS9100S(3);
                    }else if(BattStatData.BATTSTATE_CHARGE == mTestData.battTestState){
                        if(mTestData.dev_teststarttime_en.getTime() > mTestData.dev_teststarttime.getTime()) {
                            //设备中断重连时若2次的开始时间不一致则重新记录一笔放电数据
                            printBattRtDataDebugInf_FBS9100S(2);
                            mTestData.battTestState = BattStatData.BATTSTATE_FLOAT;
                            mTestData.battState = BattStatData.BATTSTATE_FLOAT;
                            store_state = true;
                        }
                    }
                //} else if(mTestData.testCurr <= ((mBattFloatCurrLevel+2)*(-1))) {
                } else if(mTestData.testCurr <= ((mBattFloatCurrLevel)*(-1))) {
@@ -803,8 +814,20 @@
                    }
                    else if(BattStatData.BATTSTATE_FLOAT == mTestData.battTestState)
                    {
                        mTestData.dev_teststarttime =     mTestData.dev_teststarttime_en;
                        initTestData(BattStatData.BATTSTATE_DISCHARGE);
                        printBattRtDataDebugInf_FBS9100S(5);
                    }else if(BattStatData.BATTSTATE_DISCHARGE == mTestData.battTestState) {
                        if(mTestData.dev_teststarttime_en.getTime() > mTestData.dev_teststarttime.getTime()) {
                            //设备中断重连时若2次的开始时间不一致则重新记录一笔放电数据
                            printBattRtDataDebugInf_FBS9100S(8);
                            mTestData.battTestState = BattStatData.BATTSTATE_FLOAT;
                            mTestData.battState = BattStatData.BATTSTATE_FLOAT;
                            store_state = true;
                        }
                    }
                } else {
                    /**
@@ -812,6 +835,8 @@
                     */
                    if(BattStatData.BATTSTATE_FLOAT == mTestData.battTestState) {
                        if((FGCD_ComBase.WORK_STATE_DISTEST == mTestData.dev_FBS9100S_WorkState)) {
                            mTestData.dev_teststarttime =     mTestData.dev_teststarttime_en;
                            initTestData(BattStatData.BATTSTATE_DISCHARGE);
                            printBattRtDataDebugInf_FBS9100S(6);
                        }/* else if(FBS9100_ComBase.SYS_STATE_CHARGING == mTestData.dev_FBS9100S_WorkState) {
@@ -826,6 +851,7 @@
        if((BattStatData.BATTSTATE_DISCHARGE == mTestData.battTestState)
            || (BattStatData.BATTSTATE_CHARGE == mTestData.battTestState))
        {
            mTestData.calTestCap(1);
            calBattRestCap(mTestData.testCurr, mTestData.testCap);
            
BattMonitor_FGCD-A059NT_Four/src/com/battmonitor/data/BattStatData.java
@@ -57,6 +57,11 @@
    private Date startTestTime = new Date();
    private Date recordTime = new Date();
    public Date newDataRecordTime = new Date(0,0,0);     //new data time that get from fbs_dev;
    public Date dev_teststarttime = new Date(0,0,0);        //当前设备目前的测试开始时间
    public Date dev_teststarttime_en = new Date(0,0,0);        //设备当前的测试开始时间
    //public Date dataInsertToDBTime = new Date();     //data insert to database time;
    public int testTimeLong;
    public float onlineVol;
@@ -203,6 +208,13 @@
        }
    }
    
    public void updateDevTestStarttime(Date startttime) {
        if(null != startttime) {
            dev_teststarttime_en = startttime;
        }
    }
    public float getAvgTestCurr() {
        float avg_curr = 0;
        if(testTimeLong > 0) {
BattMonitor_FGCD-A059NT_Four/src/com/dev/fgcd/comm/FGCD_SocketClient_Thread.java
@@ -361,6 +361,16 @@
                        fboFile.clearState();
                    }    
                }
                if(DevReadCount %12 == 0 || readCharData) {
                    //logger.info("获取放电数据");
                    FGCD_Cmd tmp_cmd = new FGCD_Cmd(FGCD_ComBase.CMD_GETDISCHARGEDATA);
                    tmp_cmd.Db1 = sendlock_state_char;
                    SocketComm(tmp_cmd, ByteBuffer.allocate(0));
                    tmp_cmd = null;
                    readCharData = false;
                }
                if(DevReadCount %10 == 0 || readMonData) {
                    //logger.info("获取单体数据");
                    FGCD_Cmd tmp_cmd = new FGCD_Cmd(FGCD_ComBase.CMD_GETBATTDATA);
@@ -370,14 +380,6 @@
                    readMonData = false;
                }
                
                if(DevReadCount %12 == 0 || readCharData) {
                    //logger.info("获取放电数据");
                    FGCD_Cmd tmp_cmd = new FGCD_Cmd(FGCD_ComBase.CMD_GETDISCHARGEDATA);
                    tmp_cmd.Db1 = sendlock_state_char;
                    SocketComm(tmp_cmd, ByteBuffer.allocate(0));
                    tmp_cmd = null;
                    readCharData = false;
                }
                
                if(DevReadCount % 50 == 0) {
                    //15s读取一次版本信息
@@ -1203,6 +1205,7 @@
                //---------------------------------------------------------------------------//
                //--------------------- 接着更新当前时间 -----------------------------------------//
                m_RTData[n].mTestData.updateNewDataRCTime(new Date());
                m_RTData[n].mTestData.updateDevTestStarttime(sys_state.test_starttime);
                //---------------------------------------------------------------------------//
                //--------------------- 先更新单体数据,再更新电池状态数据 ----------------------//
                m_RTData[n].updata_BattRtData_To_RamDb();
BattMonitor_FGCD-A059NT_Four/src/com/dev/fgcd/comm/FGCD_SocketClient_Thread_SQL.java
@@ -3015,4 +3015,13 @@
            sql.close_con();
        }        
    }
    /*public static void main(String[] args) {
        MysqlConnPool pool = new MysqlConnPool("192.168.10.79", 3360, 5);
        FGCD_VCData vc_data = new FGCD_VCData();
        FGCD_StateAndParam m_pm = new FGCD_StateAndParam();
        m_pm.dev_id = 805900004;
        queryFbs9100StateByDev_Id(pool, vc_data, m_pm);
    }*/
}
BattMonitor_FGCD-A059NT_Four/src/com/dev/fgcd/data/FGCD_SysState.java
@@ -5,6 +5,8 @@
import java.util.Arrays;
import java.util.Date;
import com.battmonitor.base.Com;
public class FGCD_SysState {
    private final int BYTE_LEN = 48;
    
@@ -12,7 +14,7 @@
    
    public double groupVol;                            //在线电压(0.1V)
    public double tatalVol;                            //总电压(0.1V)
    public Date nowDate;                            //标准时间
    public Date test_starttime;                        //主机测试开始时间
    public String chageDate;                        //充电时间(时:分:秒)
    public int test_timelong;                        //测试时长(分钟)
    public int btnState;                            //按键状态(0:停止  1:暂停放电  2:放电   3:暂停充电   4:充电  5:等待充电   6:等待放电)
@@ -51,7 +53,7 @@
    public FGCD_SysState() {
        groupVol = 0;                            //在线电压(0.1V)
        tatalVol = 0;                            //总电压(0.1V)
        nowDate = new Date();                    //标准时间
        test_starttime = new Date();            //测试开始时间
        chageDate = new String();                //充电时间(时:分:秒)
        btnState = 0;                            //按键状态(0:停止  1:暂停放电  2:放电   3:暂停充电   4:充电  5:等待充电   6:等待放电)
        lowerCount = 0;                            //已到下限单体数量
@@ -117,6 +119,8 @@
        int sec = FGCD_ComBase.changeByteToInt(bf.get());
        //System.out.println(year+":"+month+":"+day+":"+hour+":"+min+":"+sec);
        String starttime_str = (year+2000)+"-"+month+"-"+day+" "+hour+":"+min+":"+sec;
        test_starttime = Com.getDateTimeFromStr(starttime_str, Com.DTF_YMDhms);
        //nowDate = Com.getDateTimeFromStr(dt, Com.DTF_YMDhms);
        int hour1 = FGCD_ComBase.changeByteToInt(bf.get());
        int min1 = FGCD_ComBase.changeByteToInt(bf.get());
@@ -193,7 +197,7 @@
    @Override
    public String toString() {
        return "FGCD_SysState [BYTE_LEN=" + BYTE_LEN + ", dev_workstate=" + dev_workstate + ", groupVol=" + groupVol
                + ", tatalVol=" + tatalVol + ", nowDate=" + nowDate + ", chageDate=" + chageDate + ", test_timelong="
                + ", tatalVol=" + tatalVol + ", test_starttime=" + test_starttime + ", chageDate=" + chageDate + ", test_timelong="
                + test_timelong + ", btnState=" + btnState + ", lowerCount=" + lowerCount + ", chargeCurr=" + chargeCurr
                + ", testCap=" + testCap + ", maxVolNum=" + maxVolNum + ", maxVol=" + maxVol + ", minVolNum="
                + minVolNum + ", minVol=" + minVol + ", hhProgress=" + hhProgress + ", hhCount=" + hhCount