| | |
| | | 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;
|
| | |
| | | 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);
|
| | |
|
| | |
| | | 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();
|
| | |
| | | }
|
| | | } 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;
|
| | | }
|
| | |
| | | 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) {
|
| | |
| | | // + " 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;
|
| | |
| | | //读取单体电压
|
| | | 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);
|
| | | }
|
| | |
| | | }
|
| | | //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));
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | 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()));
|
| | | //---------------------------------------------------------------------------//
|
| | |
|
| | | //--------------------- 接着读取电流 -----------------------------------------//
|