Administrator
2022-06-20 55403be08a667464827010e92b3be7935d52edb1
BattMonitor_Concentrator/src/com/dev_concentrator/data/Concentrator_SocketThread.java
@@ -33,6 +33,8 @@
   private Concentrator_SetParam param;
   private Concentrator_Cmd m_CMD;
   
   public static final int GroupVolModel_Addr = 0x1F;
   public Concentrator_SocketThread(MysqlConnPool pool, Socket socket,BattData_RT_Array GB_DataArray) {
      this.pool = pool;
      this.socket = socket;
@@ -117,15 +119,24 @@
                  reg_count = 300;
               }
               
               Thread.sleep(100);
               /********************* 读取组压模块数据  *************************************/
               {
                  m_CMD.makeCmd(((i)+GroupVolModel_Addr), Concentrator_ComBase.CMD_MODEBUS_READCMD, Concentrator_ComBase.CMD_MODEBUS_GROUPVOL_INDEX, 1);
                  SocketComm(m_CMD, ByteBuffer.allocate(0), socket);
                  Thread.sleep(50);
               }
               //
               //System.out.println("BattGroupId:"+batt.BattGroupId);
               Thread.sleep(50);
               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);
               Thread.sleep(50);
               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);
               Thread.sleep(50);
               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);
               
@@ -228,6 +239,9 @@
                 cipher_tx_t = makeCommBuf(m_CMD, bf, false);
                 
              }
              if(m_CMD.RES_Index == Concentrator_ComBase.CMD_MODEBUS_GROUPVOL_INDEX){
                 //System.err.println("发送数据:"+ComFn.bytesToHexString(cipher_tx_t, cipher_tx_t.length));
              }
              //System.err.println("发送数据:"+ComFn.bytesToHexString(cipher_tx_t, cipher_tx_t.length));
            //=====================================================================//
              Date d1 = new Date();
@@ -247,7 +261,7 @@
                    }
                 } else { 
                    rx_read_time_out += 1;
                    if((bytebuffer_for_socket_RX.position()>=8) && (rx_read_time_out>50)){
                    if((bytebuffer_for_socket_RX.position()>=7) && (rx_read_time_out>50)){
                       res_t = true;
                       break;
                    }
@@ -280,6 +294,9 @@
              byte[] cipher_buf = new byte[bytebuffer_for_socket_RX.limit()];
            byte[] plain_buf = new byte[bytebuffer_for_socket_RX.limit()];
            bytebuffer_for_socket_RX.get(plain_buf);
            if(m_CMD.RES_Index == Concentrator_ComBase.CMD_MODEBUS_GROUPVOL_INDEX){
               //System.out.println("接收数据:"+ComFn.bytesToHexString(plain_buf, plain_buf.length));
              }
            //System.out.println("接收数据:"+ComFn.bytesToHexString(plain_buf, plain_buf.length));
            if(m_CMD.RES_Index == FBS9100_ComBase.CMD_ReadGPRSCSQ) {
               if(bytebuffer_for_socket_RX.limit() > 2) {
@@ -291,7 +308,7 @@
                  //               + " GPRS RF Level:" + m_StatAndParam.m_GPRS_CSQ);
               }
            } else {
               if((cipher_buf.length >= 8) && (true == getDataFromCommBuf(plain_buf))) {
               if((cipher_buf.length >= 7) && (true == getDataFromCommBuf(plain_buf))) {
                    
                    rx_errcount_for_live_of_thread = 0;
                    res_t = true;
@@ -357,8 +374,9 @@
                 //读取单体电压
                 Concentrator_ResCapData mondata = new Concentrator_ResCapData();
                 if(true == mondata.putByteBuffer(bf, FBS9100_ComBase.DataType_MonVol)) {
                    //System.out.println("读取电压成功");
                    //System.out.println("读取电压成功"+m_Con_Cmd.ADDR);
                    BattData_RT batt = dataArray.getItem(m_Con_Cmd.ADDR-1);
                    //System.out.println(batt);
                    if(null != batt) {                       
                       getConCentratorMonData(batt,mondata);
                    }                    
@@ -390,6 +408,17 @@
                    }
                    //getConCentratorMonData(dataArray.getItem(0),mondata);
                    isSuccess = true;
                 }
              }else if(Concentrator_ComBase.CMD_MODEBUS_GROUPVOL_INDEX == m_Con_Cmd.RES_Index) {
                 float group = (float)m_Con_Cmd.Result_val/10;
                 int index = m_Con_Cmd.ADDR - GroupVolModel_Addr;
                 if(index >= 0 && index < dataArray.getItemCount()) {
                    BattData_RT batt = dataArray.getItem(index);
                    if(null != batt) {
                       //System.out.println("电池组:"+(index+1)+";组压:"+group);
                       batt.mTestData.updateGroupVolFrom_FBSDev((float)(group));
                    }
                 }
                 
              }
@@ -466,7 +495,8 @@
            battData.mTestData.battState = BattStatData.BATTSTATE_CHARGE;
            battData.mTestData.dev_FBS9100S_WorkState = FBS9100_ComBase.SYS_STATE_CHARGING;
         }
         battData.mTestData.updateGroupVolFrom_FBSDev((float)(battstate.getGroupvol()));
         //有单独读取组压模块数据时不需要在此设置
         //battData.mTestData.updateGroupVolFrom_FBSDev((float)(battstate.getGroupvol()));
         //---------------------------------------------------------------------------//
         
         //--------------------- 接着读取电流 -----------------------------------------//