From ec8c6028d44e730885fd9a03994732baee260e94 Mon Sep 17 00:00:00 2001
From: endian11 <Dana_Lee1016@126.com>
Date: 星期一, 30 十二月 2019 17:23:25 +0800
Subject: [PATCH] 添加消息对象(初步)

---
 app/src/main/java/safeluck/drive/evaluation/cEventCenter/CEvent.java       |   70 ++++++++++++++
 app/src/main/java/safeluck/drive/evaluation/cEventCenter/ObjectPool.java   |   55 +++++++++++
 app/src/main/java/safeluck/drive/evaluation/bean/DriveExamProtocol.java    |   48 ++++++---
 app/src/main/java/safeluck/drive/evaluation/bean/RegisterMessage.java      |    1 
 app/src/main/java/safeluck/drive/evaluation/cEventCenter/PooledObject.java |   15 +++
 app/src/main/java/safeluck/drive/evaluation/bean/KeepaliveMessage.java     |   22 ++++
 app/src/main/java/safeluck/drive/evaluation/bean/GainStuMessage.java       |   26 +++++
 app/src/main/java/safeluck/drive/evaluation/bean/StartExamMessage.java     |   25 +++++
 8 files changed, 247 insertions(+), 15 deletions(-)

diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/DriveExamProtocol.java b/app/src/main/java/safeluck/drive/evaluation/bean/DriveExamProtocol.java
index 527c20c..06af76c 100644
--- a/app/src/main/java/safeluck/drive/evaluation/bean/DriveExamProtocol.java
+++ b/app/src/main/java/safeluck/drive/evaluation/bean/DriveExamProtocol.java
@@ -18,11 +18,13 @@
     鏍囪瘑浣�	娑堟伅澶�	娑堟伅浣�	鏍¢獙鐮�	鏍囪瘑浣�
      0x7E                                                       0x7E
     ======================**/
-   // 鏍囪瘑浣�
+   // 鏍囪瘑浣�(瀛楄妭娴佸紑濮嬶級
     private byte MESSAGE_HEAD = 0x7e;
-    //鏍囪瘑浣�
+    //鏍囪瘑浣嶏紙瀛楄妭娴佺粨鏉燂級
     private byte MESSAGE_TAIL = 0x7e;
-//鏍¢獙鐮�  鍏堟殏鏃跺啓姝�
+
+    //鏍¢獙鐮佹寚浠庢秷鎭ご寮�濮嬶紝鍚屽悗涓�瀛楄妭寮傛垨锛岀洿鍒版牎楠岀爜鍓嶄竴涓瓧鑺傦紝鍗犵敤涓�涓瓧鑺�
+//鏍¢獙鐮�  鍏堟殏鏃跺啓姝� todo
     private byte checkCode = 0x78;
 
 
@@ -32,20 +34,32 @@
 //娑堟伅ID
     private short msg_id;
 
-    //娑堟伅浣撳睘鎬�
-    private int msg_property;
 
-    //缁堢鎵嬫満鍙� 瀛楃涓查暱搴﹀繀椤讳负16
+   /**銆�娑堟伅浣撳睘鎬ф牸寮忕粨鏋勮〃
+15	14	13   |	12	11	10	| 9	8	7	6	5	4	3	2	1	0
+    淇濈暀	      鏁版嵁鍔犲瘑鏂瑰紡     	娑堟伅浣撻暱搴�
+**/
+    //娑堟伅浣撳睘鎬�
+    private short msg_property  =2;
+
+    /**
+       * 缁堢鎵嬫満鍙� 瀛楃涓查暱搴﹀繀椤讳负16
+    **/
     private String phoneOnTerminal = "0008618513021245";
-//13	娑堟伅娴佹按鍙�	WORD	鎸夊彂閫侀『搴忎粠0寮�濮嬪惊鐜疮鍔�
+
+    /**
+     *
+     * 13	娑堟伅娴佹按鍙�	WORD	鎸夊彂閫侀『搴忎粠0寮�濮嬪惊鐜疮鍔�
+     *
+     */
     public static short msg_serial_num=0;
 
     //15	棰勭暀	BYTE	棰勭暀
-    private byte reserve;
+    private byte reserve = 0x00;
     /***===========娑堟伅澶寸粨鏉�=============***/
 
     /**
-     * 娑堟伅浣�
+     * 娑堟伅浣� 闇�瑕佸瓙绫诲疄鐜�
      */
     protected abstract byte[] createMessageBody();
 
@@ -57,6 +71,10 @@
         this.msg_id = msg_id;
     }
 
+    /**
+     * 娑堟伅杞负byte鏁扮粍 7E......7E
+     * @return
+     */
     public byte[] toBytes(){
         byte[] desBytes = new byte[1+16+2+1+1];
         int pos = 0;
@@ -72,25 +90,25 @@
         System.arraycopy(protoVersion,0,desBytes,pos,protoVersion.length);
         pos +=protoVersion.length;
 
-    //娑堟伅ID
+        //娑堟伅ID
         byte[] msgIdBytes = ByteUtil.shortGetBytes(msg_id);
         System.arraycopy(msgIdBytes,0,desBytes,pos,msgIdBytes.length);
         pos+=msgIdBytes.length;
 
-    //娑堟伅浣撳睘鎬�
-        byte[] msg_pro_bytes = ByteUtil.shortGetBytes((short)2);
+        //娑堟伅浣撳睘鎬�
+        byte[] msg_pro_bytes = ByteUtil.shortGetBytes(msg_property);
         System.arraycopy(msg_pro_bytes,0,desBytes,pos,msg_pro_bytes.length);
         pos+=msg_pro_bytes.length;
         //缁堢鎵嬫満鍙�
         byte[] phoneBytes = ByteUtil.str2Bcd(phoneOnTerminal);
         System.arraycopy(phoneBytes,0,desBytes,pos,phoneBytes.length);
         pos+=phoneBytes.length;
-    //娑堟伅娴佹按鍙�
+        //娑堟伅娴佹按鍙�
         byte[] msg_serialNum = ByteUtil.shortGetBytes(msg_serial_num++);
         System.arraycopy(msg_serialNum,0,desBytes,pos,msg_serialNum.length);
         pos+=msg_serialNum.length;
-        //淇濈暀
-        desBytes[pos] = 0;
+        //淇濈暀byte
+        desBytes[pos] = reserve;
         pos++;
 
         //娑堟伅浣�
diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/GainStuMessage.java b/app/src/main/java/safeluck/drive/evaluation/bean/GainStuMessage.java
new file mode 100644
index 0000000..74960fd
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/bean/GainStuMessage.java
@@ -0,0 +1,26 @@
+package safeluck.drive.evaluation.bean;
+
+/**
+ * 鑾峰彇瀛﹀憳淇℃伅娑堟伅锛堝彂閫佽韩浠借瘉ID涓婂幓缁欏钩鍙帮級
+ * MyApplication2
+ * Created by lzw on 2019/12/19. 18:26:35
+ * 閭锛�632393724@qq.com
+ * All Rights Saved! Chongqing AnYun Tech co. LTD
+ */
+public class GainStuMessage extends DriveExamProtocol {
+    // TODO: 2019/12/19
+    /**
+     * 鏋勯�犲嚱鏁�
+     *
+     * @param msg_id 娑堟伅ID
+     */
+    public GainStuMessage(short msg_id) {
+        super(msg_id);
+    }
+
+    @Override
+    protected byte[] createMessageBody() {
+
+        return new byte[0];
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/KeepaliveMessage.java b/app/src/main/java/safeluck/drive/evaluation/bean/KeepaliveMessage.java
new file mode 100644
index 0000000..f04f4e1
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/bean/KeepaliveMessage.java
@@ -0,0 +1,22 @@
+package safeluck.drive.evaluation.bean;
+
+/**
+ * 蹇冭烦娑堟伅
+ * MyApplication2
+ * Created by lzw on 2019/12/19. 18:24:47
+ * 閭锛�632393724@qq.com
+ * All Rights Saved! Chongqing AnYun Tech co. LTD
+ */
+public class KeepaliveMessage extends DriveExamProtocol {
+
+// TODO: 2019/12/19  
+
+    public KeepaliveMessage(short msg_id) {
+        super(msg_id);
+    }
+
+    @Override
+    protected byte[] createMessageBody() {
+        return new byte[0];
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/RegisterMessage.java b/app/src/main/java/safeluck/drive/evaluation/bean/RegisterMessage.java
index 37ceb2c..5565ee1 100644
--- a/app/src/main/java/safeluck/drive/evaluation/bean/RegisterMessage.java
+++ b/app/src/main/java/safeluck/drive/evaluation/bean/RegisterMessage.java
@@ -1,6 +1,7 @@
 package safeluck.drive.evaluation.bean;
 
 /**
+ * 娉ㄥ唽娑堟伅
  * MyApplication2
  * Created by lzw on 2019/12/17. 17:51:44
  * 閭锛�632393724@qq.com
diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/StartExamMessage.java b/app/src/main/java/safeluck/drive/evaluation/bean/StartExamMessage.java
new file mode 100644
index 0000000..37794ff
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/bean/StartExamMessage.java
@@ -0,0 +1,25 @@
+package safeluck.drive.evaluation.bean;
+
+/**
+ * 缁欏钩鍙板彂閫佸紑濮嬭�冭瘯娑堟伅
+ * MyApplication2
+ * Created by lzw on 2019/12/19. 18:28:47
+ * 閭锛�632393724@qq.com
+ * All Rights Saved! Chongqing AnYun Tech co. LTD
+ */
+public class StartExamMessage extends DriveExamProtocol {
+// TODO: 2019/12/19  
+    /**
+     * 鏋勯�犲嚱鏁�
+     *
+     * @param msg_id 娑堟伅ID
+     */
+    public StartExamMessage(short msg_id) {
+        super(msg_id);
+    }
+
+    @Override
+    protected byte[] createMessageBody() {
+        return new byte[0];
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/cEventCenter/CEvent.java b/app/src/main/java/safeluck/drive/evaluation/cEventCenter/CEvent.java
new file mode 100644
index 0000000..fd13504
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/cEventCenter/CEvent.java
@@ -0,0 +1,70 @@
+package safeluck.drive.evaluation.cEventCenter;
+
+/**
+ * 浜嬩欢妯″瀷锛岄渶瑕佷紶閫掔殑娑堟伅浜嬩欢瀵硅薄
+ * MyApplication2
+ * Created by lzw on 2019/12/30. 17:00:54
+ * 閭锛�632393724@qq.com
+ * All Rights Saved! Chongqing AnYun Tech co. LTD
+ */
+public class CEvent implements PooledObject {
+
+    //涓婚
+    private String topic;
+
+    private int msgCode;//娑堟伅绫诲瀷
+
+    private int resultCode;//棰勭暀鍙傛暟
+
+    private Object obj;//鍥炶皟杩斿洖鏁版嵁
+
+    public CEvent() {
+    }
+
+    public CEvent(String topic, int msgCode, int resultCode, Object obj) {
+        this.topic = topic;
+        this.msgCode = msgCode;
+        this.resultCode = resultCode;
+        this.obj = obj;
+    }
+
+    public String getTopic() {
+        return topic;
+    }
+
+    public void setTopic(String topic) {
+        this.topic = topic;
+    }
+
+    public int getMsgCode() {
+        return msgCode;
+    }
+
+    public void setMsgCode(int msgCode) {
+        this.msgCode = msgCode;
+    }
+
+    public int getResultCode() {
+        return resultCode;
+    }
+
+    public void setResultCode(int resultCode) {
+        this.resultCode = resultCode;
+    }
+
+    public Object getObj() {
+        return obj;
+    }
+
+    public void setObj(Object obj) {
+        this.obj = obj;
+    }
+
+    @Override
+    public void reset() {
+        this.obj = null;
+        this.msgCode = 0;
+        this.resultCode = 0;
+        this.topic = null;
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/cEventCenter/ObjectPool.java b/app/src/main/java/safeluck/drive/evaluation/cEventCenter/ObjectPool.java
new file mode 100644
index 0000000..cd1478b
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/cEventCenter/ObjectPool.java
@@ -0,0 +1,55 @@
+package safeluck.drive.evaluation.cEventCenter;
+
+/**
+ * 鑷畾涔夌殑瀵硅薄姹�
+ * MyApplication2
+ * Created by lzw on 2019/12/30. 17:06:49
+ * 閭锛�632393724@qq.com
+ * All Rights Saved! Chongqing AnYun Tech co. LTD
+ */
+public abstract class ObjectPool<T extends PooledObject> {
+
+    private T[] mContainer;//瀵硅薄瀹瑰櫒
+
+    private final Object LOCK = new Object();//瀵硅薄閿�
+
+    private int length;//姣忔杩斿洖瀵硅薄閮芥斁鍒版暟鎹湯绔紝length琛ㄧず鍓嶉潰鍙敤瀵硅薄鏁�
+
+    public ObjectPool(int capacity) {
+        mContainer = createObjPool(capacity);
+    }
+
+    /**
+     * 鍒涘缓瀵硅薄姹�
+     * @param capacity 鏈�澶ч檺搴﹀閲�
+     * @return
+     */
+    protected abstract T[] createObjPool(int capacity) ;
+
+    /**
+     * 鍒涘缓涓�涓柊鐨勫璞�
+     * @return
+     */
+    protected abstract T createNewObj();
+
+
+    public final T get(){
+        //鍏堜粠姹犱腑鎵惧埌绌洪棽鐨勫璞★紝濡傛灉娌℃湁锛屽垯閲嶆柊鍒涘缓涓�涓璞�
+        T obj = findFreeObject();
+        if (null == obj){
+            obj = createNewObj();
+        }else{
+            obj.reset();
+        }
+        return obj;
+    }
+
+    /**
+     * 浠庢睜涓壘鍒扮┖闂茬殑瀵硅薄
+     * @return
+     */
+    private T findFreeObject() {
+
+        return null;
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/cEventCenter/PooledObject.java b/app/src/main/java/safeluck/drive/evaluation/cEventCenter/PooledObject.java
new file mode 100644
index 0000000..848548f
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/cEventCenter/PooledObject.java
@@ -0,0 +1,15 @@
+package safeluck.drive.evaluation.cEventCenter;
+
+/**
+ * 瀵硅薄姹�
+ * MyApplication2
+ * Created by lzw on 2019/12/30. 16:59:40
+ * 閭锛�632393724@qq.com
+ * All Rights Saved! Chongqing AnYun Tech co. LTD
+ */
+public interface PooledObject {
+    /**
+     * 鎭㈠鍒伴粯璁ょ姸鎬�
+     */
+    void reset();
+}

--
Gitblit v1.8.0