package com.genersoft.iot.vmp.jt1078.codec.encode; import com.genersoft.iot.vmp.jt1078.proc.response.Rs; import com.genersoft.iot.vmp.jt1078.session.Session; import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBufUtil; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.MessageToByteEncoder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author QingtaiJiang * @date 2023/4/27 18:10 * @email qingtaij@163.com */ public class Jt808Encoder extends MessageToByteEncoder { private final static Logger log = LoggerFactory.getLogger(Jt808Encoder.class); @Override protected void encode(ChannelHandlerContext ctx, Rs msg, ByteBuf out) throws Exception { Session session = ctx.channel().attr(Session.KEY).get(); ByteBuf encode = Jt808EncoderCmd.encode(msg, session, session.nextSerialNo()); if(encode!=null){ log.info("< {} hex:{}", session, ByteBufUtil.hexDump(encode)); out.writeBytes(encode); } } }