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