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