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