StateBaseCmd.java 3.11 KB
package com.sunvote.cmd.state;

import com.sunvote.cmd.BaseCmd;

/**
 * Created by Elvis on 2017/8/14.
 * Email:Eluis@psunsky.com
 * Description:
 */

public abstract class StateBaseCmd extends BaseCmd {

    public static final byte REQUEST_CMD = 0x70;
    public static final byte RESPONSE_CMD = (byte) 0xF0;

    public static StateBaseCmd parseRequest(byte[] bytes, int length) {

        switch (bytes[1]) {
            case 0x01:
            case 0x02:
                WorkPattenStateRequest workPattenStateRequest = new WorkPattenStateRequest();
                workPattenStateRequest.parseCmd(bytes);
                return workPattenStateRequest;
            case 0x03:
            case 0x04:
                QueryBeaconStateRequest queryBeaconStateRequest = new QueryBeaconStateRequest();
                queryBeaconStateRequest.parseCmd(bytes);
                return queryBeaconStateRequest;
            case 0x05:
            case 0x06:
                KeyboardParameterStateRequest keyboardParameterStateRequest = new KeyboardParameterStateRequest();
                keyboardParameterStateRequest.parseCmd(bytes);
                return keyboardParameterStateRequest;
            case 0x07:
                QueryOnlineStateRequest queryOnlineStateRequest = new QueryOnlineStateRequest();
                queryOnlineStateRequest.parseCmd(bytes);
                return queryOnlineStateRequest;
            case 0x08:
            case 0x09:
                ModeOperationStateRequest modeOperationStateRequest = new ModeOperationStateRequest();
                modeOperationStateRequest.parseCmd(bytes);
                return modeOperationStateRequest;
            default:
                return null;
        }
    }

    public static StateBaseCmd parseResponse(byte[] bytes, int length) {
        switch (bytes[1]) {
            case 0x01:
            case 0x02:
                WorkPattenStateResponse workPattenStateResponse = new WorkPattenStateResponse();
                workPattenStateResponse.parseCmd(bytes);
                return workPattenStateResponse;
            case 0x03:
            case 0x04:
                QueryBeaconStateResponse queryBeaconStateResponse = new QueryBeaconStateResponse();
                queryBeaconStateResponse.parseCmd(bytes, length);
                return queryBeaconStateResponse;
            case 0x05:
            case 0x06:
                KeyboardParameterStateResponse keyboardParameterStateResponse = new KeyboardParameterStateResponse();
                keyboardParameterStateResponse.parseCmd(bytes);
                return keyboardParameterStateResponse;
            case 0x07:
                QueryOnlineStateResponse queryOnlineStateResponse = new QueryOnlineStateResponse();
                queryOnlineStateResponse.parseCmd(bytes);
                return queryOnlineStateResponse;
            case 0x08:
            case 0x09:
                ModeOperationStateResponse modeOperationStateResponse = new ModeOperationStateResponse();
                modeOperationStateResponse.parseCmd(bytes);
                return modeOperationStateResponse;
            default:
                return null;
        }
    }
}