package com.zy.acs.gateway.job; 
 | 
  
 | 
import com.zy.acs.gateway.cache.ChannelCache; 
 | 
import com.zy.acs.gateway.domain.AgvPackage; 
 | 
import com.zy.acs.gateway.domain.PackageSupport; 
 | 
import io.netty.channel.Channel; 
 | 
import org.slf4j.Logger; 
 | 
import org.slf4j.LoggerFactory; 
 | 
  
 | 
/** 
 | 
 * 任务处理器 
 | 
 * Created by vincent on 2019-04-03 
 | 
 */ 
 | 
public class PacTask implements Runnable { 
 | 
  
 | 
    private static final Logger log = LoggerFactory.getLogger(PacTask.class); 
 | 
  
 | 
    private final PackageSupport pac; 
 | 
  
 | 
    PacTask(PackageSupport pac){ 
 | 
        this.pac = pac; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void run() { 
 | 
        assert pac != null; 
 | 
        if (pac instanceof AgvPackage) { 
 | 
            AgvPackage agvPackage = (AgvPackage) pac; 
 | 
            String uniqueNo = agvPackage.getHeader().getUniqueNo(); 
 | 
            Channel channel = ChannelCache.getChannel(uniqueNo); 
 | 
            if (null == channel){ 
 | 
                log.warn("AGV [{}] 设备不在线,下发指令 {} 失败" 
 | 
  
 | 
                        , uniqueNo 
 | 
                        ,  String.format("%02x", agvPackage.getHeader().getProtocolType().getCode()).toUpperCase() 
 | 
                ); 
 | 
                return; 
 | 
            } 
 | 
            channel.writeAndFlush(pac); 
 | 
        } 
 | 
  
 | 
    } 
 | 
  
 | 
} 
 |