From 2435b0e0b0118f02c0f677d805eae1deb346460a Mon Sep 17 00:00:00 2001
From: Administrator <1525436766@qq.com>
Date: 星期五, 27 八月 2021 14:54:42 +0800
Subject: [PATCH] 充放电数据修改

---
 BattMonitor_FGCD-A059NT/src/com/dev/fgcd/comm/FGCD_SocketClient_Thread.java |   53 +++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 45 insertions(+), 8 deletions(-)

diff --git a/BattMonitor_FGCD-A059NT/src/com/dev/fgcd/comm/FGCD_SocketClient_Thread.java b/BattMonitor_FGCD-A059NT/src/com/dev/fgcd/comm/FGCD_SocketClient_Thread.java
index cb89c4a..fb5eeb5 100644
--- a/BattMonitor_FGCD-A059NT/src/com/dev/fgcd/comm/FGCD_SocketClient_Thread.java
+++ b/BattMonitor_FGCD-A059NT/src/com/dev/fgcd/comm/FGCD_SocketClient_Thread.java
@@ -69,7 +69,10 @@
     private boolean readMonData = false;		//是否立即读取单体数据  记录历史数据时立即读取单体数据
     private boolean readCharData = false;		//是否立即读取放电数据  记录历史数据时立即读取放电数据
     
+    private int readMonData_lock = 1;			//单体数据返回
+    private int readCharData_lock = 1;			//充放电数据返回
     
+    private int sendlock_state = 1;				//发送数据返回
     
     public FGCD_SocketClient_Thread(MysqlConnPool m_ConnPool,BattData_RT_Array m_Data,Socket socket){
         this.socket = socket;
@@ -280,21 +283,26 @@
 					}else if(FGCD_ComBase.CMD_DownLoadFBDFile == fboFile.op_cmd) {
 						//开始下载文件
 						FGCD_TestDataDownLoad download = new FGCD_TestDataDownLoad(fboFile, socket,m_ConnPool);
-						fboFile.initDownLoadState();
 						FGCD_SocketClient_Thread_SQL.updateFgcd_Filedownload_TableCmdByDevId(m_ConnPool, fboFile);
 						download.downLoadTestData();
 					}					
 				}
-				if(DevReadCount %10 == 0) {
+				if(DevReadCount %10 == 0 || readMonData) {
 					//logger.info("获取单体数据");
 					FGCD_Cmd tmp_cmd = new FGCD_Cmd(FGCD_ComBase.CMD_GETBATTDATA);
+					tmp_cmd.Db3 = sendlock_state;
 					SocketComm(tmp_cmd, ByteBuffer.allocate(0));
 					tmp_cmd = null;
+					readMonData = false;
 				}
 				
-				if(DevReadCount %12 == 0) {
+				if(DevReadCount %12 == 0 || readCharData) {
 					//logger.info("获取放电数据");
-					SocketComm(FGCD_ComBase.CMD_GETDISCHARGEDATA, ByteBuffer.allocate(0));
+					FGCD_Cmd tmp_cmd = new FGCD_Cmd(FGCD_ComBase.CMD_GETDISCHARGEDATA);
+					tmp_cmd.Db1 = sendlock_state;
+					SocketComm(tmp_cmd, ByteBuffer.allocate(0));
+					tmp_cmd = null;
+					readCharData = false;
 				}
 				
 				DevReadCount++;
@@ -722,6 +730,19 @@
             else if(FGCD_ComBase.CMD_GETBATTDATA == m_FBS_Cmd.CMD) {
                 //System.out.println("获取单体数据");
                 if(vc_data.putByteBuffer(bf, m_FBS_Cmd.ByteLen-m_FBS_Cmd.BYTE_LEN)) {
+                	readMonData_lock = m_FBS_Cmd.Db3;
+                	System.out.println("单体数据返回:"+readMonData_lock);
+                	if(m_FBS_Cmd.Db3 == 2) {
+                		if(m_FBS_Cmd.Db3 == readCharData_lock) {
+                			sendlock_state = 2;                			
+                		}else {
+                			readCharData = true;
+                		}
+                	}else if(m_FBS_Cmd.Db3 == 0){
+                		sendlock_state = 1;
+                	}else{
+                		sendlock_state = 1;
+                	}
                     //System.out.println("获取单体数据成功");
                 	getFBS9100MonVolData(vc_data, sysState);
                     isSuccess = true;
@@ -730,6 +751,7 @@
             //---------------------  获取放电参数    ----------------------------------------------
             else if(FGCD_ComBase.CMD_GETDISCHARGEPARAM == m_FBS_Cmd.CMD) {
                 if(testParam.putByteBuffer(bf)) {
+                	
                 	m_StatAndParam.op_cmd_ack = FGCD_ComBase.CMD_GetDischargeParmAck;
                 	FGCD_SocketClient_Thread_SQL.updateFbs9100SetParamBydev_id(m_ConnPool, m_StatAndParam, testParam);
                     isSuccess = true;
@@ -781,6 +803,16 @@
             //---------------------  获取放电数据    ----------------------------------
             else if(FGCD_ComBase.CMD_GETDISCHARGEDATA == m_FBS_Cmd.CMD) {
                 if(sysState.putByteBuffer(bf)) {
+                	readCharData_lock = m_FBS_Cmd.Db1;
+                	System.out.println("放电数据返回:"+readCharData_lock);
+                	if(m_FBS_Cmd.Db1 == 2) {
+                		if(m_FBS_Cmd.Db1 == readMonData_lock) {
+                			sendlock_state = 2;                			
+                		}else {
+                			readMonData = true;
+                		}
+                	}               	
+
                 	//读取当前设备的停止原因和当前工作状态
                     sysState.dev_captest_stop_type = m_FBS_Cmd.Alarm;
                     sysState.dev_workstate = m_FBS_Cmd.WorkState;
@@ -898,6 +930,7 @@
             		//读取文件列表成功
             		fboFile.op_cmd = FGCD_ComBase.CMD_ReadFBDFile_ACK;
             		System.out.println("读取文件列表成功");
+            		fboFile.cleatState();
             		FGCD_SocketClient_Thread_SQL.updateTb_Fgcd_Filedownload_Table(m_ConnPool, fboFile);
             		isSuccess = true;
             	}
@@ -930,20 +963,22 @@
     			}
     			int now_test_type = FGCD_ComBase.TestType_NULL;
     			//记录停止原因时数据处理
-    			if(sys_state.dev_captest_stop_type > 0x80) {
+    			if(sys_state.dev_captest_stop_type >= 0x80) {
+    				
     				m_RTData[n].mTestData.test_stoptype = sys_state.dev_captest_stop_type - 0x80;		//更新当前的停止原因    				
     			}else {
     				m_RTData[n].mTestData.test_stoptype = sys_state.dev_captest_stop_type;
     			}
+    			System.out.println("停止原因:"+m_RTData[n].mTestData.test_stoptype);
     			int now_dev_workstate = 0;
     			if(FGCD_ComBase.WORK_STATE_DISTEST == sys_state.dev_workstate ||
     				(FGCD_ComBase.WORK_STATE_STOPDIS == sys_state.dev_workstate)){
-    				vc_data.battcurr[n] = (-1)*Math.abs(vc_data.battcurr[n]);
+    				//vc_data.battcurr[n] = (-1)*Math.abs(vc_data.battcurr[n]);
     				//System.out.println("vc_data.battcurr[n]:"+vc_data.battcurr[n]);
     				now_test_type = FGCD_ComBase.TestType_CAP;
     			}else if(FGCD_ComBase.WORK_STATE_CHARTEST == sys_state.dev_workstate ||
     					FGCD_ComBase.WORK_STATE_STOPCHAR == sys_state.dev_workstate	){
-    				vc_data.battcurr[n] = Math.abs(vc_data.battcurr[n]);
+    				//vc_data.battcurr[n] = Math.abs(vc_data.battcurr[n]);
     				//System.out.println("vc_data.battcurr[n]:"+vc_data.battcurr[n]);
     				now_test_type = FGCD_ComBase.TestType_Charge;
     			}
@@ -983,5 +1018,7 @@
     		}
     	}
     }
-
+	public static void main(String[] args) {
+		System.out.println(0x80);
+	}
 }

--
Gitblit v1.9.1