|
|
|
@ -138,7 +138,8 @@ public class NettyClient { |
|
|
|
|
|
|
|
//发送消息 |
|
|
|
public void sendMsgToUpper(boolean request, String uuid, String xml) { |
|
|
|
if (client != null && !StringUtil.isNullOrEmpty(xml)) { |
|
|
|
log.info("###### 会话:{}, 向上级系统发送消息:{} ######\n{}", uuid, xml); |
|
|
|
if (client != null) { |
|
|
|
ByteBuf byteBuf = Unpooled.copiedBuffer(xml, CharsetUtil.UTF_8); |
|
|
|
int length = byteBuf.readableBytes(); |
|
|
|
ByteBuf allBuf = Unpooled.buffer(length + ConfigType.dataLength); |
|
|
|
@ -233,7 +234,6 @@ public class NettyClient { |
|
|
|
case RobotType.robotFz: |
|
|
|
case RobotType.robotIr: |
|
|
|
case RobotType.robotPtz: |
|
|
|
// json = downXml2Json.RobotControlXml2Json(xml); |
|
|
|
json = downXml2Json.DownStreamJson2Xml(binaryModel.uuid, binaryModel.id, xml, RobotControl.class); |
|
|
|
break; |
|
|
|
case UAVType.uav: |
|
|
|
@ -241,31 +241,24 @@ public class NettyClient { |
|
|
|
case UAVType.uavKz: |
|
|
|
case UAVType.uavYt: |
|
|
|
case UAVType.nest: |
|
|
|
// json = downXml2Json.UavControlXml2Json(xml); |
|
|
|
json = downXml2Json.DownStreamJson2Xml(binaryModel.uuid, binaryModel.id, xml, RobotControl.class); |
|
|
|
break; |
|
|
|
case TaskType.taskControl: |
|
|
|
// json = downXml2Json.BaseControlXml2Json(xml); |
|
|
|
json = downXml2Json.DownStreamJson2Xml(binaryModel.uuid, binaryModel.id, xml, BaseControl.class); |
|
|
|
break; |
|
|
|
case TaskType.taskSend: |
|
|
|
// json = downXml2Json.TaskSendControlXml2Json(xml); |
|
|
|
json = downXml2Json.DownStreamJson2Xml(binaryModel.uuid, binaryModel.id, xml, TaskSendControl.class); |
|
|
|
break; |
|
|
|
case TaskType.lendonTask: |
|
|
|
// json = downXml2Json.LinkageTaskControlXml2Json(xml); |
|
|
|
json = downXml2Json.DownStreamJson2Xml(binaryModel.uuid, binaryModel.id, xml, LinkageTaskControl.class); |
|
|
|
break; |
|
|
|
case TaskType.taskArea: |
|
|
|
// json = downXml2Json.AreaControlXml2Json(xml); |
|
|
|
json = downXml2Json.DownStreamJson2Xml(binaryModel.uuid, binaryModel.id, xml, AreaControl.class); |
|
|
|
break; |
|
|
|
case ModelType.modelSync: |
|
|
|
// json = downXml2Json.BaseControlXml2Json(xml); |
|
|
|
json = downXml2Json.DownStreamJson2Xml(binaryModel.uuid, binaryModel.id, xml, BaseControl.class); |
|
|
|
break; |
|
|
|
case QueryType.queryResult: |
|
|
|
// json = downXml2Json.ResultControlXml2Json(xml); |
|
|
|
json = downXml2Json.DownStreamJson2Xml(binaryModel.uuid, binaryModel.id, xml, ResultControl.class); |
|
|
|
break; |
|
|
|
default: |
|
|
|
@ -287,7 +280,7 @@ public class NettyClient { |
|
|
|
Result body = ajaxResultResponseEntity.getBody(); |
|
|
|
|
|
|
|
if (null == body) { |
|
|
|
log.error("接收上级系统下发的指令,转发到应用业务端处理后,返回的响应体为空"); |
|
|
|
log.info("接收上级系统下发的指令,转发到应用业务端处理后,返回的响应体为空"); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
@ -295,6 +288,11 @@ public class NettyClient { |
|
|
|
String msg = body.getMsg(); |
|
|
|
String data = body.getData(); |
|
|
|
|
|
|
|
if (StringUtils.isBlank(data)) { |
|
|
|
log.info("接收上级系统下发的指令,转发到应用业务端处理后,返回的内容为空"); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
log.info("接收到上级系统下发指令,转发到巡视主机,成功,返回code:{},msg:{},data:{}", bodyCode, msg, data); |
|
|
|
|
|
|
|
// 响应巡视主机 |
|
|
|
@ -461,17 +459,16 @@ public class NettyClient { |
|
|
|
|
|
|
|
public void sendRegisterToUpper() { |
|
|
|
String xml = createRegHeart(false); |
|
|
|
log.info("send register xml to upperServer: {}", xml); |
|
|
|
log.info("###### 向上级系统发送注册消息 ######"); |
|
|
|
sendMsgToUpper(true, "", xml); |
|
|
|
} |
|
|
|
|
|
|
|
public void sendHeartbeatToUpper() { |
|
|
|
String xml = createRegHeart(true); |
|
|
|
log.info("send heartbeat xml to upperServer: {}", xml); |
|
|
|
log.info("###### 向上级系统发送心跳消息 ######"); |
|
|
|
sendMsgToUpper(true, "", xml); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 处理身份 |
|
|
|
* 处理sendcode 为本机 |
|
|
|
@ -495,6 +492,16 @@ public class NettyClient { |
|
|
|
public void sendJsonMessage(String uuid, String json) { |
|
|
|
JSONObject obj = JSONObject.parseObject(json); |
|
|
|
if (obj != null) { |
|
|
|
if(obj.get("device_file_path") != null) { |
|
|
|
String response = createDownResponse(obj); |
|
|
|
String xml = upJson2Xml.UpStreamJson2Xml(response, ModelControl.class); |
|
|
|
xml = xml.replaceAll(deviceAlias, alias); |
|
|
|
|
|
|
|
log.info("###### 会话:{}, 向上级系统发送点位模型上报指令 ######", uuid); |
|
|
|
sendMsgToUpper(true, uuid, xml); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
// 处理身份 |
|
|
|
obj = handleIdentity(obj); |
|
|
|
json = obj.toJSONString(); |
|
|
|
@ -502,84 +509,69 @@ public class NettyClient { |
|
|
|
String xml = null; |
|
|
|
switch (type) { |
|
|
|
case PushType.environment: |
|
|
|
// xml = upJson2Xml.EnvironmentControlJson2Xml(json); |
|
|
|
xml = upJson2Xml.UpStreamJson2Xml(json, EnvironmentControl.class); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送环境数据 ######\n{}", uuid, xml); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送环境数据 ######", uuid); |
|
|
|
break; |
|
|
|
case PushType.alarm: |
|
|
|
// xml = upJson2Xml.AlarmControlJson2Xml(json); |
|
|
|
xml = upJson2Xml.UpStreamJson2Xml(json, AlarmControl.class); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送巡视设备异常告警数据 ######\n{}", uuid, xml); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送巡视设备异常告警数据 ######", uuid); |
|
|
|
break; |
|
|
|
case PushType.analysisAlarm: |
|
|
|
// xml = upJson2Xml.AnalysisControlJson2Xml(json); |
|
|
|
xml = upJson2Xml.UpStreamJson2Xml(json, AnalysisControl.class); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送告警数据 ######\n{}", uuid, xml); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送告警数据 ######", uuid); |
|
|
|
break; |
|
|
|
case PushType.location: |
|
|
|
// xml = upJson2Xml.LocationControlJson2Xml(json); |
|
|
|
xml = upJson2Xml.UpStreamJson2Xml(json, LocationControl.class); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送巡视设备坐标 ######\n{}", uuid, xml); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送巡视设备坐标 ######", uuid); |
|
|
|
break; |
|
|
|
case PushType.monitor: |
|
|
|
// xml = upJson2Xml.MonitorControlJson2Xml(json); |
|
|
|
xml = upJson2Xml.UpStreamJson2Xml(json, MonitorControl.class); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送静默监视告警数据 ######\n{}", uuid, xml); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送静默监视告警数据 ######", uuid); |
|
|
|
break; |
|
|
|
case PushType.nestRunning: |
|
|
|
// xml = upJson2Xml.NestRunningJson2Xml(json); |
|
|
|
xml = upJson2Xml.UpStreamJson2Xml(json, NestRunningControl.class); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送无人机机巢运行数据 ######\n{}", uuid, xml); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送无人机机巢运行数据 ######", uuid); |
|
|
|
break; |
|
|
|
case PushType.nestState: |
|
|
|
// xml = upJson2Xml.NestStateJson2Xml(json); |
|
|
|
xml = upJson2Xml.UpStreamJson2Xml(json, NestStateControl.class); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送无人机机巢状态数据 ######\n{}", uuid, xml); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送无人机机巢状态数据 ######", uuid); |
|
|
|
break; |
|
|
|
case PushType.patrolDeviceState: |
|
|
|
// xml = upJson2Xml.PatrolDeviceStateControlJson2Xml(json); |
|
|
|
xml = upJson2Xml.UpStreamJson2Xml(json, PatrolDeviceStateControl.class); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送巡视设备状态数据 ######\n{}", uuid, xml); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送巡视设备状态数据 ######", uuid); |
|
|
|
break; |
|
|
|
case PushType.patrolDeviceRunning: |
|
|
|
// xml = upJson2Xml.PatrolDeviceRunningControlJson2Xml(json); |
|
|
|
xml = upJson2Xml.UpStreamJson2Xml(json, PatrolDeviceRunningControl.class); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送巡视设备运行数据 ######\n{}", uuid, xml); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送巡视设备运行数据 ######", uuid); |
|
|
|
break; |
|
|
|
case PushType.result: |
|
|
|
// xml = upJson2Xml.TaskResultControlJson2Xml(json); |
|
|
|
xml = upJson2Xml.UpStreamJson2Xml(json, TaskResultControl.class); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送巡视结果 ######\n{}", uuid, xml); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送巡视结果 ######", uuid); |
|
|
|
break; |
|
|
|
case PushType.taskState: |
|
|
|
// xml = upJson2Xml.TaskStateControlJson2Xml(json); |
|
|
|
xml = upJson2Xml.UpStreamJson2Xml(json, TaskStateControl.class); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送任务状态数据 ######\n{}", uuid, xml); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送任务状态数据 ######", uuid); |
|
|
|
break; |
|
|
|
case PushType.total: |
|
|
|
// xml = upJson2Xml.ReportControlJson2Xml(json); |
|
|
|
xml = upJson2Xml.UpStreamJson2Xml(json, ReportControl.class); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送巡视设备统计信息上报 ######\n{}", uuid, xml); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送巡视设备统计信息上报 ######", uuid); |
|
|
|
break; |
|
|
|
case PushType.route: |
|
|
|
// xml = upJson2Xml.RouteControlJson2Xml(json); |
|
|
|
xml = upJson2Xml.UpStreamJson2Xml(json, RouteControl.class); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送巡视路线 ######\n{}", uuid, xml); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送巡视路线 ######", uuid); |
|
|
|
break; |
|
|
|
case SystemType.system: |
|
|
|
// xml = upJson2Xml.ModelJson2Xml(json); |
|
|
|
xml = upJson2Xml.UpStreamJson2Xml(json, ModelControl.class); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送系统数据 ######\n{}", uuid, xml); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送系统数据 ######", uuid); |
|
|
|
break; |
|
|
|
case ModelType.modelUpdate: |
|
|
|
// xml = upJson2Xml.UpdateModelJson2Xml(json); |
|
|
|
//xml = up.ModelJson2Xml(json, UpdateModelControl.class); |
|
|
|
xml = upJson2Xml.UpStreamJson2Xml(json, UpdateModelControl.class); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送模型更新上报指令 ######\n{}", uuid, xml); |
|
|
|
log.info("###### 会话:{}, 向上级系统发送模型更新上报指令 ######", uuid); |
|
|
|
break; |
|
|
|
default: |
|
|
|
log.info("###### 会话:{}, 应用向上级系统发送消息, 类型: [{}] 不在处理范围内, 不予处理 ######", uuid, type); |
|
|
|
} |
|
|
|
|
|
|
|
if (!StringUtils.isEmpty(xml)) { |
|
|
|
// 将设备别名转换为上级别名 |
|
|
|
xml = xml.replaceAll(deviceAlias, alias); |
|
|
|
|