From 3e6e645fa84fb39fee8492ace1a09a4d8b080142 Mon Sep 17 00:00:00 2001
From: endian11 <Dana_Lee1016@126.com>
Date: 星期二, 17 十二月 2019 17:53:36 +0800
Subject: [PATCH] 驾考模拟平台协议定义

---
 app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java    |    6 +
 app/src/main/java/safeluck/drive/evaluation/bean/DriveExamProtocol.java |  110 ++++++++++++++++++++++++++++++++++++
 app/src/main/java/safeluck/drive/evaluation/bean/RegisterMessage.java   |   26 ++++++++
 3 files changed, 141 insertions(+), 1 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
new file mode 100644
index 0000000..38c2a8a
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/bean/DriveExamProtocol.java
@@ -0,0 +1,110 @@
+package safeluck.drive.evaluation.bean;
+
+import android.util.Log;
+
+import com.anyun.im_lib.util.ByteUtil;
+
+/**
+ * MyApplication2
+ * Created by lzw on 2019/12/17. 15:39:23
+ * 閭锛�632393724@qq.com
+ * All Rights Saved! Chongqing AnYun Tech co. LTD
+ */
+public abstract class DriveExamProtocol {
+
+    private static final String TAG = "DriveExamProtocol";
+    /***========================
+                娑堟伅缁撴瀯琛�
+    鏍囪瘑浣�	娑堟伅澶�	娑堟伅浣�	鏍¢獙鐮�	鏍囪瘑浣�
+     0x7E                                                       0x7E
+    ======================**/
+   // 鏍囪瘑浣�
+    private byte MESSAGE_HEAD = 0x7e;
+    //鏍囪瘑浣�
+    private byte MESSAGE_TAIL = 0x7e;
+//鏍¢獙鐮�  鍏堟殏鏃跺啓姝�
+    private int checkCode = 0x78;
+
+
+/***===========浠ヤ笅鏄秷鎭ご=============***/
+    //鍗忚鐗堟湰鍙�	BYTE	235锛屽浐瀹�
+    private short protocol_version = 235;
+//娑堟伅ID
+    private short msg_id;
+
+    //娑堟伅浣撳睘鎬�
+    private int msg_property;
+
+    //缁堢鎵嬫満鍙�
+    private String phoneOnTerminal;
+//13	娑堟伅娴佹按鍙�	WORD	鎸夊彂閫侀『搴忎粠0寮�濮嬪惊鐜疮鍔�
+    public static short msg_serial_num=0;
+
+    //15	棰勭暀	BYTE	棰勭暀
+    private byte reserve;
+    /***===========娑堟伅澶寸粨鏉�=============***/
+
+    /**
+     * 娑堟伅浣�
+     */
+    protected abstract byte[] createMessageBody();
+
+    /**
+     * 鏋勯�犲嚱鏁�
+     * @param msg_id 娑堟伅ID
+     */
+    public DriveExamProtocol(short msg_id) {
+        this.msg_id = msg_id;
+    }
+
+    protected byte[] toBytes(){
+        byte[] desBytes = new byte[1+16+2+1+1];
+        int pos = 0;
+
+
+        //鏍囪瘑浣�
+        desBytes[pos] = MESSAGE_HEAD;
+        pos++;
+        //鍗忚鐗堟湰鍙�
+        byte[] protoVersion = ByteUtil.shortGetByte(protocol_version);
+        System.arraycopy(protoVersion,0,desBytes,pos,protoVersion.length);
+        pos +=protoVersion.length;
+
+//娑堟伅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);
+        System.arraycopy(msg_pro_bytes,0,desBytes,pos,msg_pro_bytes.length);
+        pos+=msg_pro_bytes.length;
+        //缁堢鎵嬫満鍙�
+        byte[] phoneBytes = ByteUtil.str2Bcd("12345678");
+        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;
+        pos++;
+
+        //娑堟伅浣�
+        byte[] messageBodyBytes = createMessageBody();
+        System.arraycopy(messageBodyBytes,0,desBytes,pos,messageBodyBytes.length);
+        pos+=messageBodyBytes.length;
+
+        //鏍¢獙鐮�
+        desBytes[pos] = 0x01;
+        pos++;
+        //鏈熬缁撴潫鏍囪瘑浣�
+        desBytes[pos] = MESSAGE_TAIL;
+
+        Log.i(TAG, "鍖呴暱搴�="+pos);
+        Log.i(TAG, "鍖呭唴瀹�: "+ByteUtil.byte2HexStr(desBytes));
+        return desBytes;
+    }
+
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/RegisterMessage.java b/app/src/main/java/safeluck/drive/evaluation/bean/RegisterMessage.java
new file mode 100644
index 0000000..37ceb2c
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/bean/RegisterMessage.java
@@ -0,0 +1,26 @@
+package safeluck.drive.evaluation.bean;
+
+/**
+ * MyApplication2
+ * Created by lzw on 2019/12/17. 17:51:44
+ * 閭锛�632393724@qq.com
+ * All Rights Saved! Chongqing AnYun Tech co. LTD
+ */
+public class RegisterMessage extends DriveExamProtocol {
+    /**
+     * 鏋勯�犲嚱鏁�
+     *
+     * @param msg_id 娑堟伅ID
+     */
+    public RegisterMessage(short msg_id) {
+        super(msg_id);
+    }
+
+    @Override
+    protected byte[] createMessageBody() {
+        byte[] messageBody = new byte[2];
+        messageBody[0] = 0x65;
+        messageBody[1] = 0x66;
+        return messageBody;
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java b/app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java
index 1039515..4461802 100644
--- a/app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java
+++ b/app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java
@@ -28,9 +28,13 @@
         return true;
     }
 
+    /**
+     * 杩炴帴瓒呮椂鏃堕暱
+     * @return  ms
+     */
     @Override
     public int getConnectTimeout() {
-        return 0;
+        return 3000;
     }
 
     @Override

--
Gitblit v1.8.0