package com.dy.simRtu202404.tcpClient; import com.dy.common.util.ByteUtil; import com.dy.simRtu202404.tcpClient.downData.DownData; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.core.session.IoSession; import org.apache.mina.filter.codec.CumulativeProtocolDecoder; import org.apache.mina.filter.codec.ProtocolDecoderOutput; import java.io.IOException; /** * @Author: liurunyu * @Date: 2025/02/26 11:10 * @Description */ public class LocalDecoder extends CumulativeProtocolDecoder { private static final Logger log = LogManager.getLogger(LocalDecoder.class) ; private static final String DECODER_STATE_KEY = LocalDecoder.class.getName() + ".STATE"; public static final int MAX_SIZE = 2147483647 ; /** * 对网络传输来的数据进行解码 */ protected boolean doDecode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws IOException, Exception{ int remain = in.remaining() ; if(remain > 0){ byte[] bs = new byte[remain]; in.get(bs) ; in.position(0) ; log.info("收到中间件下行数据:" + ByteUtil.bytes2Hex(bs, true)); new DownData().parseData(bs); } return true; } }