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