Qrb3000CommandHelper.java 4.07 KB
package com.example.mina.client.box.qrb3000;

import com.example.mina.server.util.CommandHelper;

/**
 * @ProjectName: demo
 * @Package: com.example.mina.client.box.qrb3000
 * @ClassName: Qrb3000CommandHelper
 * @Author: HuangLang
 * @Description: Qrb command helper
 * @Date: 2021-04-02 下午 5:55
 */
public class Qrb3000CommandHelper {

    public static byte[] genCommand30(int row, int col, int val){
        byte[] command = new byte[8];

        command[0] = 0x30;
        command[1] = 0x40;
        command[2] = 0x00;
        command[3] = CommandHelper.BCD[row];
        command[4] = CommandHelper.BCD[col];
        command[5] = (byte)val;
        command[6] = 0x00;
        command[7] = 0x00;

        return command;
    }

    public static byte[] genCommand31(int row, int col, int val){
        byte[] command = new byte[8];

        command[0] = 0x31;
        command[1] = 0x40;
        command[2] = 0x00;
        command[3] = CommandHelper.BCD[row];
        command[4] = CommandHelper.BCD[col];
        command[5] = (byte)val;
        command[6] = 0x00;
        command[7] = 0x00;

        return command;
    }


    public static byte[] genCommand32(){
        byte[] command = new byte[8];

        command[0] = 0x32;
        command[1] = 0x00;
        command[2] = 0x00;
        command[3] = 0x00;
        command[4] = 0x00;
        command[5] = 0x00;
        command[6] = 0x00;
        command[7] = 0x00;

        return command;
    }



    public static byte[] genCommand4D(byte val){
        byte[] command = new byte[1028];

        command[0] = 0x4D;
        command[1] = 0x40;
        command[2] = 0x00;

        for(int i = 0; i < 1024; i++) {
            command[ 3 + i] = val;
        }
        command[1027] = 0x00;


        return command;
    }

    public static byte[] genCommand62(int row){
        byte[] command = new byte[8];

        command[0] = 0x62;
        command[1] = 0x40;
        command[2] = 0x00;
        command[3] = CommandHelper.BCD[row];
        command[4] = 0x00;
        command[5] = 0x00;
        command[6] = 0x00;
        command[7] = 0x00;

        return command;
    }

    public static byte[] genCommand68(int row){
        byte[] command = new byte[8];

        command[0] = 0x68;
        command[1] = 0x40;
        command[2] = 0x00;
        command[3] = CommandHelper.BCD[row];
        command[4] = 0x00;
        command[5] = 0x00;
        command[6] = 0x00;
        command[7] = 0x00;

        return command;
    }

    @Deprecated
    public static int parseCommand68_Response(byte[] b){//TODO : need double check
        int b7 = 0xFF & b[6];
        int b8 = 0xFF & b[7];

        int rec = 0;

        if(b7 == 0xFE || b7 == 0xFF || b8 == 0xEE){
            rec =  -99;
        }
//        else if(b7 ==0xF9){
//            rec = 31;
//        }
        else if(b7 == 0x80){
            rec = 0;
        }
        else if(b7 < 0x80){
            rec = (b7 / 16) * 10 + (0x0F & b7);
        }
        else{
            b7= 0x7f & b7;
            rec = - ( (b7 / 16) * 10 + (0x0F & b7));
        }

        return rec;
    }

    public static byte[] genCommand4F(int row){
        byte[] command = new byte[8];

        command[0] = 0x4F;
        command[1] = 0x40;
        command[2] = 0x00;
        command[3] = CommandHelper.BCD[row];
        command[4] = 0x00;
        command[5] = 0x00;
        command[6] = 0x00;
        command[7] = 0x00;

        return command;
    }

    public static byte[] genCommandEA(){
        byte[] command = new byte[8];

        int b = 0xEA;

        command[0] = (byte)b;
        command[1] = 0x40;
        command[2] = 0x00;
        command[3] = 0x00;
        command[4] = 0x00;
        command[5] = 0x00;
        command[6] = 0x00;
        command[7] = 0x00;

        return command;
    }


    public static byte[] genCommandEE(){
        byte[] command = new byte[8];

        int b = 0xEE;

        command[0] = (byte)b;
        command[1] = 0x40;
        command[2] = 0x00;
        command[3] = 0x00;
        command[4] = 0x00;
        command[5] = 0x00;
        command[6] = 0x00;
        command[7] = 0x00;

        return command;
    }

}