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<Rs> { 
 | 
    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); 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
} 
 |