package com.zy.core.netty.handle;
|
|
import com.core.common.DateUtils;
|
import com.zy.asrs.service.impl.MainServiceImpl;
|
import com.zy.core.netty.AbstractInboundHandler;
|
import com.zy.core.netty.cache.ChannelCache;
|
import com.zy.core.netty.constant.Constant;
|
import com.zy.core.netty.constant.FireDataType;
|
import com.zy.core.netty.domain.ChPackage;
|
import com.zy.core.netty.domain.fire.Fire_3030;
|
import io.netty.channel.Channel;
|
import io.netty.channel.ChannelHandler;
|
import io.netty.channel.ChannelHandlerContext;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
/**
|
* 国标业务处理handler
|
* Created by vincent on 2019-04-02
|
*/
|
@Slf4j
|
@Component
|
@ChannelHandler.Sharable
|
public class PackageServerHandler extends AbstractInboundHandler<ChPackage> {
|
|
@Autowired
|
private MainServiceImpl mainService;
|
|
@Override
|
protected boolean channelRead0(ChannelHandlerContext ctx, ChPackage pac) {
|
FireDataType dataType = FireDataType.get(pac.getBytes()[1], pac.getBytes()[2]);
|
switch (dataType) {
|
case HEARTBEAT:
|
Fire_3030 fire3030 = new Fire_3030().readFromBytes(pac.getBytes());
|
String now = "20" + fire3030.getYear() + "-" + fire3030.getMonth() + "-" + fire3030.getDay()
|
+ " " + fire3030.getHour() + ":" + fire3030.getMinute() + ":" + fire3030.getSeconds();
|
|
Constant.FIRE_HEARTBEAT.put(fire3030.getNo().toString(), DateUtils.convert(now));
|
break;
|
case FIRE_ALARM:
|
|
break;
|
default:
|
break;
|
}
|
return true;
|
}
|
|
/**
|
* 数据下行
|
*/
|
public static void write(ChPackage chPackage){
|
String uuid = chPackage.getUuid();
|
Channel channel = ChannelCache.getChannel(uuid);
|
if (null == channel){
|
log.warn("通道uuid={} 不在线", uuid);
|
return;
|
}
|
channel.writeAndFlush(chPackage);
|
}
|
}
|