From eb746715527db9b42740db84bb576735185e21cd Mon Sep 17 00:00:00 2001 From: DELL <1525436766@qq.com> Date: 星期一, 28 四月 2025 15:30:27 +0800 Subject: [PATCH] 11111 --- ElectLock_Monitor/src/com/dev/lock/data/ElectLock_State.java | 244 +++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 236 insertions(+), 8 deletions(-) diff --git a/ElectLock_Monitor/src/com/dev/lock/data/ElectLock_State.java b/ElectLock_Monitor/src/com/dev/lock/data/ElectLock_State.java index 179c764..9e2c0e5 100644 --- a/ElectLock_Monitor/src/com/dev/lock/data/ElectLock_State.java +++ b/ElectLock_Monitor/src/com/dev/lock/data/ElectLock_State.java @@ -7,9 +7,23 @@ import com.base.ComBase; public class ElectLock_State { - public static int Reg_Count_Real = 8; //瀵勫瓨鍣ㄦ暟閲� + public static final int Unlock_Type_485 = 0; //485 + public static final int Unlock_Type_ID = 1; //ID鍗� + public static final int Unlock_Type_Bluetooth = 2; //钃濈墮 + public static final int Unlock_Type_DI = 3; //DI - private Date record_time; //'鏇存柊鏃堕棿', + +// public static int Reg_Count_Real = 8; //瀵勫瓨鍣ㄦ暟閲� +// public static int Reg_Count_Real = 11; //瀵勫瓨鍣ㄦ暟閲� +// public static int Reg_Count_Real = 12; //瀵勫瓨鍣ㄦ暟閲� + public static int Reg_Count_Real = 14; //瀵勫瓨鍣ㄦ暟閲� + + + public static int Reg_Count_Card = 100; //璇诲彇宸叉巿鏉冪數姹犲崱瀵勫瓨鍣ㄦ暟閲� + + + private int lock_id; //閿佸叿ID[褰撳墠闇�瑕佹搷浣滅殑閿佸叿ID鍙穄 + private Date record_time = new Date(0); //'鏇存柊鏃堕棿', private String gprs_sn; //'gprs妯″潡SN鐮�', private String client_ip; //'璁惧IP鍦板潃', private int already_id_count; //'褰撳墠閿佸凡鎺堟潈鍗℃暟閲�', @@ -23,8 +37,30 @@ private int err_tol_count; //'鎬婚敊璇鏁�', private int err_count; //'杩炵画閿欒璁℃暟', private int op_cmd; //'鎺у埗鍛戒护', - private int id_card_set; //'鎺堟潈ID鍗″彿', + private long id_card_set; //'鎺堟潈ID鍗″彿', private int lock_addr_set; //'璁剧疆璁惧鍦板潃[鎱庣敤]', + private int workmodel; //宸ヤ綔妯″紡銆�0-绂荤嚎妯″紡 1-鍦ㄧ嚎妯″紡銆� + + private int lock_online; //閿佸叿鍦ㄧ嚎鐘舵�乕0-绂荤嚎 1-鍦ㄧ嚎] + + private boolean isIDOpen = false; //鏄惁鏄疘D寮�閿� + private int last_unlock_type; //'涓婁竴娆″紑閿佹柟寮廩0-485寮�閿� 1-鍒峰崱寮�閿� 2-钃濈墮寮�閿� 3-DI寮�閿乚', + private int last_unlock_id; //'涓婁竴娆″埛寮�寮�閿佸崱鍙穂浠呭埛寮�寮�閿佹椂鏈夋晥]', + + private int[] mac_addr = new int[6]; //閿佸叿钃濈墮MAC鍦板潃 + + private String ctl_uname = ""; //鎿嶄綔鐢ㄦ埛鍚� + + private int bluetooth_st_state; //钃濈墮寮�鍏筹細0-鍏抽棴钃濈墮 1-寮�鍚摑鐗� + private int bluetooth_state; //钃濈墮鐘舵�侊細0锛氳摑鐗欏凡鍏抽棴锛�1锛氳摑鐗欏凡寮�鍚� + + + private int lock_open_count; //'閿佸叿鎬诲紑鍚鏁�' + private Date last_update_time = new Date(0); //涓婁竴娆¢攣鍏峰紑鍚垨鍏抽棴鏃堕棿 + + private long[] id_cards = new long[ElectLock_ComBase.Lock_MaxCardCount]; + + private int readCount = 0; //璇诲彇鏁版嵁娆℃暟锛岀敤浜庤鍙栧凡鎺堟潈鍗″彿 public ElectLock_State() { @@ -42,17 +78,118 @@ this.already_id_count = ComBase.changeShortToInt(buffer.getShort()); //'褰撳墠閿佸凡鎺堟潈鍗℃暟閲�', this.max_id_count = ComBase.changeShortToInt(buffer.getShort()); //'鎺堟潈鍗℃暟閲忓瓨鍌ㄤ笂闄�', + int tmp_lock_state = lock_state; this.lock_state = ComBase.changeShortToInt(buffer.getShort()); //'鐢靛瓙閿佺姸鎬乕0-鍏� 1-寮�]', int ver = ComBase.changeShortToInt(buffer.getShort()); this.lock_version = " V"+ ver; //'杞欢鐗堟湰鍙�', + + this.unlock_type = ComBase.changeShortToInt(buffer.getShort()); //'涓婁竴娆″紑閿佹柟寮廩0-485寮�閿� 1-鍒峰崱寮�閿� 2-钃濈墮寮�閿� 3-DI寮�閿乚', - this.unlock_id = (buffer.getInt()&0xFFFFFFFF); //'涓婁竴娆″埛寮�寮�閿佸崱鍙穂浠呭埛寮�寮�閿佹椂鏈夋晥]', + this.unlock_id = (buffer.getInt()&0xFFFFFFFF); //'涓婁竴娆″埛寮�寮�閿佸崱鍙穂浠呭埛寮�寮�閿佹椂鏈夋晥]', this.lock_addr = ComBase.changeShortToInt(buffer.getShort()); //'璁惧鍦板潃', - //System.out.println(this); + for(int k =0;k<mac_addr.length;k++) { + mac_addr[k] = ComBase.changeByteToInt(buffer.get()); + } + workmodel = ComBase.changeShortToInt(buffer.getShort()); + bluetooth_st_state = ComBase.changeShortToInt(buffer.getShort()); + bluetooth_state = ComBase.changeShortToInt(buffer.getShort()); + +// System.out.println("宸ヤ綔妯″紡锛�" + workmodel); +// System.out.println("BlutoothMAC:" + getLockMacAddr()); +// System.out.println("bluetooth_st_state:" + getBluetooth_st_state()); +// System.out.println("bluetooth_state:" + getBluetooth_state()); +// System.out.println("BlutoothMAC:" + getLockMacAddr()); + + //System.out.println("this.lock_state:"+tmp_lock_state+"********lock_state:"+lock_state); + if(this.lock_state != tmp_lock_state) { + if(this.lock_state == 1) { + //閿佸叿鐘舵�佸彉鍖�;閿佷粠鍏抽棴鍙樹负鎵撳紑 + if(this.unlock_type == Unlock_Type_ID) { + //ID鏈�杩慖D鍗″紑閿� + isIDOpen = true; + last_unlock_type = unlock_type; //'涓婁竴娆″紑閿佹柟寮廩0-485寮�閿� 1-鍒峰崱寮�閿� 2-钃濈墮寮�閿� 3-DI寮�閿乚', + last_unlock_id = unlock_id; //'涓婁竴娆″埛寮�寮�閿佸崱鍙穂浠呭埛寮�寮�閿佹椂鏈夋晥]', + } + this.lock_open_count ++; + } + //閿佸叿鐘舵�佸彉鍖� + this.last_update_time = new Date(); + } + record_time = new Date(); + readCount ++; + if(readCount >= 999998) { + readCount = 0; + } buffer.compact(); return true; + } + + + public boolean putCardByteBuffer(ByteBuffer buffer,int idx) { + if(buffer.limit() < (Reg_Count_Card*2)) { + System.out.println("瀹炴椂淇℃伅杩斿洖闀垮害閿欒" + buffer.limit()); + return false; + } + + buffer.order(ByteOrder.BIG_ENDIAN); + buffer.position(0); + for(int k = idx;k<(idx+50) && k < ElectLock_ComBase.Lock_MaxCardCount;k++) { + id_cards[k] = (buffer.getInt()&0xFFFFFFFF); + } + return true; + } + + public String getLockMacAddr() { + return String.format("%02x:%02x:%02x:%02x:%02x:%02x", mac_addr[0],mac_addr[1],mac_addr[2],mac_addr[3],mac_addr[4],mac_addr[5]).toUpperCase(); + } + + public void resetLockMacAddr() { + for(int n=0;n<mac_addr.length;n++) { + mac_addr[n] = 0xFF; + } + } + + + + public int getReadCount() { + return readCount; + } + + + public long[] getId_cards() { + return id_cards; + } + + + public void setId_cards(long[] id_cards) { + this.id_cards = id_cards; + } + + + public int getBluetooth_st_state() { + return bluetooth_st_state; + } + + + public int getBluetooth_state() { + return bluetooth_state; + } + + + public void setBluetooth_st_state(int bluetooth_st_state) { + this.bluetooth_st_state = bluetooth_st_state; + } + + + public void setBluetooth_state(int bluetooth_state) { + this.bluetooth_state = bluetooth_state; + } + + + public int getLockDevId() { + return 10000000 + this.lock_addr; } public Date getRecord_time() { @@ -70,6 +207,40 @@ public int getAlready_id_count() { return already_id_count; } + + public String getCtl_uname() { + return ctl_uname; + } + public int getLock_open_count() { + return lock_open_count; + } + + public Date getLast_update_time() { + return last_update_time; + } + + public void setLock_open_count(int lock_open_count) { + this.lock_open_count = lock_open_count; + } + + public void setLast_update_time(Date last_update_time) { + this.last_update_time = last_update_time; + } + + public void setCtl_uname(String ctl_uname) { + this.ctl_uname = ctl_uname; + } + + + public int getWorkmodel() { + return workmodel; + } + + + public void setWorkmodel(int workmodel) { + this.workmodel = workmodel; + } + public int getMax_id_count() { return max_id_count; @@ -107,11 +278,21 @@ return err_count; } + public int getLock_online() { + return lock_online; + } + + + public void setLock_online(int lock_online) { + this.lock_online = lock_online; + } + + public int getOp_cmd() { return op_cmd; } - public int getId_card_set() { + public long getId_card_set() { return id_card_set; } @@ -175,13 +356,56 @@ this.op_cmd = op_cmd; } - public void setId_card_set(int id_card_set) { + public void setId_card_set(long id_card_set) { this.id_card_set = id_card_set; } public void setLock_addr_set(int lock_addr_set) { this.lock_addr_set = lock_addr_set; } + + public boolean isIDOpen() { + return isIDOpen; + } + + + public int getLast_unlock_type() { + return last_unlock_type; + } + + + public int getLast_unlock_id() { + return last_unlock_id; + } + + + public void setIDOpen(boolean isIDOpen) { + this.isIDOpen = isIDOpen; + } + + + public void setLast_unlock_type(int last_unlock_type) { + this.last_unlock_type = last_unlock_type; + } + + + public void setLast_unlock_id(int last_unlock_id) { + this.last_unlock_id = last_unlock_id; + } + + + public int getLock_id() { + return lock_id; + } + + public int getLockAddr() { + return lock_id%1000; + } + + public void setLock_id(int lock_id) { + this.lock_id = lock_id; + } + public void addCommCount() { this.comm_count ++ ; @@ -202,7 +426,6 @@ err_count++; } - @Override public String toString() { return "ElectLock_State [record_time=" + record_time + ", gprs_sn=" + gprs_sn + ", client_ip=" + client_ip @@ -213,4 +436,9 @@ + ", lock_addr_set=" + lock_addr_set + "]"; } + + public static void main(String[] args) { + int[] ss = new int[] {1,58,65,21,54,23}; + System.out.println(String.format("%02x:%02x:%02x:%02x:%02x:%02x", ss[0],ss[1],ss[2],ss[3],ss[4],ss[5]).toUpperCase()); + } } -- Gitblit v1.9.1