From 55403be08a667464827010e92b3be7935d52edb1 Mon Sep 17 00:00:00 2001 From: Administrator <1525436766@qq.com> Date: 星期一, 20 六月 2022 17:16:26 +0800 Subject: [PATCH] 汇集器串联组压模块通信程序修改 --- BattMonitor_Concentrator/src/com/dev_concentrator/data/Concentrator_SocketThread.java | 44 +++++++++++++++++++++++++++++++++++++------- 1 files changed, 37 insertions(+), 7 deletions(-) diff --git a/BattMonitor_Concentrator/src/com/dev_concentrator/data/Concentrator_SocketThread.java b/BattMonitor_Concentrator/src/com/dev_concentrator/data/Concentrator_SocketThread.java index 0f955cb..6170819 100644 --- a/BattMonitor_Concentrator/src/com/dev_concentrator/data/Concentrator_SocketThread.java +++ b/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())); //---------------------------------------------------------------------------// //--------------------- 接着读取电流 -----------------------------------------// -- Gitblit v1.9.1