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