Lte3000VirtualBoxHandler.java 3.09 KB
package com.example.mina.box.lte3000;

import com.example.mina.base.AbstractVirtualBoxHandler;

import com.example.mina.base.BaseRequestMessage;
import com.example.mina.base.BaseResponseMessage;
import com.example.mina.box.aeroflex.AeroflexRequestMessage;
import com.example.mina.box.aeroflex.AeroflexResponseMessage;
import com.example.mina.util.CommandHelper;
import com.example.mina.util.LogUtils;
import com.example.mina.entity.Lte3000DataBuffer;
import com.example.mina.helper.Lte3000CommandHelper;
import lombok.extern.slf4j.Slf4j;
import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.session.IoSession;

/**
 * @author 杜云山
 * @date 21/03/05
 */
@Slf4j
public class Lte3000VirtualBoxHandler extends AbstractVirtualBoxHandler<Lte3000RequestMessage, Lte3000ResponseMessage> {

    private static final byte[] Response_46;// = "Fv7.46 Pv2.15 LTE2250/032X032".getBytes();
    private static final byte[] Response_53 = new byte[]{0x06, 0x30, 0x30, 0x53, 0x03, 0x56};
    private static final byte[] Response_58 = new byte[]{0x06, 0x30, 0x30, 0x58, 0x47, 0x4D, 0x4F, 0x03, 0x18};

    static {
        byte[] bs = "Fv7.46 Pv2.15 XRM2250/032X064".getBytes();
        Response_46 = new byte[bs.length + 6];
        System.arraycopy(bs, 0, Response_46, 4, bs.length);
        Response_46[0] = 0x06;
        Response_46[1] = 0x30;
        Response_46[2] = 0x30;
        Response_46[3] = 0x46;
        Response_46[bs.length + 4] = 0x03;
        Lte3000CommandHelper.setCHK(Response_46);
    }

    private Lte3000DataBuffer dataBuffer;

    public Lte3000VirtualBoxHandler() {
        this.initMatrix();
    }

    @Override
    protected void initMatrix() {

        int row = 32;
        int col = 32;
        int maxAttenuate = 30;

        dataBuffer = new Lte3000DataBuffer(row, col,maxAttenuate);
    }

    private int getBcdPort(byte a, byte b, byte c) {
        return (CommandHelper.BCD_REV[a] - 30) * 100 + (CommandHelper.BCD_REV[b] - 30) * 10 + (CommandHelper.BCD_REV[c] - 30);
    }
    private int getBcdAttn(byte a, byte b) {
        return (CommandHelper.BCD_REV[a] - 30) * 10 + (CommandHelper.BCD_REV[b] - 30);
    }

    @Override
    protected Lte3000ResponseMessage handleMessage(Lte3000RequestMessage requestMessage) {
        return null;
    }

    @Override
    public void messageReceived(IoSession session, Object message) {

        if (message instanceof Lte3000RequestMessage) {

            Lte3000ResponseMessage responseMessage = handleMessage((Lte3000RequestMessage) message);
            session.write(responseMessage);
        }
    }



    @Override
    public void sessionCreated(IoSession session) {

        log.info("--- abstractVirtual server session created");
    }

    @Override
    public void sessionOpened(IoSession session) {

        log.info("--- abstractVirtual server session Opened");
    }

    @Override
    public void sessionClosed(IoSession session) {

        log.info("--- abstractVirtual server session Closed");
    }

    @Override
    public void messageSent(IoSession session, Object message) {

        log.info("--- abstractVirtual 发送数据成功!{}", message);
    }

}