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"; /**************************************************************************/