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