From d00561cf482b443a1cec9d8bbbe40750b2edfc45 Mon Sep 17 00:00:00 2001
From: Administrator <1525436766@qq.com>
Date: 星期二, 18 一月 2022 17:06:51 +0800
Subject: [PATCH] V1.106 2022-01-18 	1. 新增设备版本号读取以及存取 	2. 新增设备电池组切换功能 	3. 新增内窥镜自动拍照功能

---
 BattMonitor_FGCD-A059NT/src/com/dev/fgcd/comm/FGCD_SocketClient_Thread.java |   98 ++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 84 insertions(+), 14 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 a21192f..d55b044 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
@@ -1,12 +1,11 @@
 package com.dev.fgcd.comm;
 
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
-import java.net.InetSocketAddress;
 import java.net.Socket;
-import java.net.SocketAddress;
 import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
 import java.util.Date;
@@ -15,23 +14,17 @@
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
-import com.battmonitor.base.Com;
 import com.battmonitor.data.BattData_RT;
 import com.battmonitor.data.BattData_RT_Array;
 import com.battmonitor.data.BattData_RT_SQL;
 import com.battmonitor.sql.MysqlConnPool;
-import com.dev.btse.comm.FBS9100S_SocketClient2;
-import com.dev.btse.comm.FBS9100_Task_Thread_SQL;
 import com.dev.btse.data.ComFn;
-import com.dev.btse.data.Ecb_Aes;
 import com.dev.btse.data.FBS9100_ComBase;
-import com.dev.btse.data.FBS9100_ParamDischarge;
-import com.dev.btse.data.FBS9100_SysState;
-import com.dev.btse.data.FBS9100_VCData;
 import com.dev.fgcd.data.FGCD_BattTestParam;
 import com.dev.fgcd.data.FGCD_Cmd;
 import com.dev.fgcd.data.FGCD_ComBase;
 import com.dev.fgcd.data.FGCD_ComBuf;
+import com.dev.fgcd.data.FGCD_OnlineInfo;
 import com.dev.fgcd.data.FGCD_StateAndParam;
 import com.dev.fgcd.data.FGCD_SysState;
 import com.dev.fgcd.data.FGCD_TestFBOFile;
@@ -47,6 +40,7 @@
     
     private FGCD_BattTestParam testParam;           //电池测试参数
     private FGCD_SysState sysState;             	//系统状态
+    private FGCD_OnlineInfo onlineInfo;            	//在线模块状态
     private FGCD_Cmd m_FBS_Cmd = new FGCD_Cmd();
     public FGCD_TestFBOFile fboFile;				//历史数据文件
 
@@ -83,6 +77,7 @@
         testParam = new FGCD_BattTestParam();
         m_StatAndParam = new FGCD_StateAndParam();
         sysState = m_StatAndParam.getSysState();
+        onlineInfo = m_StatAndParam.getOnlineInfo();
         vc_data = new FGCD_VCData();
         logger = LogManager.getLogger(this);
     }
@@ -195,8 +190,7 @@
 	    	if(m_BattMonCount > (FGCD_ComBase.MonomerCountMax-120)) {
 	    		m_BattMonCount = (FGCD_ComBase.MonomerCountMax-120);
 	    	}
-	    	logger.warn("DevId: " + m_StatAndParam.dev_id + ", DevVer: " + m_StatAndParam.m_DevVersion
-							+ " - FBS9100S_SocketServer Thread Started");
+	    	logger.warn("DevId: " + m_StatAndParam.dev_id + " - FBS9100S_SocketClient Thread Started");
     	}
         while(FGCD_Thread_Mark) {        	
         	try {
@@ -264,6 +258,21 @@
 						SocketComm(FGCD_ComBase.CMD_PAUSEHHTEST, ByteBuffer.allocate(0));
 					}
 					
+					
+					if(FGCD_ComBase.CMD_SetNowBatt == m_StatAndParam.op_cmd) {
+						FGCD_BattTestParam tmp_set_pm = testParam.clone();
+						FGCD_SocketClient_Thread_SQL.queryFbs9100SetParamBydev_id(m_ConnPool, m_StatAndParam, tmp_set_pm);
+						logger.debug("dev_id:"+m_StatAndParam.dev_id+"\t切换电池组号:" + tmp_set_pm.groupCount);
+						//设置电池组号
+						SocketComm(FGCD_ComBase.CMD_SETNOWWORKBATT, tmp_set_pm.groupCount);
+						tmp_set_pm = null;
+					}else if(FGCD_ComBase.CMD_StartShowPic == m_StatAndParam.op_cmd) {
+						//开始显示图片
+						SocketComm(FGCD_ComBase.CMD_STARTSHOWPIC, 1);						
+					}else if(FGCD_ComBase.CMD_StopShowPic == m_StatAndParam.op_cmd) {
+						//停止显示图片
+						SocketComm(FGCD_ComBase.CMD_STARTSHOWPIC, 0);
+					}
 				}
 				/************************    清除告警      *****************************************************/
 				{					
@@ -310,8 +319,24 @@
 					readCharData = false;
 				}
 				
+				if(DevReadCount % 50 == 0) {
+					//15s读取一次版本信息
+					//logger.info("获取设备版本号");
+					FGCD_Cmd tmp_cmd = new FGCD_Cmd(FGCD_ComBase.CMD_READDEVICEVERSION);
+					SocketComm(tmp_cmd, ByteBuffer.allocate(0));
+					tmp_cmd = null;
+				}
+				
+				if(DevReadCount % 13 == 0) {
+					//
+					logger.info("获取在线模块状态");
+					FGCD_Cmd tmp_cmd = new FGCD_Cmd(FGCD_ComBase.CMD_READONLINEMODEINFO);
+					SocketComm(tmp_cmd, ByteBuffer.allocate(0));
+					tmp_cmd = null;
+				}
+				
 				DevReadCount++;
-				if(DevReadCount >= 100) {
+				if(DevReadCount >= 2400) {
 					DevReadCount = 0;
 				}
 			} catch (Exception e) {
@@ -930,9 +955,48 @@
             	if(fboFile.putByteBuffer(bf,m_FBS_Cmd.Db2)) {
             		//读取文件列表成功
             		fboFile.op_cmd = FGCD_ComBase.CMD_ReadFBDFile_ACK;
-            		System.out.println("读取文件列表成功");
+            		logger.debug("dev_id:"+m_StatAndParam.dev_id+"读取文件列表成功");
             		FGCD_SocketClient_Thread_SQL.updateTb_Fgcd_Filedownload_Table(m_ConnPool, fboFile);
             		isSuccess = true;
+            	}
+            }else if(FGCD_ComBase.CMD_READDEVICEVERSION == m_FBS_Cmd.CMD) {
+            	if(bf.limit() >0) {
+            		byte[] ver = new byte[bf.limit()];
+            		bf.get(ver);
+            		//System.err.println(ComFn.bytesToHexString(ver, ver.length));
+            		try {
+						m_StatAndParam.m_DevVersion = new String(ver, "utf-8");
+						logger.debug("dev_id:"+m_StatAndParam.dev_id+"\t读取设备版本号成功:"+m_StatAndParam.m_DevVersion);
+						isSuccess = true;
+					} catch (UnsupportedEncodingException e) {
+						e.printStackTrace();
+					}
+            	}
+            }else if(FGCD_ComBase.CMD_READONLINEMODEINFO == m_FBS_Cmd.CMD) {
+            	if(onlineInfo.putByteBuffer(bf)) {
+            		logger.debug("dev_id:"+m_StatAndParam.dev_id+"\t 读取在线模块信息成功"+onlineInfo);
+            		isSuccess = true;
+            	}
+            }else if(FGCD_ComBase.CMD_SETNOWWORKBATT == m_FBS_Cmd.CMD) {
+            	if(FGCD_ComBase.RETURN_SUCCESS == m_FBS_Cmd.RecState) {
+            		m_StatAndParam.op_cmd_ack = FGCD_ComBase.CMD_SetNowBatt_ACK;
+                	FGCD_SocketClient_Thread_SQL.updateFbs9100SetParamCmdAckBydev_id(m_ConnPool,m_StatAndParam);
+                    isSuccess = true;
+                    logger.debug("dev_id:"+m_StatAndParam.dev_id+"\t 设置电池组号" + testParam.groupCount + "成功");
+            	}
+            }else if(FGCD_ComBase.CMD_STARTSHOWPIC == m_FBS_Cmd.CMD) {
+            	if(FGCD_ComBase.RETURN_SUCCESS == m_FBS_Cmd.RecState) {
+            		if(FGCD_ComBase.CMD_StartShowPic == m_StatAndParam.op_cmd) {
+            			m_StatAndParam.op_cmd_ack = FGCD_ComBase.CMD_StartShowPic_ACK;            			
+            			logger.debug("dev_id:"+m_StatAndParam.dev_id+"\t 开始显示内窥镜成功·");
+            		} else if(FGCD_ComBase.CMD_StopShowPic == m_StatAndParam.op_cmd){
+            			m_StatAndParam.op_cmd_ack = FGCD_ComBase.CMD_StopShowPic_ACK;
+            			logger.debug("dev_id:"+m_StatAndParam.dev_id+"\t 停止显示内窥镜成功·");
+            		} else {
+            			m_StatAndParam.op_cmd_ack = FGCD_ComBase.CMD_NULL;
+            		}           		
+                	FGCD_SocketClient_Thread_SQL.updateFbs9100SetParamCmdAckBydev_id(m_ConnPool,m_StatAndParam);
+                    isSuccess = true;
             	}
             }
         }
@@ -1020,6 +1084,12 @@
     	}
     }
 	public static void main(String[] args) {
-		System.out.println(0x80);
+		byte[] b = new byte[]{0x46 ,0x47, 0x43 ,0x44,0x2D ,0x41 ,0x30 ,0x35 ,0x39 ,0x58 ,0x54 ,0x20 ,0x50 ,0x72 ,0x6F ,0x2C ,0x56 ,0x31 ,0x2E ,0x38 ,0x2E ,0x30 ,0x2E ,0x38 ,0x2C ,0x31 ,0x3A ,0x49 ,0x44 ,0x43 ,0x45 ,0x2D ,0x50 ,0x72 ,0x6F ,0x2D ,0x38 ,0x4B ,0x57 ,0x2D ,0x56 ,0x33 ,0x2E ,0x30 ,0x31 ,0x2E ,0x31 ,0x39 ,0x20 };
+		try {
+			System.out.println(new String(b,"utf-8"));
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+	
 	}
 }

--
Gitblit v1.9.1