endian11
2019-12-17 3e6e645fa84fb39fee8492ace1a09a4d8b080142
驾考模拟平台协议定义
1个文件已修改
2个文件已添加
142 ■■■■■ 已修改文件
app/src/main/java/safeluck/drive/evaluation/bean/DriveExamProtocol.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/bean/RegisterMessage.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/bean/DriveExamProtocol.java
New file
@@ -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;
    }
}
app/src/main/java/safeluck/drive/evaluation/bean/RegisterMessage.java
New file
@@ -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;
    }
}
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