GetVoteDataResponse.java 3.54 KB
package com.sunvote.cmd.basestation;

import com.sunvote.cmd.BaseCmd;
import com.sunvote.cmd.ICmd;

import java.io.ByteArrayOutputStream;

/**
 * Created by Elvis on 2017/8/30.
 * Email:Eluis@psunsky.com
 * 版权所有:长沙中天电子设计开发有限公司
 * Description:平板模块键盘投票功能模块
 *
 * 基站应答:(注意:一次最多应答10个数据包)
 字节	标识符	描述
 1	BASECMD	0xE0 基站类指令应答
 2	BASEID	应答的基站的编号
 3	CMDTYPE	应答类型
 5 基站结果上传
 4	MSGNO	数据包序号
 基站最多依次输出10个数据包,第1个数据包MSGNO=1,第2个为2,依次类推,如果不足10个数据包,MSGNO=0xFF表示没有数据了
 5	MSGTYPE	基站数据包类型
 1 单值
 2 单选多选带计时
 3 评分带计时
 4 批次结果
 5 排序带计时
 6 字符串带计时
 7 单值带计时

 10状态类信息
 11 登录信息
 12 申请类信息
 13 扩展信息类

 20 硬件序列号的结果提交(统一BCD格式结果)
 6-29	MSGDATA	基站数据包实际有效的结果数据,24字节,多个表决器的结果就打包放在这24字节中
 可以1次传递8个表决器的单值结果,4个表决器的单选多选带计时结果,4个表决器的评分结果。。。

 *
 */
public class GetVoteDataResponse extends BaseCmd {
    public static final byte CMD = (byte) 0xE0;
    public static final byte CMD_TYPE = 0x05;//基站结果上传

    /**
     * 基站类指令应答
     */
    private byte basecmd = CMD;

    /**
     * 应答的基站的编号
     */
    private byte baseid ;

    /**
     * 应答类型 5 基站结果上传
     */
    private byte cmdtype = CMD_TYPE;

    /**
     * 数据包序号
     */
    private byte msgno;

    private byte msgtype;//	基站数据包类型;

    /**
     * MSGDATA	基站数据包实际有效的结果数据,24字节,多个表决器的结果就打包放在这24字节中
     可以1次传递8个表决器的单值结果,4个表决器的单选多选带计时结果,4个表决器的评分结果。。。
     */
    private byte[] msgdata = new byte[24];;

    /**
     * MSGNO
     */

    @Override
    public byte[] toBytes() {
        try{
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            stream.write(getBasecmd());
            stream.write(getBaseid());
            stream.write(getCmdtype());
            stream.write(getMsgno());
            stream.write(getMsgtype());
            stream.write(getMsgdata());
            return stream.toByteArray();
        }catch (Exception ex){
            ex.printStackTrace();
        }
        return new byte[0];
    }

    @Override
    public ICmd parseCmd(byte[] source, int start) {
        return null;
    }

    public byte getBasecmd() {
        return basecmd;
    }

    public void setBasecmd(byte basecmd) {
        this.basecmd = basecmd;
    }

    public byte getBaseid() {
        return baseid;
    }

    public void setBaseid(byte baseid) {
        this.baseid = baseid;
    }

    public byte getCmdtype() {
        return cmdtype;
    }

    public void setCmdtype(byte cmdtype) {
        this.cmdtype = cmdtype;
    }

    public byte getMsgno() {
        return msgno;
    }

    public void setMsgno(byte msgno) {
        this.msgno = msgno;
    }

    public byte getMsgtype() {
        return msgtype;
    }

    public void setMsgtype(byte msgtype) {
        this.msgtype = msgtype;
    }

    public byte[] getMsgdata() {
        return msgdata;
    }

    public void setMsgdata(byte[] msgdata) {
        this.msgdata = msgdata;
    }
}