From 0abbcf35eaf96779789d39af203a6381eccef2b7 Mon Sep 17 00:00:00 2001
From: DELL <1525436766@qq.com>
Date: 星期二, 22 四月 2025 10:18:32 +0800
Subject: [PATCH] V1.114 edit by lijun 2025-04-22 	1.新增定时开启以及关闭蓝牙功能。 	2.添加读取锁具已授权ID卡信息功能。

---
 ElectLock_Monitor/src/com/dev/lock/comm/Lock_SocketClient_Thread.java |   66 +++++++++++++++++++++++++++++++-
 1 files changed, 63 insertions(+), 3 deletions(-)

diff --git a/ElectLock_Monitor/src/com/dev/lock/comm/Lock_SocketClient_Thread.java b/ElectLock_Monitor/src/com/dev/lock/comm/Lock_SocketClient_Thread.java
index 4e6daa4..510418b 100644
--- a/ElectLock_Monitor/src/com/dev/lock/comm/Lock_SocketClient_Thread.java
+++ b/ElectLock_Monitor/src/com/dev/lock/comm/Lock_SocketClient_Thread.java
@@ -18,6 +18,7 @@
 import com.config.AppConfig;
 import com.dev.lock.data.ElectLock_Array;
 import com.dev.lock.data.ElectLock_AuthIdcard;
+import com.dev.lock.data.ElectLock_Bl;
 import com.dev.lock.data.ElectLock_ComBase;
 import com.dev.lock.data.ElectLock_Inf;
 import com.dev.lock.data.ElectLock_State;
@@ -54,6 +55,8 @@
 	private int NowLockIdx = 0;		//褰撳墠璇诲彇鐘舵�佺殑閿佸叿绱㈠紩
 	
 	private int ErrorCount = 0;		//杩炵画閿欒璁℃暟,杩炴帴閿欒璁℃暟
+	
+	private ElectLock_Bl bl = null;
 	
 	public Lock_SocketClient_Thread(MysqlConnPool pool,ElectLock_Array GB_Lock_Array ,AppConfig config,Socket tmp_socket) {
 		this.pool = pool;
@@ -163,7 +166,7 @@
 					}else if(mLock_param.getOp_cmd() == ElectLock_ComBase.CMD_OpenBluetooth) {
 						//寮�鍚摑鐗�
 						mRtu_Tx.mkBusRtu((mLock_param.getLockAddr()%255),MyModBusRtu.CMD_TYPE_WRITE_STD, ElectLock_ComBase.LOCK_SET_Bluetooth_ADDR, ElectLock_ComBase.RegCount_Sigle);
-						System.out.println("mLock_param.getId_card_set():"+mLock_param.getId_card_set());
+						//System.out.println("mLock_param.getId_card_set():"+mLock_param.getId_card_set());
 						if(SocketComm(mRtu_Tx, ComBase.mkUInt16Buffer(ElectLock_ComBase.Lock_Bluetooth_Open))) {
 							mLock_param.setOp_cmd(ElectLock_ComBase.CMD_OpenBluetooth_Ack);
 							//tmp_log = new ElectLock_Ctl_Log(mLock_param.getLock_id(), ElectLock_ComBase.CtlType_BluetoothOpen, true,0,mLock_param.getCtl_uname());
@@ -192,7 +195,7 @@
 				}
 				
 				
-				if((runCount%(16/MaxLockCount)) == 0) {
+				if((runCount%(17/MaxLockCount)) == 1) {
 					//璇诲彇閿佸叿鐨勫疄鏃剁姸鎬�
 					mRtu_Tx.mkBusRtu((mLock_State[NowLockIdx].getLockAddr()%255),MyModBusRtu.CMD_TYPE_READ_INPUT, ElectLock_ComBase.LOCK_REAL_ADDR, ElectLock_State.Reg_Count_Real);
 					if(SocketComm(mRtu_Tx, ByteBuffer.allocate(0))) {
@@ -230,6 +233,48 @@
 									Thread.sleep(1000);
 								}
 							}
+						}
+					}
+					
+					//鏌ヨ褰撳墠钃濈墮寮�鍚鍒�
+					bl = Lock_Task_SQL.queryBluetoothOpenPlan(pool, ele_lock[NowLockIdx].getLock_id());
+					if(null != bl) {
+						//鏈夊惎鐢ㄧ殑璁″垝锛屽畾鏃跺紑鍚摑鐗�
+						if(mLock_State[NowLockIdx].getBluetooth_state() == ElectLock_ComBase.Lock_Bluetooth_Close) {
+							mRtu_Tx.mkBusRtu((mLock_State[NowLockIdx].getLockAddr()%255),MyModBusRtu.CMD_TYPE_WRITE_STD, ElectLock_ComBase.LOCK_SET_Bluetooth_ADDR, ElectLock_ComBase.RegCount_Sigle);
+							//System.out.println("mLock_param.getId_card_set():"+mLock_param.getId_card_set());
+							if(SocketComm(mRtu_Tx, ComBase.mkUInt16Buffer(ElectLock_ComBase.Lock_Bluetooth_Open))){
+								logger.info("瀹氭椂寮�鍚摑鐗欐垚鍔�");
+							}else {
+								logger.info("瀹氭椂寮�鍚摑鐗欏け璐�");
+							}
+						}
+						bl = null;
+					}
+					//鏌ヨ褰撳墠钃濈墮鍏抽棴璁″垝
+					bl = Lock_Task_SQL.queryBluetoothClosePlan(pool, ele_lock[NowLockIdx].getLock_id());
+					if(null != bl) {
+						//鏈夊惎鐢ㄧ殑璁″垝锛屽畾鏃跺叧闂摑鐗�
+						if(mLock_State[NowLockIdx].getBluetooth_state() == ElectLock_ComBase.Lock_Bluetooth_Open) {
+							mRtu_Tx.mkBusRtu((mLock_State[NowLockIdx].getLockAddr()%255),MyModBusRtu.CMD_TYPE_WRITE_STD, ElectLock_ComBase.LOCK_SET_Bluetooth_ADDR, ElectLock_ComBase.RegCount_Sigle);
+							//System.out.println("mLock_param.getId_card_set():"+mLock_param.getId_card_set());
+							if(SocketComm(mRtu_Tx, ComBase.mkUInt16Buffer(ElectLock_ComBase.Lock_Bluetooth_Close))){
+								logger.info("瀹氭椂鍏抽棴钃濈墮鎴愬姛");
+							}else {
+								logger.info("瀹氭椂鍏抽棴钃濈墮澶辫触");
+							}
+						}
+						bl = null;
+					}
+					
+					
+					int cnt = mLock_State[NowLockIdx].getReadCount()%4;
+					if(cnt == 0 || cnt == 1) {
+						logger.error(mLock_State[NowLockIdx].getLock_id() + " ReadIDCardCount " + cnt);
+						mRtu_Tx.mkBusRtu((mLock_State[NowLockIdx].getLockAddr()%255),MyModBusRtu.CMD_TYPE_READ_INPUT, (ElectLock_ComBase.LOCK_IDCard1_ADDR + cnt*50), ElectLock_State.Reg_Count_Card);
+						if(SocketComm(mRtu_Tx, ByteBuffer.allocate(0))) {
+							//鏇存柊褰撳墠閿佸叿鐨処D鍗�
+							Lock_Task_SQL.updateLock_IdCard_Table(pool, mLock_State[NowLockIdx]);
 						}
 					}
 					
@@ -486,7 +531,7 @@
         	this.mLock_State[NowLockIdx].addErrorCount();
         	addErrorCount();
         } finally {
-        	if(getErrorCount() > 6) {
+        	if(getErrorCount() > 10) {
         		logger.info("璁惧锛欴evIp:" + client_ip + " DevId:" + client_id/10000 + "XXXX 閫氫俊瓒呮椂鍗冲皢鏂紑杩炴帴...");
         		S_thread_run_flag = false;
         	}
@@ -507,6 +552,16 @@
 			if(ElectLock_ComBase.LOCK_REAL_ADDR == rtu.reg_addr) {
 				//璇诲彇瀹炴椂鏁版嵁
 				if(mLock_State[NowLockIdx].putByteBuffer(buff)) {
+					isSuccess = true;					
+				}
+			}else if(ElectLock_ComBase.LOCK_IDCard1_ADDR == rtu.reg_addr) {
+				//璇诲彇鍓�50涓狪D鍗″彿
+				if(mLock_State[NowLockIdx].putCardByteBuffer(buff,0)) {
+					isSuccess = true;					
+				}
+			}else if(ElectLock_ComBase.LOCK_IDCard2_ADDR == rtu.reg_addr) {
+				//璇诲彇鍚�50涓狪D鍗″彿
+				if(mLock_State[NowLockIdx].putCardByteBuffer(buff,50)) {
 					isSuccess = true;					
 				}
 			}
@@ -561,6 +616,11 @@
 						isSuccess = true;
 						logger.info("LockId:" + mLock_param.getLock_id() + " LockIp:"+client_ip + " 璁剧疆閿佸叿鍏抽棴钃濈墮鎴愬姛");
 					}
+				}else if(null != bl) {
+					if(mRtu_Rx.result == ElectLock_ComBase.Lock_Bluetooth_Close || mRtu_Rx.result == ElectLock_ComBase.Lock_Bluetooth_Open) {
+						isSuccess = true;
+						logger.info("LockId:" + mLock_param.getLock_id() + " LockIp:"+client_ip + " 璁剧疆閿佸叿鍏抽棴钃濈墮鎴愬姛");
+					}
 				}
 				
 				

--
Gitblit v1.9.1