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,58 +118,64 @@
               }
               
               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) {
               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 < 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(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;
                     }
                     Concentrator_SocketThread_SQL.updateFBS9100SetParam_Table(pool, param);
                  //}
               }else if(param.op_cmd == Concentrator_ComBase.CMD_Stop) {
                  //停止内阻测试
                  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(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;
                  }
                  Concentrator_SocketThread_SQL.updateFBS9100SetParam_Table(pool, param);
               }else if(param.op_cmd == Concentrator_ComBase.CMD_ResetSystem) {
                  if(param.BattGroupNum >3) {
                     param.BattGroupNum = 0;
                  }                  
                  //启动内阻测试
                  m_CMD.makeCmd(0xFF, 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;
                  }
                  //系统重启
                  m_CMD.makeCmd(0xFF, Concentrator_ComBase.CMD_MODEBUS_WRITECMD, Concentrator_ComBase.CMD_MODEBUS_RESTARTSYS,1);
                  SocketComm(m_CMD, m_CMD.getControlByteBuffer(), socket);
                  param.op_cmd = Concentrator_ComBase.CMD_ResetSystemAck;
                  Concentrator_SocketThread_SQL.updateFBS9100SetParam_Table(pool, param);
               //}
            }else if(param.op_cmd == Concentrator_ComBase.CMD_Stop) {
               //停止内阻测试
               if(param.BattGroupNum >3) {
                  param.BattGroupNum = 0;
               }
               //停止内阻测试
               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;
               }
               Concentrator_SocketThread_SQL.updateFBS9100SetParam_Table(pool, param);
            }else if(param.op_cmd == Concentrator_ComBase.CMD_ResetSystem) {
               if(param.BattGroupNum >3) {
                  param.BattGroupNum = 0;
               }
               //系统重启
               m_CMD.makeCmd(0xFF, Concentrator_ComBase.CMD_MODEBUS_WRITECMD, Concentrator_ComBase.CMD_MODEBUS_RESTARTSYS,1);
               SocketComm(m_CMD, m_CMD.getControlByteBuffer(), socket);
               param.op_cmd = Concentrator_ComBase.CMD_ResetSystemAck;
               Concentrator_SocketThread_SQL.updateFBS9100SetParam_Table(pool, param);
            }
            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;
              }
              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();