diff --git a/logs/inspect-tcpserver/info.log b/logs/inspect-tcpserver/info.log index b9cabf0..43e24e7 100644 --- a/logs/inspect-tcpserver/info.log +++ b/logs/inspect-tcpserver/info.log @@ -70,3 +70,12 @@ 18:20:19.597 [main] INFO c.i.t.TcpserverApplicationTests - [logStarting,55] - Starting TcpserverApplicationTests on QYL-HP-ZHAN66 with PID 34856 (started by gabri in E:\qinyl\intellij\src\inspect-tcpserver) 18:20:19.603 [main] INFO c.i.t.TcpserverApplicationTests - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default 18:20:27.444 [main] INFO c.i.t.TcpserverApplicationTests - [logStarted,61] - Started TcpserverApplicationTests in 8.384 seconds (JVM running for 10.432) +18:34:49.982 [main] INFO c.i.t.TcpserverApplicationTests - [logStarting,55] - Starting TcpserverApplicationTests on QYL-HP-ZHAN66 with PID 23296 (started by gabri in E:\qinyl\intellij\src\inspect-tcpserver) +18:34:49.987 [main] INFO c.i.t.TcpserverApplicationTests - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default +18:34:55.407 [main] INFO c.i.t.TcpserverApplicationTests - [logStarted,61] - Started TcpserverApplicationTests in 5.893 seconds (JVM running for 7.794) +18:44:15.140 [main] INFO c.i.t.TcpserverApplicationTests - [logStarting,55] - Starting TcpserverApplicationTests on QYL-HP-ZHAN66 with PID 38280 (started by gabri in E:\qinyl\intellij\src\inspect-tcpserver) +18:44:15.143 [main] INFO c.i.t.TcpserverApplicationTests - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default +18:44:18.485 [main] INFO c.i.t.TcpserverApplicationTests - [logStarted,61] - Started TcpserverApplicationTests in 3.623 seconds (JVM running for 4.61) +18:46:55.872 [main] INFO c.i.t.TcpserverApplicationTests - [logStarting,55] - Starting TcpserverApplicationTests on QYL-HP-ZHAN66 with PID 29220 (started by gabri in E:\qinyl\intellij\src\inspect-tcpserver) +18:46:55.875 [main] INFO c.i.t.TcpserverApplicationTests - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default +18:46:59.051 [main] INFO c.i.t.TcpserverApplicationTests - [logStarted,61] - Started TcpserverApplicationTests in 3.474 seconds (JVM running for 4.421) diff --git a/src/main/java/com/inspect/tcpserver/tcp/DownXml2Json.java b/src/main/java/com/inspect/tcpserver/tcp/DownXml2Json.java index d0877ea..119566c 100644 --- a/src/main/java/com/inspect/tcpserver/tcp/DownXml2Json.java +++ b/src/main/java/com/inspect/tcpserver/tcp/DownXml2Json.java @@ -23,7 +23,7 @@ public class DownXml2Json { this.alias = alias; } - public String DownStreamJson2Xml(String xml, Class clazz) { + public String DownStreamJson2Xml(String id, String xml, Class clazz) { try { XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.alias(alias, clazz); @@ -33,8 +33,8 @@ public class DownXml2Json { T obj = (T) xStream.fromXML(xml); return JSON.toJSONString(obj); } catch (com.thoughtworks.xstream.XStreamException e) { - logger.error("################ DOWN解析失败[PatrolHost] ################"); - logger.error("################ DOWN异常堆栈 ################\n{}", ExceptionUtils.getStackTrace(e)); + logger.error("################ 客户: {}, DOWN解析失败[PatrolHost] ################", id); + logger.error("################ 客户: {}, DOWN异常堆栈 ################\n{}", id, ExceptionUtils.getStackTrace(e)); try { XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.alias(deviceAlias, clazz); @@ -44,8 +44,8 @@ public class DownXml2Json { T obj = (T) xStream.fromXML(xml); return JSON.toJSONString(obj); } catch (com.thoughtworks.xstream.XStreamException ex) { - logger.error("################ DOWN解析失败[PatrolDevice] ################"); - logger.error("################ DOWN异常堆栈 ################\n{}", ExceptionUtils.getStackTrace(ex)); + logger.error("################ 客户: {}, DOWN解析失败[PatrolDevice] ################", id); + logger.error("################ 客户: {}, DOWN异常堆栈 ################\n{}", id, ExceptionUtils.getStackTrace(ex)); return null; } } diff --git a/src/main/java/com/inspect/tcpserver/tcp/MyDecoder.java b/src/main/java/com/inspect/tcpserver/tcp/MyDecoder.java index 583d55e..909381b 100644 --- a/src/main/java/com/inspect/tcpserver/tcp/MyDecoder.java +++ b/src/main/java/com/inspect/tcpserver/tcp/MyDecoder.java @@ -28,7 +28,7 @@ public class MyDecoder extends ByteToMessageDecoder { } ByteBuf forPrint = in.copy(); - log.info("################ 上行原始报文 ################ \n {}", ByteBufUtil.hexDump(forPrint)); + log.info("################ 客户: {}, 上行原始报文 ################ \n {}", ctx.channel().id().asShortText(), ByteBufUtil.hexDump(forPrint)); int index; String flag; diff --git a/src/main/java/com/inspect/tcpserver/tcp/NettyClient.java b/src/main/java/com/inspect/tcpserver/tcp/NettyClient.java index 629f657..4f48995 100644 --- a/src/main/java/com/inspect/tcpserver/tcp/NettyClient.java +++ b/src/main/java/com/inspect/tcpserver/tcp/NettyClient.java @@ -463,64 +463,64 @@ public class NettyClient { switch (type) { case PushType.environment: xml = upJson2Xml.EnvironmentControlJson2Xml(json); - logger.info("向上级系统发送环境数据。{}", xml); + logger.info("################ 向上级系统发送环境数据 ################\n{}", xml); break; case PushType.alarm: xml = upJson2Xml.AlarmControlJson2Xml(json); - logger.info("向上级系统发送巡视设备异常告警数据。{}", xml); + logger.info("################ 向上级系统发送巡视设备异常告警数据 ################\n{}", xml); break; case PushType.analysisAlarm: xml = upJson2Xml.AnalysisControlJson2Xml(json); - logger.info("向上级系统发送告警数据。{}", xml); + logger.info("################ 向上级系统发送告警数据 ################\n{}", xml); break; case PushType.location: xml = upJson2Xml.LocationControlJson2Xml(json); - logger.info("向上级系统发送巡视设备坐标。{}", xml); + logger.info("################ 向上级系统发送巡视设备坐标 ################\n{}", xml); break; case PushType.monitor: xml = upJson2Xml.MonitorControlJson2Xml(json); - logger.info("向上级系统发送静默监视告警数据。{}", xml); + logger.info("################ 向上级系统发送静默监视告警数据 ################\n{}", xml); break; case PushType.nestRunning: xml = upJson2Xml.NestRunningJson2Xml(json); - logger.info("向上级系统发送无人机机巢运行数据。{}", xml); + logger.info("################ 向上级系统发送无人机机巢运行数据 ################\n{}", xml); break; case PushType.nestState: xml = upJson2Xml.NestStateJson2Xml(json); - logger.info("向上级系统发送无人机机巢状态数据。{}", xml); + logger.info("################ 向上级系统发送无人机机巢状态数据 ################\n{}", xml); break; case PushType.patrolDeviceState: xml = upJson2Xml.PatrolDeviceStateControlJson2Xml(json); - logger.info("向上级系统发送巡视设备状态数据。{}", xml); + logger.info("################ 向上级系统发送巡视设备状态数据 ################\n{}", xml); break; case PushType.patrolDeviceRunning: xml = upJson2Xml.PatrolDeviceRunningControlJson2Xml(json); - logger.info("向上级系统发送巡视设备运行数据。{}", xml); + logger.info("################ 向上级系统发送巡视设备运行数据 ################\n{}", xml); break; case PushType.result: xml = upJson2Xml.TaskResultControlJson2Xml(json); - logger.info("向上级系统发送巡视结果。{}", xml); + logger.info("################ 向上级系统发送巡视结果 ################\n{}", xml); break; case PushType.taskState: xml = upJson2Xml.TaskStateControlJson2Xml(json); - logger.info("向上级系统发送任务状态数据。{}", xml); + logger.info("################ 向上级系统发送任务状态数据 ################\n{}", xml); break; case PushType.total: xml = upJson2Xml.ReportControlJson2Xml(json); - logger.info("向上级系统发送巡视设备统计信息上报。{}", xml); + logger.info("################ 向上级系统发送巡视设备统计信息上报 ################\n{}", xml); break; case PushType.route: xml = upJson2Xml.RouteControlJson2Xml(json); - logger.info("向上级系统发送巡视路线。{}", xml); + logger.info("################ 向上级系统发送巡视路线 ################\n{}", xml); break; case SystemType.system: xml = upJson2Xml.ModelJson2Xml(json); - logger.info("向上级系统发送系统数据。{}", xml); + logger.info("################ 向上级系统发送系统数据 ################\n{}", xml); break; case ModelType.modelUpdate: xml = upJson2Xml.UpdateModelJson2Xml(json); //xml = up.ModelJson2Xml(json, UpdateModelControl.class); - logger.info("向上级系统发送模型更新上报指令。{}", xml); + logger.info("################ 向上级系统发送模型更新上报指令 ################\n{}", xml); break; default: logger.warn("应用向上级系统发送消息,type:{}不在处理范围内,不予处理", type); diff --git a/src/main/java/com/inspect/tcpserver/tcp/NettyServer.java b/src/main/java/com/inspect/tcpserver/tcp/NettyServer.java index b4b6105..24078e2 100644 --- a/src/main/java/com/inspect/tcpserver/tcp/NettyServer.java +++ b/src/main/java/com/inspect/tcpserver/tcp/NettyServer.java @@ -155,7 +155,7 @@ public class NettyServer { allBuf.writeByte(0x90); redisTemplate.opsForValue().set(String.valueOf(sendIndex), allBuf.toString(CharsetUtil.US_ASCII), 60L, TimeUnit.SECONDS); nettyServerHandler.sendMsg(tcpClientMap.get(client), allBuf); - logger.info("################ 向设备端机器人发送消息会话序列号: {}, 接收端序列号: {}, 消息体: ################ \n {}", sendIndex, receiveIndex, xml); + logger.info("################ 客户: {}, 向设备端机器人发送消息会话序列号: {}, 接收端序列号: {}, 消息体: ################\n{}", client, sendIndex, receiveIndex, xml); sendIndex++; } else { logger.warn("################ 设备端机器人: [{}] 离线!!! ################", client); @@ -201,7 +201,7 @@ public class NettyServer { command = Integer.parseInt(root.element("Command").getText()); } - logger.info("################ 消息类型: {}, 消息体: ################ \n{}", type, xml); + logger.info("################ 客户: {}, 消息类型: {}, 消息体: ################ \n{}", binaryModel.id, type, xml); //判断是否重发 if (type == SystemType.system) { if (command == SystemType.has_response || command == SystemType.no_response) { @@ -218,12 +218,12 @@ public class NettyServer { switch (command) { case SystemType.register_request: // 收到接入侧注册信息 - logger.info("################ 客户端注册信息 ################ \n {} ", xml); + logger.info("################ 客户: {}, 客户端注册信息 ################ \n {} ", binaryModel.id, xml); dealRegister(xml); break; case SystemType.heart_request: // 处理心跳请求响应 - logger.info("################ 客户端心跳 ################ \n {} ", xml); + logger.info("################ 客户: {}, 客户端心跳 ################ \n {} ", binaryModel.id, xml); sendHeartBeat(xml); break; case SystemType.has_response: @@ -232,8 +232,9 @@ public class NettyServer { // 处理设备上报的模型同步响应 if (null != root.element("Items").element("Item").attribute("device_file_path")) { // 收到接入侧模型同步数据 - logger.info("################ 客户端模型同步数据 ################ \n {} ", xml); - json = downXml2Json.ModelControlXml2Json(xml); + logger.info("################ 客户: {}, 客户端模型同步数据 ################ \n{}", binaryModel.id, xml); +// json = downXml2Json.ModelControlXml2Json(xml); + json = downXml2Json.DownStreamJson2Xml(binaryModel.id, xml, ModelControl.class); JSONObject jsonObject = JSONObject.parseObject(json); jsonObject.put("Type", Constant.MODEL_UP_TYPE); rabbitTemplate.convertAndSend(Constant.EX_CHANGE_NAME, Constant.ROUTING_KEY_NAME, jsonObject.toJSONString()); @@ -241,8 +242,9 @@ public class NettyServer { // 任务控制响应任务执行ID if (null != root.element("Items").element("Item").attribute("task_patrolled_id")) { // 收到接入侧任务下发或控制回复数据 - logger.info("[NETTY] 设备端任务下发或控制回复数据: {}", xml); - json = downXml2Json.ModelControlXml2Json(xml); + logger.info("################ 客户: {}, 设备端任务下发或控制回复数据 ################\n{}", binaryModel.id, xml); +// json = downXml2Json.ModelControlXml2Json(xml); + json = downXml2Json.DownStreamJson2Xml(binaryModel.id, xml, ModelControl.class); JSONObject jsonObject = JSONObject.parseObject(json); jsonObject.put("SendCode", ""); clientController.sendMsg(jsonObject.toJSONString()); @@ -254,62 +256,62 @@ public class NettyServer { break; default: // 接收到的系统类信息报文中,command:{},不在处理范围内,不予处理 - logger.warn("[NETTY] 非法的消息不予处理 CMD: {}, BODY: {}", command, xml); + logger.warn("################ 非法的消息不予处理, 客户: {}, 命令: {}, 消息体 ################ \n{}", binaryModel.id, command, xml); } break; case PushType.patrolDeviceState: // json = downXml2Json.PatrolDeviceStateControlXml2Json(xml); - json = downXml2Json.DownStreamJson2Xml(xml, PatrolDeviceStateControl.class); - logger.info("################ 客户端设备状态数据 ################ \n{}", json); + json = downXml2Json.DownStreamJson2Xml(binaryModel.id, xml, PatrolDeviceStateControl.class); + logger.info("################ 客户: {}, 客户端设备状态数据 ################ \n{}", binaryModel.id, json); break; case PushType.patrolDeviceRunning: // json = downXml2Json.PatrolDeviceRunningControlXml2Json(xml); - json = downXml2Json.DownStreamJson2Xml(xml, PatrolDeviceRuningControl.class); - logger.info("################ 客户端设备运行数据 ################ \n{}", json); + json = downXml2Json.DownStreamJson2Xml(binaryModel.id, xml, PatrolDeviceRuningControl.class); + logger.info("################ 客户: {}, 客户端设备运行数据 ################ \n{}", binaryModel.id, json); break; case PushType.nestState: // json = downXml2Json.NestStateControlXml2Json(xml); - json = downXml2Json.DownStreamJson2Xml(xml, NestStateControl.class); - logger.info("################ 客户端机巢状态数据 ################ \n{}", json); + json = downXml2Json.DownStreamJson2Xml(binaryModel.id, xml, NestStateControl.class); + logger.info("################ 客户: {}, 客户端机巢状态数据 ################ \n{}", binaryModel.id, json); break; case PushType.nestRunning: // json = downXml2Json.NestRunningControlXml2Json(xml); - json = downXml2Json.DownStreamJson2Xml(xml, NestRuningControl.class); - logger.info("################ 客户端机巢运行数据 ################ \n{}", json); + json = downXml2Json.DownStreamJson2Xml(binaryModel.id, xml, NestRuningControl.class); + logger.info("################ 客户: {}, 客户端机巢运行数据 ################ \n{}", binaryModel.id, json); break; case PushType.location: // json = downXml2Json.LocationControlXml2Json(xml); - json = downXml2Json.DownStreamJson2Xml(xml, LocationControl.class); - logger.info("################ 客户端设备坐标 ################ \n{}", json); + json = downXml2Json.DownStreamJson2Xml(binaryModel.id, xml, LocationControl.class); + logger.info("################ 客户: {}, 客户端设备坐标 ################ \n{}", binaryModel.id, json); break; case PushType.route: // json = downXml2Json.RouteControlXml2Json(xml); - json = downXml2Json.DownStreamJson2Xml(xml, RouteControl.class); - logger.info("################ 客户端设备路线 ################ \n{}", json); + json = downXml2Json.DownStreamJson2Xml(binaryModel.id, xml, RouteControl.class); + logger.info("################ 客户: {}, 客户端设备路线 ################ \n{}", binaryModel.id, json); break; case PushType.alarm: // json = down.AlarmControlXml2Json(xml); - json = downXml2Json.DownStreamJson2Xml(xml, AlarmControl.class); - logger.info("################ 客户端设备异常告警 ################ \n{}", json); + json = downXml2Json.DownStreamJson2Xml(binaryModel.id, xml, AlarmControl.class); + logger.info("################ 客户: {}, 客户端设备异常告警 ################ \n{}", binaryModel.id, json); break; case PushType.environment: // json = downXml2Json.EnvironmentControlXml2Json(xml); - json = downXml2Json.DownStreamJson2Xml(xml, EnvironmentControl.class); - logger.info("################ 客户端设备上报环境数据 ################ \n{}", json); + json = downXml2Json.DownStreamJson2Xml(binaryModel.id, xml, EnvironmentControl.class); + logger.info("################ 客户: {}, 客户端设备上报环境数据 ################ \n{}", binaryModel.id, json); break; case PushType.taskState: // json = downXml2Json.TaskStateControlXml2Json(xml); - json = downXml2Json.DownStreamJson2Xml(xml, TaskStateControl.class); - logger.info("################ 客户端设备任务状态 ################ \n{}", json); + json = downXml2Json.DownStreamJson2Xml(binaryModel.id, xml, TaskStateControl.class); + logger.info("################ 客户: {}, 客户端设备任务状态 ################ \n{}", binaryModel.id, json); break; case PushType.result: // json = downXml2Json.TaskResultControlXml2Json(xml); - json = downXml2Json.DownStreamJson2Xml(xml, TaskResultControl.class); - logger.info("################ 客户端巡视结果 ################ \n{}", json); + json = downXml2Json.DownStreamJson2Xml(binaryModel.id, xml, TaskResultControl.class); + logger.info("################ 客户: {}, 客户端巡视结果 ################ \n{}", binaryModel.id, json); break; default: // server-handle-接收到的type:{},不在处理范围内,不予处理 - logger.info("################ 非法的消息不予处理, 类型{}, 消息体 ################ \n {}", type, xml); + logger.info("################ 客户: {}, 非法的消息不予处理, 类型{}, 消息体 ################ \n {}", binaryModel.id, type, xml); } if (type != SystemType.system && !StringUtil.isNullOrEmpty(json)) { //rabbitmq推送到消息队列中基于springboot_xggd diff --git a/src/main/java/com/inspect/tcpserver/tcp/NettyServerHandler.java b/src/main/java/com/inspect/tcpserver/tcp/NettyServerHandler.java index 3819dfd..e048ca5 100644 --- a/src/main/java/com/inspect/tcpserver/tcp/NettyServerHandler.java +++ b/src/main/java/com/inspect/tcpserver/tcp/NettyServerHandler.java @@ -23,7 +23,7 @@ public class NettyServerHandler extends ChannelInboundHandlerAdapter { public void sendMsg(String id, ByteBuf byteBuf) { if (ids.containsKey(id)) { ByteBuf forPrint = byteBuf.copy(); - logger.info("################ 下行原始报文 ################\n [{}]", ByteBufUtil.hexDump(forPrint)); + logger.info("################ 客户: {}, 下行原始报文 ################\n [{}]", id, ByteBufUtil.hexDump(forPrint)); ids.get(id).writeAndFlush(byteBuf); } }