package com.inspect.tcpserver.tcp; import com.alibaba.fastjson.JSON; import com.inspect.tcpserver.util.Color; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.naming.NoNameCoder; import com.thoughtworks.xstream.io.xml.Xpp3Driver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class UpJson2Xml { private final Logger logger = LoggerFactory.getLogger(DownXml2Json.class); private String deviceAlias = "PatrolDevice"; public String getAlias() { return alias; } public void setAlias(String alias) { this.alias = alias; } /** * 默认为对上级的客户端的别名 */ private String alias; public UpJson2Xml(String alias) { // 设备接入服务 this.alias = alias; } public String UpStreamJson2Xml(String json, Class clazz) { try { XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, clazz); T obj = JSON.parseObject(json, clazz); return xStream.toXML(obj); } catch (com.thoughtworks.xstream.XStreamException e) { try { XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(deviceAlias, clazz); T obj = JSON.parseObject(json, clazz); return xStream.toXML(obj); } catch (com.thoughtworks.xstream.XStreamException ex) { logger.error(Color.RED + "###### UpStreamJson2Xml解析失败:{} ######" + Color.END, ex.getMessage()); return null; } } } //模型更新上报指令 public String UpdateModelJson2Xml(String json) { UpdateModelControl obj = JSON.parseObject(json, UpdateModelControl.class); XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, UpdateModelControl.class); String resultXML = xStream.toXML(obj); return resultXML; } //任务控制和模型同步 public String ResponseJson2Xml(String json) { ResponseControl obj = JSON.parseObject(json, ResponseControl.class); XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, ResponseControl.class); obj.Items = ""; String resultXML = xStream.toXML(obj); return resultXML; } //模型同步 public String ModelJson2Xml(String json) { BaseControl obj = JSON.parseObject(json, ModelControl.class); XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, ModelControl.class); String resultXML = xStream.toXML(obj); return resultXML; } //机器人控制指令 public String RobotJson2Xml(String json) { RobotControl obj = JSON.parseObject(json, RobotControl.class); XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, RobotControl.class); String resultXML = xStream.toXML(obj); return resultXML; } //无人机控制指令 public String UavControlJson2Xml(String json) { RobotControl obj = JSON.parseObject(json, RobotControl.class); XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, RobotControl.class); String resultXML = xStream.toXML(obj); return resultXML; } //任务下发指令 public String TaskSendJson2Xml(String json) { TaskSendControl obj = JSON.parseObject(json, TaskSendControl.class); XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, TaskSendControl.class); String resultXML = xStream.toXML(obj); return resultXML; } //联动任务下发指令 public String LinkageTaskJson2Xml(String json) { LinkageTaskControl obj = JSON.parseObject(json, LinkageTaskControl.class); XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, LinkageTaskControl.class); String resultXML = xStream.toXML(obj); return resultXML; } //检修区域指令 public String AreaJson2Xml(String json) { AreaControl obj = JSON.parseObject(json, AreaControl.class); XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, AreaControl.class); String resultXML = xStream.toXML(obj); return resultXML; } //-----------------------------------------上行数据----------------------------------// //巡视设备状态数据 public String PatrolDeviceStateControlJson2Xml(String json) { PatrolDeviceStateControl obj = JSON.parseObject(json, PatrolDeviceStateControl.class); XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, PatrolDeviceStateControl.class); String resultXML = xStream.toXML(obj); return resultXML; } //巡视设备运行数据 public String PatrolDeviceRunningControlJson2Xml(String json) { PatrolDeviceRunningControl obj = JSON.parseObject(json, PatrolDeviceRunningControl.class); XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, PatrolDeviceRunningControl.class); String resultXML = xStream.toXML(obj); return resultXML; } //无人机机巢状态数据 public String NestStateJson2Xml(String json) { NestStateControl obj = JSON.parseObject(json, NestStateControl.class); XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, NestStateControl.class); String resultXML = xStream.toXML(obj); return resultXML; } //无人机机巢运行数据 public String NestRunningJson2Xml(String json) { NestRunningControl obj = JSON.parseObject(json, NestRunningControl.class); XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, NestRunningControl.class); String resultXML = xStream.toXML(obj); return resultXML; } //巡视设备坐标 public String LocationControlJson2Xml(String json) { LocationControl obj = JSON.parseObject(json, LocationControl.class); XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, LocationControl.class); String resultXML = xStream.toXML(obj); return resultXML; } //巡视路线 public String RouteControlJson2Xml(String json) { RouteControl obj = JSON.parseObject(json, RouteControl.class); XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, RouteControl.class); String resultXML = xStream.toXML(obj); return resultXML; } //巡视设备异常告警数据 public String AlarmControlJson2Xml(String json) { AlarmControl obj = JSON.parseObject(json, AlarmControl.class); XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, AlarmControl.class); String resultXML = xStream.toXML(obj); return resultXML; } //环境数据 public String EnvironmentControlJson2Xml(String json) { EnvironmentControl obj = JSON.parseObject(json, EnvironmentControl.class); XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, EnvironmentControl.class); String resultXML = xStream.toXML(obj); return resultXML; } //任务状态数据 public String TaskStateControlJson2Xml(String json) { TaskStateControl obj = JSON.parseObject(json, TaskStateControl.class); XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, TaskStateControl.class); String resultXML = xStream.toXML(obj); return resultXML; } //巡视结果 public String TaskResultControlJson2Xml(String json) { TaskResultControl obj = JSON.parseObject(json, TaskResultControl.class); XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, TaskResultControl.class); String resultXML = xStream.toXML(obj); return resultXML; } //静默监视告警数据 public String MonitorControlJson2Xml(String json) { MonitorControl obj = JSON.parseObject(json, MonitorControl.class); XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, MonitorControl.class); String resultXML = xStream.toXML(obj); return resultXML; } //巡视设备统计信息上报 public String ReportControlJson2Xml(String json) { ReportControl obj = JSON.parseObject(json, ReportControl.class); XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, ReportControl.class); String resultXML = xStream.toXML(obj); return resultXML; } //巡检告警数据 public String AnalysisControlJson2Xml(String json) { AnalysisControl obj = JSON.parseObject(json, AnalysisControl.class); XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())); xStream.autodetectAnnotations(true); xStream.alias(alias, AnalysisControl.class); String resultXML = xStream.toXML(obj); return resultXML; } }