|
@@ -0,0 +1,637 @@
|
|
|
|
+//package com.huimv.env.input.server;
|
|
|
|
+//
|
|
|
|
+//import cn.hutool.core.util.ObjectUtil;
|
|
|
|
+//import com.alibaba.fastjson.JSONArray;
|
|
|
|
+//import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
|
+////import com.huimv.env.common.service.IRawDataService;
|
|
|
|
+//import com.huimv.env.common.utils.RegexUtil;
|
|
|
|
+//import com.huimv.env.input.producer.Producer;
|
|
|
|
+////import com.huimv.env.input.service.ICommandProcessorService;
|
|
|
|
+//import com.huimv.env.input.utils.DateUtil2;
|
|
|
|
+//import io.netty.buffer.ByteBuf;
|
|
|
|
+//import io.netty.buffer.Unpooled;
|
|
|
|
+//
|
|
|
|
+//import io.netty.channel.ChannelHandler;
|
|
|
|
+//import io.netty.channel.ChannelHandlerContext;
|
|
|
|
+//import io.netty.channel.ChannelInboundHandlerAdapter;
|
|
|
|
+//import io.netty.util.CharsetUtil;
|
|
|
|
+//import lombok.extern.slf4j.Slf4j;
|
|
|
|
+//import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+//import org.springframework.stereotype.Component;
|
|
|
|
+//
|
|
|
|
+//import java.io.IOException;
|
|
|
|
+//import java.text.ParseException;
|
|
|
|
+//import java.util.HashMap;
|
|
|
|
+//import java.util.Map;
|
|
|
|
+//import java.util.regex.Matcher;
|
|
|
|
+//import java.util.regex.Pattern;
|
|
|
|
+//
|
|
|
|
+///**
|
|
|
|
+// * @Project : huimv.shiwan
|
|
|
|
+// * @Package : com.huimv.biosafety.uface.controller
|
|
|
|
+// * @Description : TODO
|
|
|
|
+// * @Version : 1.0
|
|
|
|
+// * @Author : ZhuoNing
|
|
|
|
+// * @Create : 2020-12-25
|
|
|
|
+// **/
|
|
|
|
+//@ChannelHandler.Sharable
|
|
|
|
+//@Component
|
|
|
|
+//@Slf4j
|
|
|
|
+//public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
|
|
|
|
+// @Autowired
|
|
|
|
+// private RegexUtil regexUtil;
|
|
|
|
+//// @Autowired
|
|
|
|
+//// private ICommandProcessorService cmdProService;
|
|
|
|
+// @Autowired
|
|
|
|
+// private DateUtil2 dateUtil;
|
|
|
|
+//// @Autowired
|
|
|
|
+//// private IRawDataService rawDataService;
|
|
|
|
+// @Autowired
|
|
|
|
+// private Producer producer;
|
|
|
|
+// private StringBuilder askTextSb = null;
|
|
|
|
+//
|
|
|
|
+// //
|
|
|
|
+// public void appendClientAsk(String text) {
|
|
|
|
+// if (this.askTextSb == null) {
|
|
|
|
+// askTextSb = new StringBuilder();
|
|
|
|
+// }
|
|
|
|
+// askTextSb.append(text);
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// @Override
|
|
|
|
+// public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
|
|
|
|
+// ByteBuf data = (ByteBuf) msg;
|
|
|
|
+// String clientAskText = data.toString(CharsetUtil.UTF_8);
|
|
|
|
+// //保存实例内的客户端请求
|
|
|
|
+// appendClientAsk(clientAskText);
|
|
|
|
+// //临时写入耳标数据到文件
|
|
|
|
+//// writeTxt(clientAskText,"all");
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// @Override
|
|
|
|
+// public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
|
|
|
|
+// if (askTextSb.toString().indexOf("end") != -1) {
|
|
|
|
+// // {处理客户端消息}
|
|
|
|
+// handleClientAskCmd(askTextSb.toString(), ctx);
|
|
|
|
+// //清空重置;
|
|
|
|
+// askTextSb.delete(0, askTextSb.length());
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// @Override
|
|
|
|
+// public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
|
|
|
+// if (cause.getMessage().indexOf("Connection reset") != -1) {
|
|
|
|
+// log.info("相关采集器设备正在重启:" + cause.toString());
|
|
|
|
+// }
|
|
|
|
+//// cause.printStackTrace();
|
|
|
|
+// ctx.close();
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// /**
|
|
|
|
+// * @Method : handleClientAskCmd
|
|
|
|
+// * @Description : 处理请求小心
|
|
|
|
+// * @Params : [clientAskText, ctx]
|
|
|
|
+// * @Return : void
|
|
|
|
+// * @Author : ZhuoNing
|
|
|
|
+// * @Date : 2022/3/28
|
|
|
|
+// * @Time : 17:36
|
|
|
|
+// */
|
|
|
|
+// private void handleClientAskCmd(String clientAskText, ChannelHandlerContext ctx) throws ParseException, IOException {
|
|
|
|
+// clientAskText = clientAskText.replaceAll("\r", "").replaceAll("\n", "");
|
|
|
|
+// //{处理非正常命令}
|
|
|
|
+//// int countPlus = regexUtil.countPlus(clientAskText);
|
|
|
|
+//// if (countPlus < 4) {
|
|
|
|
+//// System.out.println("当前数据为不完整数据,故丢弃.>>" + clientAskText);
|
|
|
|
+//// } else {
|
|
|
|
+// //--处理客户端请求数据
|
|
|
|
+// //{拆分粘包数据}
|
|
|
|
+//// JSONArray askJa = parseAskCmdPackage(clientAskText);
|
|
|
|
+//// for (int a = 0; a < askJa.size(); a++) {
|
|
|
|
+//// String askText = askJa.getString(a);
|
|
|
|
+//// //{处理请求命令}
|
|
|
|
+//// askCmdActuator(askText, ctx);
|
|
|
|
+//// }
|
|
|
|
+//// }
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// /**
|
|
|
|
+// * @Method : askCmdActuator
|
|
|
|
+// * @Description :
|
|
|
|
+// * @Params : [askText, ctx]
|
|
|
|
+// * @Return : void
|
|
|
|
+// * @Author : ZhuoNing
|
|
|
|
+// * @Date : 2022/3/23
|
|
|
|
+// * @Time : 18:08
|
|
|
|
+// */
|
|
|
|
+// private void askCmdActuator(String askText, ChannelHandlerContext ctx) throws ParseException, IOException {
|
|
|
|
+// System.out.println("======>接收设备请求:" + askText);
|
|
|
|
+// String[] dataArray = askText.split("\\+");
|
|
|
|
+// String cmdHeader = dataArray[0];
|
|
|
|
+// if (!cmdHeader.trim().equalsIgnoreCase("hm")) {
|
|
|
|
+// log.info("当前命令是非hm命令[" + askText + "]");
|
|
|
|
+// return;
|
|
|
|
+// }
|
|
|
|
+// //芯片id/设备编码
|
|
|
|
+// String idCode = dataArray[1];
|
|
|
|
+// String cmd = dataArray[2];
|
|
|
|
+// Map map = new HashMap();
|
|
|
|
+// map.put("askText", askText);
|
|
|
|
+//// rawDataService.insert(idCode,askText);
|
|
|
|
+// switch (cmd) {
|
|
|
|
+//// case "1":
|
|
|
|
+//// //获取远程设备编码
|
|
|
|
+//// getDeviceCode(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "2":
|
|
|
|
+//// //同步时间
|
|
|
|
+//// getServerTime(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "3":
|
|
|
|
+//// //日龄上传
|
|
|
|
+//// uploadDayAge(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "4":
|
|
|
|
+//// //通风等级
|
|
|
|
+//// uploadFeng(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "5":
|
|
|
|
+//// //室外温度
|
|
|
|
+//// uploadOutTemp(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "6":
|
|
|
|
+//// //室内温度 平均温度
|
|
|
|
+//// uploadInTemp(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "7":
|
|
|
|
+//// //目标温度
|
|
|
|
+//// uploadTargetnTemp(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "8":
|
|
|
|
+//// //水暖温度
|
|
|
|
+//// uploadShuiNuanTemp(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "9":
|
|
|
|
+//// //水暖温度
|
|
|
|
+//// uploadWeiZhiTemp(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "21":
|
|
|
|
+//// //温度
|
|
|
|
+//// uploadTemp(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "22":
|
|
|
|
+//// //湿度
|
|
|
|
+//// uploadHumi(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "23":
|
|
|
|
+//// //co2
|
|
|
|
+//// uploadCo2(dataArray,askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "24":
|
|
|
|
+//// //压力
|
|
|
|
+//// uploadYaLi(dataArray,askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "31":
|
|
|
|
+//// //水表
|
|
|
|
+//// uploadShuiBiao(dataArray,askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "32":
|
|
|
|
+//// //电表
|
|
|
|
+//// uploadDianBiao(dataArray,askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "41":
|
|
|
|
+//// //报警
|
|
|
|
+//// uploadWarning(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "42":
|
|
|
|
+//// //报警
|
|
|
|
+//// uploadStatusWaraning(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "61":
|
|
|
|
+//// //风机状态
|
|
|
|
+//// uploadFengStatus(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "62":
|
|
|
|
+//// //湿帘状态
|
|
|
|
+//// uploadShiLianStatus(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "63":
|
|
|
|
+//// //喷雾状态
|
|
|
|
+//// uploadPengWuStatus(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "64":
|
|
|
|
+//// //加热器状态
|
|
|
|
+//// uploadJiaReQiStatus(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "65":
|
|
|
|
+//// //小窗状态
|
|
|
|
+//// uploadXiaoChuangStatus(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "66":
|
|
|
|
+//// //导流板状态
|
|
|
|
+//// uploadDaoLiuBanStatus(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "67":
|
|
|
|
+//// //照明状态
|
|
|
|
+//// uploadZhaoMingStatus(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "81":
|
|
|
|
+//// //日龄配置
|
|
|
|
+//// uploadDayAgePeizhiuStatus(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "82":
|
|
|
|
+//// //通风级别配置
|
|
|
|
+//// uploadTongFengPeizhiuStatus(askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "91":
|
|
|
|
+//// //通获取日龄配置
|
|
|
|
+//// uploadGainDayAgePeizhiuStatus(dataArray,askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// case "92":
|
|
|
|
+//// //通风级别配置
|
|
|
|
+//// uploadGainTongFengPeizhiuStatus(dataArray,askText, idCode, ctx);
|
|
|
|
+//// break;
|
|
|
|
+//// default:
|
|
|
|
+//// System.out.println("==>未知命令");
|
|
|
|
+//// log.error(">>当前数据为非法数据-未知命令>>" + askText);
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+////
|
|
|
|
+//// private void uploadZhaoMingStatus(String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("#照明状态上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+67+0+4+end";
|
|
|
|
+//// log.info(">>照明状态上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// producer.sendZhaoMingStatus(askText);
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// private void uploadDaoLiuBanStatus(String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("#导流板状态上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+66+0+4+end";
|
|
|
|
+//// log.info(">>导流板状态上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// producer.sendDaoLiuStatus(askText);
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// private void uploadXiaoChuangStatus(String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("#小窗状态上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+65+0+4+end";
|
|
|
|
+//// log.info(">>小窗状态上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// //发送湿度请求到消息队列
|
|
|
|
+//// producer.sendXiaoChuangStatus(askText);
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// private void uploadJiaReQiStatus(String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("#加热状态上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+64+0+4+end";
|
|
|
|
+//// log.info(">>加热温度上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// //发送湿度请求到消息队列
|
|
|
|
+//// producer.sendJiaReStatus(askText);
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// private void uploadDianBiao(String[] dataArray, String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("#电表上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+32+0+4+end";
|
|
|
|
+//// log.info(">>电表上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// //发送湿度请求到消息队列
|
|
|
|
+//// producer.sendDianBiaoData(askText);
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// private void uploadShuiBiao(String[] dataArray, String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("#水表上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+31+0+4+end";
|
|
|
|
+//// log.info(">>水表温度上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// //发送湿度请求到消息队列
|
|
|
|
+//// producer.sendShuiBiaoData(askText);
|
|
|
|
+//// }
|
|
|
|
+//// private void uploadWeiZhiTemp(String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("##位置温度上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+9+0+4+end";
|
|
|
|
+//// log.info(">>位置温度上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// //发送湿度请求到消息队列
|
|
|
|
+//// producer.sendWeiZhi(askText);
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// private void uploadShuiNuanTemp(String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+////
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("##水暖上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+8+0+4+end";
|
|
|
|
+//// log.info(">>水暖上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// //发送湿度请求到消息队列
|
|
|
|
+//// producer.sendShuiNuan(askText);
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// private void uploadStatusWaraning(String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("##状态报警上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+42+0+2+end";
|
|
|
|
+//// log.info(">>状态报警上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// //发送湿度请求到消息队列
|
|
|
|
+//// producer.sendWarning(askText);
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// private void uploadYaLi(String[] dataArray, String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("##压力 上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+24+0+8+end";
|
|
|
|
+//// log.info(">>压力 等级上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// //发送湿度请求到消息队列
|
|
|
|
+//// producer.sendYaLi(askText);
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// private void uploadCo2(String[] dataArray, String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("##CO2 上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// //TODO
|
|
|
|
+//// String answerText = "hm+23+0+8+end";
|
|
|
|
+//// log.info(">>CO2 等级上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// //发送湿度请求到消息队列
|
|
|
|
+//// producer.sendCo2(askText);
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// private void uploadGainDayAgePeizhiuStatus(String[] dataArray,String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// try {
|
|
|
|
+//// String originalValue =cmdProService.getDayAgePeiZhi(dataArray,idCode);
|
|
|
|
+//// String answerText ="hm+91+1+"+originalValue+"+0+end";
|
|
|
|
+//// if (StringUtils.isNotBlank(originalValue)){
|
|
|
|
+//// answerText = "hm+91+0+"+originalValue+"+0+end";
|
|
|
|
+//// log.info(">>获取日龄配置上传请求-应答数据>>" + answerText);
|
|
|
|
+//// }else {
|
|
|
|
+//// log.info("该设备没有设置日龄配置>>" );
|
|
|
|
+//// }
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// }catch (Exception e){
|
|
|
|
+//// System.out.println(e);
|
|
|
|
+//// }
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// private void uploadGainTongFengPeizhiuStatus(String[] dataArray,String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// try {
|
|
|
|
+//// String originalValue = cmdProService.getFengPeiZhi(dataArray);
|
|
|
|
+//// String answerText ="hm+92+1"+originalValue+"+0+end";
|
|
|
|
+//// if (StringUtils.isNotBlank(originalValue)) {
|
|
|
|
+//// answerText = "hm+92+0+" + originalValue + "+0+end";
|
|
|
|
+//// log.info(">>获取通风等级配置上传请求-应答数据>>" + answerText);
|
|
|
|
+//// } else {
|
|
|
|
+//// log.info("该设备没有设置获取通风等级配置>>");
|
|
|
|
+//// }
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// }catch (Exception e){
|
|
|
|
+//// System.out.println(e);
|
|
|
|
+//// }
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+////
|
|
|
|
+//// //风机配置
|
|
|
|
+//// private void uploadTongFengPeizhiuStatus(String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// String answerText = "hm+82+0+2+end";
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("##通风配置上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// log.info(">>通风配置上传请求-应答数据>>" + answerText);
|
|
|
|
+//// producer.sendTongFengPeiZhi(askText);
|
|
|
|
+//// }
|
|
|
|
+//// //日龄温度配置上传
|
|
|
|
+//// private void uploadDayAgePeizhiuStatus(String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// String answerText = "hm+81+0+2+end";
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("##日龄温度上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// log.info(">>日龄温度上传请求-应答数据>>" + answerText);
|
|
|
|
+//// producer.sendDayAgePeiZhi(askText);
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// //喷雾
|
|
|
|
+//// private void uploadPengWuStatus(String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("##喷雾状态上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+63+0+2+end";
|
|
|
|
+//// log.info(">>喷雾状态上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// producer.sendPengWuStatus(askText);
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// //湿帘
|
|
|
|
+//// private void uploadShiLianStatus(String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("##湿帘状态上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+62+0+2+end";
|
|
|
|
+//// log.info(">>湿帘状态上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// //湿帘状态请求到消息队列
|
|
|
|
+//// producer.sendShiLianStatus(askText);
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// //获取远程设备编码
|
|
|
|
+//// private void getDeviceCode(String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// System.out.println("==>获取远程设备编码请求:" + askText.trim());
|
|
|
|
+//// //{读取设备编码}
|
|
|
|
+//// String deviceCode = cmdProService.getDeviceCodeByChipId(idCode);
|
|
|
|
+//// log.info("获取远程设备编码请求,芯片id>>" + idCode + " ,deviceCode>>" + deviceCode);
|
|
|
|
+//// if (deviceCode == null) {
|
|
|
|
+//// log.error("该设备未注册,已舍弃请求.");
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+1+0+" + deviceCode + "+0+end";
|
|
|
|
+//// log.info("<<获取远程设备编码请求-应答数据:" + answerText);
|
|
|
|
+////// //{应答指令}
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// cmdProService.updateStatus(idCode);
|
|
|
|
+//// }
|
|
|
|
+//// //时间同步请求
|
|
|
|
+//// private void getServerTime(String askText, String deviceCode, ChannelHandlerContext ctx) throws ParseException {
|
|
|
|
+//// System.out.println("==>时间同步请求:" + askText);
|
|
|
|
+//// String answerText = "hm+2+" + dateUtil.getNowText() + "+4+end";
|
|
|
|
+//// log.info(">>时间同步请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// //日龄
|
|
|
|
+//// private void uploadDayAge(String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("##日龄上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+3+0+4+end";
|
|
|
|
+//// log.info(">>日龄上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// //发送湿度请求到消息队列
|
|
|
|
+//// producer.sendDayAge(askText);
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// private void uploadFeng(String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("##通风等级上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+4+0+4+end";
|
|
|
|
+//// log.info(">>通风等级上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// //发送湿度请求到消息队列
|
|
|
|
+//// producer.sendFeng(askText);
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// private void uploadOutTemp(String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("##舍外温度上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+5+0+4+end";
|
|
|
|
+//// log.info(">>舍外温度上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// //发送湿度请求到消息队列
|
|
|
|
+//// producer.sendOutTemp(askText);
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// private void uploadInTemp(String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("##舍内温度上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+6+0+4+end";
|
|
|
|
+//// log.info(">>舍内温度上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// //发送湿度请求到消息队列
|
|
|
|
+//// producer.sendInTemp(askText);
|
|
|
|
+//// }
|
|
|
|
+//// private void uploadTargetnTemp(String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("##目标温度上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+7+0+4+end";
|
|
|
|
+//// log.info(">>目标温度上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// //发送湿度请求到消息队列
|
|
|
|
+//// producer.senTargetnTemp(askText);
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// private void uploadTemp(String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("##温度上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+21+0+7+end";
|
|
|
|
+//// log.info(">>温度上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// //发送湿度请求到消息队列
|
|
|
|
+//// producer.sendTemp(askText);
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// private void uploadHumi(String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("##湿度度上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+22+0+8+end";
|
|
|
|
+//// log.info(">>湿度上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// //发送湿度请求到消息队列
|
|
|
|
+//// producer.sendHumi(askText);
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// private void uploadWarning(String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("##预警上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+41+0+2+end";
|
|
|
|
+//// log.info(">>预警上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// //发送湿度请求到消息队列
|
|
|
|
+//// producer.sendWarning(askText);
|
|
|
|
+//// }
|
|
|
|
+//// private void uploadFengStatus(String askText, String idCode, ChannelHandlerContext ctx) {
|
|
|
|
+//// if (!cmdProService.isEffectiveDevice(idCode)) {
|
|
|
|
+//// System.out.println("##风机状态上传请求-未注册设备 idCode=" + idCode);
|
|
|
|
+//// return;
|
|
|
|
+//// }
|
|
|
|
+//// String answerText = "hm+61+0+2+end";
|
|
|
|
+//// log.info(">>风机状态上传请求-应答数据>>" + answerText);
|
|
|
|
+//// answerCmd(answerText, ctx);
|
|
|
|
+//// //发送风机状态请求到消息队列
|
|
|
|
+//// producer.uploadFengStatus(askText);
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// //应答
|
|
|
|
+//// public void answerCmd(String answerText, ChannelHandlerContext ctx) {
|
|
|
|
+//// ctx.writeAndFlush(Unpooled.copiedBuffer(answerText.getBytes()));
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// //检查无效耳标
|
|
|
|
+//// public boolean checkValidEarmark(String earmark) {
|
|
|
|
+//// if (earmark.trim().equalsIgnoreCase("ffffffffffffffff") || earmark.trim().equalsIgnoreCase("0000000000000000")) {
|
|
|
|
+//// return true;
|
|
|
|
+//// } else {
|
|
|
|
+//// return false;
|
|
|
|
+//// }
|
|
|
|
+//// }
|
|
|
|
+////
|
|
|
|
+//// //拆分粘包数据
|
|
|
|
+//// public JSONArray parseAskCmdPackage(String text) {
|
|
|
|
+//// String key = "end";
|
|
|
|
+//// Pattern pattern = Pattern.compile(key);
|
|
|
|
+//// Matcher matcher = pattern.matcher(text);
|
|
|
|
+//// int count = 0;
|
|
|
|
+//// while (matcher.find()) {
|
|
|
|
+//// count++;
|
|
|
|
+//// }
|
|
|
|
+//// JSONArray dataJa = new JSONArray();
|
|
|
|
+//// if (count == 1) {
|
|
|
|
+//// dataJa.add(text);
|
|
|
|
+//// } else {
|
|
|
|
+//// for (int a = 0; a < count; a++) {
|
|
|
|
+//// int p1 = text.indexOf("end");
|
|
|
|
+//// dataJa.add(text.substring(0, p1 + 3));
|
|
|
|
+//// text = text.substring(p1 + 3, text.length());
|
|
|
|
+//// }
|
|
|
|
+//// }
|
|
|
|
+//// return dataJa;
|
|
|
|
+//// }
|
|
|
|
+//}
|