定制版本逆变电源通讯程序[增加干节点状态读取和母联开关状态读取以及防雷显示]
V10.646 edit at date 2022-03-19 lijun
1.逆变有母联设备新增切换箱接触器正负极开关状态读取
8个文件已修改
150 ■■■■■ 已修改文件
BattMonitor_FBS9100S_Inverter/src/com/dev/btse/comm/FBS9100S_SocketClient2.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_Inverter/src/com/dev/btse/comm/FBS9100_Task_Thread_SQL.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_Inverter/src/com/dev/btse/data/FBS9100S_QHZZ_FZCD_State.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_Inverter/src/com/dev/btse/data/FBS9100S_TmpHumSensor.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_Inverter/src/com/dev/btse/data/FBS9100_ComBase.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_Inverter/src/com/dev/btse/data/FBS9100_DeviceInf.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_Inverter/src/com/version_inf/version_inf.txt 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_Inverter/src/main/main_MonitorServer_FBS9100S.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_Inverter/src/com/dev/btse/comm/FBS9100S_SocketClient2.java
@@ -28,6 +28,7 @@
import com.dev.btse.data.FBS9100S_NT_DCDC_Data;
import com.dev.btse.data.FBS9100S_NT_DCDC_State;
import com.dev.btse.data.FBS9100S_NiBian_Data;
import com.dev.btse.data.FBS9100S_QHZZ_FZCD_State;
import com.dev.btse.data.FBS9100S_SIMData;
import com.dev.btse.data.FBS9100S_SX_DCDC_Data;
import com.dev.btse.data.FBS9100S_SX_DCDC_Param;
@@ -93,6 +94,8 @@
    private FBS9100S_SX_DCDC_Data[] m_SX_DCDC_DataList = null;
    private FBS9100S_LIBMS_AlarmState[] m_LiBMS_AlarmStates = null;
    private FBS9100S_LiBMS_AnalogData[] m_LiBMS_AnalogDatas = null;
    private FBS9100S_QHZZ_FZCD_State m_Qhzz_Fzcd_State = null;
    
    private FBS9100_JHPowerState mJHPowerState = null;
    
@@ -321,6 +324,8 @@
            m_SX_DCDC_DataList = new FBS9100S_SX_DCDC_Data[FBS9100_ComBase.LIBTS_DCDC_CountMax];
            m_LiBMS_AlarmStates = new FBS9100S_LIBMS_AlarmState[FBS9100_ComBase.LIBTS_DCDC_CountMax];
            m_LiBMS_AnalogDatas = dev_inf.getM_LiBMS_States();
            m_Qhzz_Fzcd_State = new FBS9100S_QHZZ_FZCD_State();
            for(int i=0;i<m_SX_DCDC_DataList.length;i++) {
                m_SX_DCDC_DataList[i] = new FBS9100S_SX_DCDC_Data();
                m_LiBMS_AlarmStates[i] = new FBS9100S_LIBMS_AlarmState();
@@ -638,6 +643,12 @@
                        if(0 == (DevReadCount%(39*DevReadCount_Rate)) && FBS9100_ComBase.BTSE_DevType_LIBTS != m_BTSDevSoftType) {
                            //System.out.println("读取均衡电流");
                            SocketComm(FBS9100_ComBase.CMD_GetMonomerJHCUR, ByteBuffer.allocate(0), socket);
                        }
                        if(0 == (DevReadCount%(30*DevReadCount_Rate)) && FBS9100_ComBase.BTSE_DevType_LIBTS != m_BTSDevSoftType) {
                            //读取均衡供电模块信息
                            System.err.println("读取切换箱接触器信息");
                            SocketComm(FBS9100_ComBase.CMD_ReadQHZZFZCDState, ByteBuffer.allocate(0), socket);
                        }
                    }
                    
@@ -1071,7 +1082,7 @@
                            getNTDcDcDataFromCommBuf(bf);
                        }
                        
                        FBS9100_Task_Thread_SQL.updateFbs9100StateByDev_Id(m_ConnPool, vc_data, m_StatAndParam);
                        FBS9100_Task_Thread_SQL.updateFbs9100StateByDev_IdNew(m_ConnPool, vc_data, m_StatAndParam,m_Qhzz_Fzcd_State);
                        /*
                        Date dt_t = new Date(m_StatAndParam.m_FBS_VCData.m_SysState.DTime.getTimeInMillis());
                        System.out.println("BTS:" + Com.getDateTimeFormat(dt_t, Com.DTF_YMDhms));
@@ -1375,6 +1386,10 @@
                if(mSimData.putByteBuffer(bf)) {
                    isSuccess = true;
                }
            }else if(FBS9100_ComBase.CMD_ReadQHZZFZCDState == m_FBS_Cmd.CMD) {
                if(m_Qhzz_Fzcd_State.putByteBuffer(bf)) {
                    isSuccess = true;
                }
            }
        }
        return isSuccess;
BattMonitor_FBS9100S_Inverter/src/com/dev/btse/comm/FBS9100_Task_Thread_SQL.java
@@ -15,6 +15,7 @@
import com.dev.btse.data.FBS9100S_NT_DCDC_Data;
import com.dev.btse.data.FBS9100S_NT_DCDC_State;
import com.dev.btse.data.FBS9100S_NiBian_Data;
import com.dev.btse.data.FBS9100S_QHZZ_FZCD_State;
import com.dev.btse.data.FBS9100S_SX_DCDC_Data;
import com.dev.btse.data.FBS9100S_SX_DCDC_Param;
import com.dev.btse.data.FBS9100S_StemNode_State;
@@ -1181,6 +1182,94 @@
            sql.close_con();
        }
    }
    /**
     * 根据设备id更新  tb_fbs9100_state 表
     * @param con_pool
     * @param v_data
     * @param dev_id
     */
    public static void updateFbs9100StateByDev_IdNew(MysqlConnPool con_pool, FBS9100_VCData vc_data, FBS9100_StatAndParam m_pm,FBS9100S_QHZZ_FZCD_State m_state)
    {
        int TestGroup_index = m_pm.m_SysState.TestGroupNum;
        if(TestGroup_index > 0) {
            TestGroup_index -= 1;
        }
        if((TestGroup_index>=FBS9100_ComBase.BattGroupCountMax) || (TestGroup_index<0)) {
            TestGroup_index = 0;
        }
        int batt_online_state = 0;
        if(true == m_pm.m_SysState.BG_1_IsOFFLine) {
            batt_online_state |= (1<<1);
        }
        if(true == m_pm.m_SysState.BG_2_IsOFFLine) {
            batt_online_state |= (1<<2);
        }
        if(true == m_pm.m_SysState.SD_Card_Err) {
            batt_online_state |= (1<<5);
        }
        String sql_str_base = Sql_Mysql.FBS9100State_Table
                        + " SET "
                        + "dev_id=" + m_pm.dev_id + ", "
                        + "dev_ip='" + m_pm.dev_ipaddr + "', "
                        + "dev_version='" + m_pm.m_DevVersion + "', "
                        + "record_datetime="
                        + "'" + Com.getDateTimeFormat(m_pm.m_SysState.Record_DateTime, Com.DTF_YMDhms) + "',"
                        + "dev_datetime='" + m_pm.m_SysState.DTime.year + "-"
                                            + m_pm.m_SysState.DTime.month + "-"
                                            + m_pm.m_SysState.DTime.day + " "
                                            + m_pm.m_SysState.DTime.hour + ":"
                                            + m_pm.m_SysState.DTime.minute + ":"
                                            + m_pm.m_SysState.DTime.second + "', "
                        + "dev_testtype=" + m_pm.m_SysState.TestType+ ", "
                        + "dev_testgroupnum=" + m_pm.m_SysState.TestGroupNum + ", "
                        + "dev_workstate=" + m_pm.m_SysState.WorkState + ", "
                        + "dev_alarmstate=" + m_pm.m_SysState.AlarmState + ", "
                        + "dev_temp=" + vc_data.batttemp[0] + ", "
                        + "dev_res_test_state=" + m_pm.m_SysState.ResTestState + ", "
                        + "dev_onlinevollow=" + (1==m_pm.m_SysState.OnlineVolLow) + ", "
                        + "dev_captest_onlinevol=" + vc_data.onlinevol[TestGroup_index] + ", "
                        + "dev_captest_groupvol=" + vc_data.groupvol[TestGroup_index] + ", "
                        + "dev_captest_curr=" + vc_data.battcurr[TestGroup_index] + ", "
                        + "dev_captest_cap=" + vc_data.battcap[TestGroup_index] + ", "
                        + "dev_conresist=" + vc_data.conresist + ", "
                        + "dev_conresist1=" + vc_data.conresist1 + ", "
                        + "dev_condvoldp=" + vc_data.condvoldp + ", "
                        + "dev_condvoldp1=" + vc_data.condvoldp1 + ", "
                        + "dev_captest_timelong=" + vc_data.testTime.getSecondCount() + ", "
                        + "dev_restest_count=" + m_pm.m_SysState.ResTestCnt + ", "
                        + "dev_restest_monindex=" + m_pm.m_SysState.ResBattIndex + ", "
                        + "dev_restest_moncount=" + m_pm.m_SysState.ResBattIndexMax + ", "
                        + "dev_data_flowsum=" + m_pm.dev_comm_data_flowsum + ", "
                        + "batt_online_state=" + batt_online_state + ", "
                        + "dev_pos_states='" + m_state.getPosStateStr() + "', "
                        + "dev_neg_states='" + m_state.getNegStateStr() + "', "
                        + "dev_commcount=" + m_pm.m_SysState.CommCount + ", "
                        + "dev_errcommcount=" + m_pm.m_SysState.ErrCommCount + ", "
                        + "dev_rxnullerrcount=" + m_pm.m_SysState.RxNullErrCount;
                        if((m_pm.m_SysState.CapTestStopType>=0) && (m_pm.m_SysState.CapTestStopType<50)) {
                            sql_str_base += ", ";
                            sql_str_base += "dev_last_captest_stop_type=" + m_pm.m_SysState.CapTestStopType;
                        }
        String sql_str_replace = "REPLACE INTO " + sql_str_base;
        //String sql_str_update = "UPDATE " + Sql_Mysql.FBS9100State_Table + " SET dev_data_flowsum=dev_data_flowsum+"
        //                        + v_data.dev_comm_data_flowsum + " WHERE dev_id=" + m_pm.dev_id;
        Sql_Mysql sql = new Sql_Mysql(con_pool.getConn());
        try {
            //sql.logger.debug(sql_str);
            sql.sqlMysqlExecute(sql_str_replace);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            sql.logger.error("FBS9100_Task_Thread_SQL.updateFbs9100StateByDev_Id():" + e.toString(), e);
        } finally {
            sql.close_con();
        }
    }
    /***********************************************************************************/
    /*
    public static void updateFbs9100State_ResTestCNT_ByDev_Id(MysqlConnPool con_pool, FBS9100_StatAndParam m_pm)
BattMonitor_FBS9100S_Inverter/src/com/dev/btse/data/FBS9100S_QHZZ_FZCD_State.java
@@ -1,6 +1,7 @@
package com.dev.btse.data;
import java.nio.ByteBuffer;
import java.util.Arrays;
/**
 * 
@@ -8,15 +9,15 @@
 *
 */
public class FBS9100S_QHZZ_FZCD_State {
    public final int BYTELEN = 34;
    public final int BYTELEN = 18;
    
    public int[] posState;                //正极接触器状态    0:通信异常;1:正常;2:异常
    public int[] negState;                //负极接触器状态    0:通信异常;1:正常;2:异常
    public int CRC;
    
    public FBS9100S_QHZZ_FZCD_State() {
        posState = new int[FBS9100_ComBase.BattGroupCountMax];
        negState = new int[FBS9100_ComBase.BattGroupCountMax];
        this.posState = new int[FBS9100_ComBase.BattGroupCountMax];
        this.negState = new int[FBS9100_ComBase.BattGroupCountMax];
    }
    
    public boolean putByteBuffer(final ByteBuffer bf)
@@ -32,16 +33,36 @@
        }        
        tmpbuf.position(0);
        for(int i=0;i<posState.length;i++) {
            posState[i] = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort());
            this.posState[i] = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort());
        }
        for(int i=0;i<negState.length;i++) {
            negState[i] = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort());
            this.negState[i] = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort());
        }        
        CRC = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort());
        //System.out.println("posState:"+Arrays.toString(posState)+"negState"+Arrays.toString(negState));
        tmpbuf.compact();
        tmpbuf.flip();
        
        return true;
    }
    public String getPosStateStr() {
        //System.out.println(String.format("%d,%d,%d,%d", this.posState[0],this.posState[1],this.posState[2],this.posState[3]));
        return String.format("%d,%d,%d,%d", this.posState[0],this.posState[1],this.posState[2],this.posState[3]);
    }
    public String getNegStateStr() {
        //System.out.println(String.format("%d,%d,%d,%d", this.negState[0],this.negState[1],this.negState[2],this.negState[3]));
        return String.format("%d,%d,%d,%d", this.negState[0],this.negState[1],this.negState[2],this.negState[3]);
    }
//    public static void main(String[] args) {
//        FBS9100S_QHZZ_FZCD_State state = new FBS9100S_QHZZ_FZCD_State();
//        state.posState[2] = 1;
//        state.posState[1] = 3;
//        System.out.println(String.format("%d,%d,%d,%d", state.posState[0],state.posState[1],state.posState[2],state.posState[3]));
//
//
//    }
}
BattMonitor_FBS9100S_Inverter/src/com/dev/btse/data/FBS9100S_TmpHumSensor.java
@@ -35,7 +35,7 @@
            sdValue[i] = (float)FBS9100_ComBase.changeShortToInt(tmpbuf.getShort())/10;
        }
        
        System.err.println("读取温湿度信息成功");
        //System.err.println("读取温湿度信息成功");
        tmpbuf.compact();
        tmpbuf.flip();
        return true;
BattMonitor_FBS9100S_Inverter/src/com/dev/btse/data/FBS9100_ComBase.java
@@ -305,7 +305,7 @@
    public static short changeDoubleToShort(double data)
    {
        int tmp = (int)data;
        System.out.println("tmp:"+tmp);
        //System.out.println("tmp:"+tmp);
        return (short)(tmp & 0xFFFF);
    }
    public static short changeFloatToShort(float data)
BattMonitor_FBS9100S_Inverter/src/com/dev/btse/data/FBS9100_DeviceInf.java
@@ -105,7 +105,7 @@
        bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(CRC));
        
        bytebuffer.flip();
        System.out.println(bytebuffer.limit());
        //System.out.println(bytebuffer.limit());
        return bytebuffer;
    }
    
BattMonitor_FBS9100S_Inverter/src/com/version_inf/version_inf.txt
@@ -1,3 +1,6 @@
V10.646 edit at date 2022-03-19 lijun
    1.逆变有母联设备新增切换箱接触器正负极开关状态读取
V10.645 edit at date 2022-03-03 lijun
    1.修复远程升级BTS只能远程升级加密版本BTSbug
    2.平台可以通过版本号区分当前BTS是否为加密协议版本BTS
BattMonitor_FBS9100S_Inverter/src/main/main_MonitorServer_FBS9100S.java
@@ -29,7 +29,7 @@
    /**************************************************************************/
    /**************************************************************************/
    public final static boolean app_debug = false;
    public final static double m_VersionNum = 10.645;
    public final static double m_VersionNum = 10.646;
    public final static String m_Version = "Welcome To Use BattMonitorFBS9100S V" 
                                            + m_VersionNum + " RC_20201110";
    /**************************************************************************/