Browse Source

/*发送日志整理。*/

master
htjcAdmin 9 months ago
parent
commit
904b83a915
6 changed files with 63 additions and 52 deletions
  1. +9
    -0
      logs/inspect-tcpserver/info.log
  2. +5
    -5
      src/main/java/com/inspect/tcpserver/tcp/DownXml2Json.java
  3. +1
    -1
      src/main/java/com/inspect/tcpserver/tcp/MyDecoder.java
  4. +15
    -15
      src/main/java/com/inspect/tcpserver/tcp/NettyClient.java
  5. +32
    -30
      src/main/java/com/inspect/tcpserver/tcp/NettyServer.java
  6. +1
    -1
      src/main/java/com/inspect/tcpserver/tcp/NettyServerHandler.java

+ 9
- 0
logs/inspect-tcpserver/info.log View File

@ -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)

+ 5
- 5
src/main/java/com/inspect/tcpserver/tcp/DownXml2Json.java View File

@ -23,7 +23,7 @@ public class DownXml2Json {
this.alias = alias;
}
public <T> String DownStreamJson2Xml(String xml, Class<T> clazz) {
public <T> String DownStreamJson2Xml(String id, String xml, Class<T> 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;
}
}


+ 1
- 1
src/main/java/com/inspect/tcpserver/tcp/MyDecoder.java View File

@ -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;


+ 15
- 15
src/main/java/com/inspect/tcpserver/tcp/NettyClient.java View File

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


+ 32
- 30
src/main/java/com/inspect/tcpserver/tcp/NettyServer.java View File

@ -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


+ 1
- 1
src/main/java/com/inspect/tcpserver/tcp/NettyServerHandler.java View File

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


Loading…
Cancel
Save