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