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 <T> String UpStreamJson2Xml(String json, Class<T> 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;
|
|
}
|
|
}
|