tplink接口优化

This commit is contained in:
曹磊 2026-03-06 17:54:18 +08:00
parent 9723fbb2af
commit a5d8e8d340
7 changed files with 785 additions and 193 deletions

View File

@ -188,6 +188,18 @@ public class CameraInfoController extends JeecgController<CameraInfo, ICameraInf
return service.getIpcCapability(cameraInfo);
}
/**
* 获取设备详情信息
*
* @param cameraInfo
* @return
*/
@GetMapping(value = "/getDeviceDetails")
public Result<JSONObject> getDeviceDetails(CameraInfo cameraInfo) {
return service.getDeviceDetails(cameraInfo);
}
/**
* 获取画面基本信息
*
@ -210,6 +222,28 @@ public class CameraInfoController extends JeecgController<CameraInfo, ICameraInf
return service.setImageCommon(map);
}
/**
* 获取画面操作信息
*
* @param map
* @return
*/
@PostMapping(value = "/getImageSwitch")
public Result<JSONObject> getImageSwitch(@RequestBody Map<String,Object> map) {
return service.getImageSwitch(map);
}
/**
* 设置画面操作信息
*
* @param map
* @return
*/
@PostMapping(value = "/setImageSwitch")
public Result setImageSwitch(@RequestBody Map<String,Object> map) {
return service.setImageSwitch(map);
}
/**
* 获取OSD能力集
*

View File

@ -326,6 +326,7 @@ public class CameraInfo implements Serializable {
private String remarks;//备注
private String izAllocate;//是否分配
private String dimension;//设备维度
private String channel;//通道号
@TableField(exist = false)
private String routeType;//camera监控设备 network网络设备

View File

@ -41,7 +41,8 @@
a.maintain_status,
a.remarks,
a.iz_allocate,
a.dimension
a.dimension,
a.channel
from nu_iot_tplink_camera a left join nu_base_info b on a.nu_id = b.nu_id
left join nu_iot_tplink_camera_capability c on a.device_index = c.device_index
<where>
@ -126,7 +127,8 @@
a.ftp_uploadpath as ftpUploadpath,
a.remarks,
a.iz_allocate,
a.dimension
a.dimension,
a.channel
from nu_iot_tplink_camera a left join nu_base_info b on a.nu_id = b.nu_id
<where>
<if test="projectId != null and projectId != ''">
@ -173,7 +175,8 @@
ftp_uploadpath as ftpUploadpath,
a.remarks,
a.iz_allocate,
a.dimension
a.dimension,
a.channel
from nu_iot_tplink_camera a
<where>
<if test="deviceType != null and deviceType != ''">
@ -229,7 +232,8 @@
a.ftp_uploadpath as ftpUploadpath,
a.remarks,
a.iz_allocate,
a.dimension
a.dimension,
a.channel
from nu_iot_tplink_camera a left join nu_base_info b on a.nu_id = b.id
where device_index = #{deviceIndex}
</select>
@ -325,7 +329,10 @@
<update id="updateDeviceStatusByDevId">
UPDATE nu_iot_tplink_camera
SET device_status = #{deviceStatus}
<trim prefix="SET" suffixOverrides=",">
<if test="deviceStatus != null">device_status = #{deviceStatus},</if>
<if test="channel != null">channel = #{channel},</if>
</trim>
where device_index = #{deviceIndex}
</update>
@ -376,7 +383,8 @@
a.ftp_uploadpath as ftpUploadpath,
a.remarks,
a.iz_allocate,
a.dimension
a.dimension,
a.channel
from nu_iot_tplink_camera a
where device_index = #{deviceIndex}
</select>
@ -439,7 +447,8 @@
c.area_flag as areaFlag,
a.remarks,
a.iz_allocate,
a.dimension
a.dimension,
a.channel
from nu_iot_tplink_camera a
left join nu_base_info c on a.nu_id = c.nu_id
<where>
@ -545,7 +554,8 @@
c.area_flag as areaFlag,
a.remarks,
a.iz_allocate,
a.dimension
a.dimension,
a.channel
from nu_iot_tplink_camera a
left join nu_base_info c on a.nu_id = c.nu_id
where a.depart_server_url = #{params.departServerUrl}

View File

@ -31,8 +31,11 @@ public interface ICameraInfoService extends IService<CameraInfo> {
Result<String> syncDevicesStatus(CameraInfo cameraInfo);
Result<String> syncProjectIpcDevice(CameraInfo cameraInfo);
Result<JSONObject> getIpcCapability(CameraInfo cameraInfo);
Result<JSONObject> getDeviceDetails(CameraInfo cameraInfo);
Result<JSONObject> getImageCommon(Map<String,Object> map);
Result setImageCommon(Map<String,Object> map);
Result<JSONObject> getImageSwitch(Map<String,Object> map);
Result setImageSwitch(Map<String,Object> map);
Result<JSONObject> getOsdCapability(Map<String,Object> map);
Result<JSONObject> getOsd(Map<String,Object> map);
Result<String> setOsd(Map<String,Object> map);

View File

@ -116,7 +116,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
String jsonRes = tumsApi.modifyDeviceDetails(sb.toString());
JSONObject jsonObject = new JSONObject(jsonRes);
if(jsonObject.getInt("error_code").equals(0)){
return Result.OK();
return Result.OK("编辑成功");
}else{
return Result.error(jsonObject.getStr("msg"));
}
@ -156,7 +156,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
String jsonRes = tumsApi.rebootDeviceList(sb.toString());
JSONObject jsonObject = new JSONObject(jsonRes);
if(jsonObject.getInt("error_code").equals(0)){
return Result.OK();
return Result.OK("重启成功");
}else{
return Result.error(jsonObject.getStr("msg"));
}
@ -189,9 +189,15 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
JSONArray list = result.getJSONArray("list");
for(int i=0;i<list.size();i++){
ObjectMapper mapper = new ObjectMapper();
String jsonString = list.get(i).toString();
JSONObject json = (JSONObject)list.get(i);
String jsonString = json.toString();
try {
CameraInfo cameraInfo = mapper.readValue(jsonString, CameraInfo.class);
JSONObject extend = json.getJSONObject("extend");
if(extend!=null){
String channel = extend.getStr("channel");
cameraInfo.setChannel(channel);
}
CameraInfo entity = baseMapper.getByDeviceId(cameraInfo);
if(entity==null){
//新增
@ -419,9 +425,15 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
JSONArray list = result.getJSONArray("list");
for(int i=0;i<list.size();i++){
ObjectMapper mapper = new ObjectMapper();
String jsonString = list.get(i).toString();
JSONObject json = (JSONObject)list.get(i);
String jsonString = json.toString();
try {
CameraInfo cameraInfo = mapper.readValue(jsonString, CameraInfo.class);
JSONObject extend = json.getJSONObject("extend");
if(extend!=null){
String channel = extend.getStr("channel");
cameraInfo.setChannel(channel);
}
CameraInfo entity = baseMapper.getByDeviceId(cameraInfo);
if(entity==null){
//新增
@ -542,6 +554,40 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
return Result.OK(capability);
}
/**
* 接口调用-获取设备详情信息
* @param ci
* @return
*/
@Override
public Result<JSONObject> getDeviceDetails(CameraInfo ci){
String id = ci.getDeviceIndex();
StringBuffer paramsSb = new StringBuffer();
paramsSb.append("{");
paramsSb.append("\"deviceIndex\"").append(":").append("\"").append(id).append("\"");
paramsSb.append("}");
String ipcCapabilityRes = tumsApi.getDeviceDetails(paramsSb.toString());
JSONObject jsonObject = new JSONObject(ipcCapabilityRes);
if(jsonObject.getInt("error_code").equals(0)){
JSONObject json = (JSONObject)jsonObject.get("result");
JSONObject extend = json.getJSONObject("extendInfo");
String channel = extend.getStr("channel");
try {
String deviceIndex = json.getStr("deviceIndex");
String deviceStatus = json.getStr("deviceStatus");
CameraInfo cameraInfo = new CameraInfo();
cameraInfo.setDeviceIndex(deviceIndex);
cameraInfo.setDeviceStatus(deviceStatus);
cameraInfo.setChannel(channel);
baseMapper.updateDeviceStatusByDevId(cameraInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
return Result.OK();
}
/**
* 更新设备在线状态
* @param deviceIndex
@ -572,6 +618,14 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
public Result<JSONObject> getImageCommon(Map<String,Object> map){
String id = map.get("deviceIndex").toString();
String type = map.get("type").toString();
CameraInfo cameraInfo = new CameraInfo();
cameraInfo.setDeviceIndex(id);
cameraInfo = baseMapper.getByDeviceId(cameraInfo);
String parentId = cameraInfo.getParentId();
if(!parentId.equals("0")){
id = parentId;
type = "chn"+cameraInfo.getChannel()+"_common";
}
StringBuffer sb = new StringBuffer();
sb.append("{");
sb.append("\"devId\"").append(":").append("\"").append(id).append("\"").append(",");
@ -631,6 +685,14 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
public Result setImageCommon(Map<String,Object> map){
String id = map.get("deviceIndex").toString();
String type = map.get("type").toString();
CameraInfo cameraInfo = new CameraInfo();
cameraInfo.setDeviceIndex(id);
cameraInfo = baseMapper.getByDeviceId(cameraInfo);
String parentId = cameraInfo.getParentId();
if(!parentId.equals("0")){
id = parentId;
type = "chn"+cameraInfo.getChannel()+"_common";
}
Map<String,Object> paramMap = (Map<String,Object>)map.get("param");
StringBuffer sb = new StringBuffer();
sb.append("{");
@ -691,6 +753,153 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
}
}
/**
* 获取画面操作信息
*
* @param map
* @return
* @throws Exception
*/
@Override
public Result<JSONObject> getImageSwitch(Map<String,Object> map){
String id = map.get("deviceIndex").toString();
String type = map.get("type").toString();
CameraInfo cameraInfo = new CameraInfo();
cameraInfo.setDeviceIndex(id);
cameraInfo = baseMapper.getByDeviceId(cameraInfo);
String parentId = cameraInfo.getParentId();
if(!parentId.equals("0")){
id = parentId;
type = "chn"+cameraInfo.getChannel()+"_switch";
}
StringBuffer sb = new StringBuffer();
sb.append("{");
sb.append("\"devId\"").append(":").append("\"").append(id).append("\"").append(",");
sb.append("\"param\"").append(":").append("{");
sb.append("\"method\"").append(":").append("\"get\"").append(",");
sb.append("\"image\"").append(":").append("{");
sb.append("\"name\"").append(":").append("\"").append(type).append("\"");
sb.append("}");
sb.append("}");
sb.append("}");
String addPreviewRes = tumsApi.passthrough(sb.toString());
JSONObject jsonObject = new JSONObject(addPreviewRes);
String errCode = jsonObject.getStr("error_code");
if("0".equals(errCode)){
JSONObject result = (JSONObject)jsonObject.get("result");
JSONObject responseData = (JSONObject)result.get("responseData");
String errorCode = responseData.getStr("error_code");
if("0".equals(errorCode)){
JSONObject image = (JSONObject)responseData.get("image");
JSONObject data = (JSONObject)image.get(type);
updateDeviceStatus(id,errorCode);
return Result.OK(data);
}else{
String errorMsg = "";
try{
ErrorCode errorVo = errorCodeService.getByCode(errorCode);
errorMsg = errorVo.getErrorMsg();
}catch (Exception e){
errorMsg = errorCode;
}
updateDeviceStatus(id,errorCode);
log.info("getImageCommon:{}",errorMsg);
return Result.error(errorMsg);
}
}else{
String errMsg = "";
try{
ErrorCode errVo = errorCodeService.getByCode(errCode);
errMsg = errVo.getErrorMsg();
}catch (Exception e){
errMsg = errCode;
}
updateDeviceStatus(id,errCode);
log.info("getImageCommon:{}",errMsg);
return Result.error(errMsg);
}
}
/**
* 设置画面操作信息
*
* @param map
* @return
* @throws Exception
*/
@Override
public Result setImageSwitch(Map<String,Object> map){
String id = map.get("deviceIndex").toString();
String type = map.get("type").toString();
CameraInfo cameraInfo = new CameraInfo();
cameraInfo.setDeviceIndex(id);
cameraInfo = baseMapper.getByDeviceId(cameraInfo);
String parentId = cameraInfo.getParentId();
if(!parentId.equals("0")){
id = parentId;
type = "chn"+cameraInfo.getChannel()+"_switch";
}
Map<String,Object> paramMap = (Map<String,Object>)map.get("param");
StringBuffer sb = new StringBuffer();
sb.append("{");
sb.append("\"devId\"").append(":").append("\"").append(id).append("\"").append(",");
sb.append("\"param\"").append(":").append("{");
sb.append("\"method\"").append(":").append("\"set\"").append(",");
sb.append("\"image\"").append(":").append("{");
sb.append("\"").append(type).append("\"").append(":").append("{");
//类属性+类值
StringBuffer csb = new StringBuffer();
Set<String> keys = paramMap.keySet();
// 遍历键的集合并打印每个键
for (String key : keys) {
String value = paramMap.get(key).toString();
csb.append("\"").append(key).append("\"").append(":").append("\"").append(value).append("\"").append(",");
}
String cstr = csb.toString();
if(cstr.length()>0){
cstr = cstr.substring(0,cstr.length()-1);
}
sb.append(cstr);
sb.append("}");
sb.append("}");
sb.append("}");
sb.append("}");
String addPreviewRes = tumsApi.passthrough(sb.toString());
JSONObject jsonObject = new JSONObject(addPreviewRes);
String errCode = jsonObject.getStr("error_code");
if("0".equals(errCode)){
JSONObject result = (JSONObject)jsonObject.get("result");
JSONObject responseData = (JSONObject)result.get("responseData");
String errorCode = responseData.getStr("error_code");
if("0".equals(errorCode)){
return Result.OK("设置成功");
}else{
String errorMsg = "";
try{
ErrorCode errorVo = errorCodeService.getByCode(errorCode);
errorMsg = errorVo.getErrorMsg();
}catch (Exception e){
errorMsg = errorCode;
}
updateDeviceStatus(id,errorCode);
log.info("setImageCommon:{}",errorMsg);
return Result.error(errorMsg);
}
}else{
String errMsg = "";
try{
ErrorCode errVo = errorCodeService.getByCode(errCode);
errMsg = errVo.getErrorMsg();
}catch (Exception e){
errMsg = errCode;
}
updateDeviceStatus(id,errCode);
log.info("setImageCommon:{}",errMsg);
return Result.error(errMsg);
}
}
/**
* 获取OSD能力集参数
*
@ -758,13 +967,30 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
@Override
public Result<JSONObject> getOsd(Map<String,Object> map){
String id = map.get("deviceIndex").toString();
CameraInfo cameraInfo = new CameraInfo();
cameraInfo.setDeviceIndex(id);
cameraInfo = baseMapper.getByDeviceId(cameraInfo);
String parentId = cameraInfo.getParentId();
String font = "font";
String week = "week";
String date = "date";
if(!parentId.equals("0")){
id = parentId;
font = "chn"+cameraInfo.getChannel()+"_font";
week = "chn"+cameraInfo.getChannel()+"_week";
date = "chn"+cameraInfo.getChannel()+"_date";
}
StringBuffer sb = new StringBuffer();
sb.append("{");
sb.append("\"devId\"").append(":").append("\"").append(id).append("\"").append(",");
sb.append("\"param\"").append(":").append("{");
sb.append("\"method\"").append(":").append("\"get\"").append(",");
sb.append("\"OSD\"").append(":").append("{");
sb.append("\"name\"").append(":[").append("\"font\",").append("\"week\",").append("\"date\"").append("],");
sb.append("\"name\"").append(":[");
sb.append("\"").append(font).append("\"").append(",");
sb.append("\"").append(week).append("\"").append(",");
sb.append("\"").append(date).append("\"");
sb.append("],");
sb.append("\"table\"").append(":").append("\"label_info\"");
sb.append("}");
sb.append("}");
@ -778,7 +1004,26 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
String errorCode = responseData.getStr("error_code");
if("0".equals(errorCode)){
JSONObject osd = (JSONObject)responseData.get("OSD");
if(!parentId.equals("0")){
JSONObject res = new JSONObject();
res.set("date",osd.get(date));
res.set("week",osd.get(week));
res.set("font",osd.get(font));
JSONArray label_infos = osd.getJSONArray("label_info");
JSONArray mainEncodeTypeArr = new JSONArray();
for(int i=0;i<label_infos.size();i++){
JSONObject json = new JSONObject();
JSONObject label_info = (JSONObject)label_infos.get(i);
int cn = i+1;
String name = "chn"+cameraInfo.getChannel()+"_"+"label_info_"+cn;
json.set("label_info_"+cn,label_info.get(name));
mainEncodeTypeArr.put(json);
}
res.set("label_info",mainEncodeTypeArr);
return Result.OK(res);
}else{
return Result.OK(osd);
}
}else{
String errorMsg = "";
try{
@ -815,6 +1060,21 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
@Override
public Result<String> setOsd(Map<String,Object> map){
String id = map.get("deviceIndex").toString();
CameraInfo cameraInfo = new CameraInfo();
cameraInfo.setDeviceIndex(id);
cameraInfo = baseMapper.getByDeviceId(cameraInfo);
String parentId = cameraInfo.getParentId();
String font = "font";
String week = "week";
String date = "date";
String label_info_1 = "label_info_1";
if(!parentId.equals("0")){
id = parentId;
font = "chn"+cameraInfo.getChannel()+"_font";
week = "chn"+cameraInfo.getChannel()+"_week";
date = "chn"+cameraInfo.getChannel()+"_date";
label_info_1 = "chn"+cameraInfo.getChannel()+"_label_info_1";
}
String dateEnabled = map.get("dateEnabled").toString();
String weekEnabled = map.get("weekEnabled").toString();
String labelEnabled = map.get("labelEnabled").toString();
@ -825,17 +1085,17 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
sb.append("\"param\"").append(":").append("{");
sb.append("\"method\"").append(":").append("\"set\"").append(",");
sb.append("\"OSD\"").append(":").append("{");
sb.append("\"font\"").append(":").append("{");
sb.append("\"").append(font).append("\"").append(":").append("{");
sb.append("\"display\"").append(":").append("\"ntnb\",");
sb.append("\"main_font_pixel\"").append(":").append(mainFontPixel);
sb.append("},");
sb.append("\"date\"").append(":").append("{");
sb.append("\"").append(date).append("\"").append(":").append("{");
sb.append("\"enabled\"").append(":").append("\"").append(dateEnabled).append("\"");
sb.append("},");
sb.append("\"week\"").append(":").append("{");
sb.append("\"").append(week).append("\"").append(":").append("{");
sb.append("\"enabled\"").append(":").append("\"").append(weekEnabled).append("\"");
sb.append("},");
sb.append("\"label_info_1\"").append(":").append("{");
sb.append("\"").append(label_info_1).append("\"").append(":").append("{");
sb.append("\"enabled\"").append(":").append("\"").append(labelEnabled).append("\"");
sb.append("}");
sb.append("}");
@ -886,16 +1146,38 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
@Override
public Result<JSONObject> getVideoParams(Map<String,Object> map){
String id = map.get("deviceIndex").toString();
CameraInfo cameraInfo = new CameraInfo();
cameraInfo.setDeviceIndex(id);
cameraInfo = baseMapper.getByDeviceId(cameraInfo);
String parentId = cameraInfo.getParentId();
String main = "main";
String minor = "minor";
if(!parentId.equals("0")){
id = parentId;
main = "chn"+cameraInfo.getChannel()+"_main";
minor = "chn"+cameraInfo.getChannel()+"_minor";
}
StringBuffer sb = new StringBuffer();
sb.append("{");
sb.append("\"devId\"").append(":").append("\"").append(id).append("\"").append(",");
sb.append("\"param\"").append(":").append("{");
sb.append("\"method\"").append(":").append("\"get\"").append(",");
sb.append("\"video\"").append(":").append("{");
sb.append("\"name\"").append(":[").append("\"main\"").append(",").append("\"minor\"").append("]");
sb.append("\"name\"").append(":[");
sb.append("\"").append(main).append("\"").append(",");
sb.append("\"").append(minor).append("\"");
if(!parentId.equals("0")){
sb.append("],");
sb.append("\"table\"").append(":[");
sb.append("\"").append("main_res").append("\"").append(",");
sb.append("\"").append("minor_res").append("\"");
sb.append("]");
}else{
sb.append("]");
sb.append("},");
sb.append("\"video_capability\"").append(":").append("{");
sb.append("\"name\"").append(":[").append("\"main\"").append(",").append("\"minor\"").append("]");
}
sb.append("}");
sb.append("}");
sb.append("}");
@ -909,10 +1191,240 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
if("0".equals(errorCode)){
JSONObject resObject = new JSONObject();
JSONObject video = (JSONObject)responseData.get("video");
JSONObject mainData = (JSONObject)video.get("main");
JSONObject mainData = (JSONObject)video.get(main);
resObject.set("mainData",mainData);
JSONObject minorData = (JSONObject)video.get("minor");
JSONObject minorData = (JSONObject)video.get(minor);
resObject.set("minorData",minorData);
if(!parentId.equals("0")){
//主码流-分辨率
JSONArray mainRes = video.getJSONArray("main_res");
JSONArray mainResolutionArr = new JSONArray();
for(int i=0;i<mainRes.size();i++){
JSONObject json = (JSONObject)mainRes.get(i);
int cn = i+1;
String name = main+"_res_"+cn;
JSONObject resolutionObj = (JSONObject)json.get(name);
if(resolutionObj!=null){
String resolutionValue = resolutionObj.getStr("resolution");
JSONObject resolutionRes = new JSONObject();
resolutionRes.set("label",resolutionValue);
resolutionRes.set("value",resolutionValue);
mainResolutionArr.put(resolutionRes);
}
}
resObject.set("mainResolutionArr",mainResolutionArr);
//主码流-视频帧率
JSONArray mainFrameRatesArr = new JSONArray();
JSONObject mainFrameRatesObj1 = new JSONObject();
mainFrameRatesObj1.set("label","1");
mainFrameRatesObj1.set("value","65537");
mainFrameRatesArr.put(mainFrameRatesObj1);
JSONObject mainFrameRatesObj2 = new JSONObject();
mainFrameRatesObj2.set("label","5");
mainFrameRatesObj2.set("value","65541");
mainFrameRatesArr.put(mainFrameRatesObj2);
JSONObject mainFrameRatesObj3 = new JSONObject();
mainFrameRatesObj3.set("label","10");
mainFrameRatesObj3.set("value","65546");
mainFrameRatesArr.put(mainFrameRatesObj3);
JSONObject mainFrameRatesObj4 = new JSONObject();
mainFrameRatesObj4.set("label","15");
mainFrameRatesObj4.set("value","65551");
mainFrameRatesArr.put(mainFrameRatesObj4);
JSONObject mainFrameRatesObj5 = new JSONObject();
mainFrameRatesObj5.set("label","20");
mainFrameRatesObj5.set("value","65556");
mainFrameRatesArr.put(mainFrameRatesObj5);
JSONObject mainFrameRatesObj6 = new JSONObject();
mainFrameRatesObj6.set("label","25");
mainFrameRatesObj6.set("value","65561");
mainFrameRatesArr.put(mainFrameRatesObj6);
resObject.set("mainFrameRatesArr",mainFrameRatesArr);
//主码流-码率类型
JSONArray mainBitrateTypeArr = new JSONArray();
JSONObject mainBitrateTypeObj1 = new JSONObject();
mainBitrateTypeObj1.set("label","定码率");
mainBitrateTypeObj1.set("value","cbr");
mainBitrateTypeArr.put(mainBitrateTypeObj1);
JSONObject mainBitrateTypeObj2 = new JSONObject();
mainBitrateTypeObj2.set("label","变码率");
mainBitrateTypeObj2.set("value","vbr");
mainBitrateTypeArr.put(mainBitrateTypeObj2);
resObject.set("mainBitrateTypeArr",mainBitrateTypeArr);
//主码流-图像质量
JSONArray mainQualityArr = new JSONArray();
JSONObject mainQualityObj1 = new JSONObject();
mainQualityObj1.set("label","");
mainQualityObj1.set("value","1");
mainQualityArr.put(mainQualityObj1);
JSONObject mainQualityObj2 = new JSONObject();
mainQualityObj2.set("label","");
mainQualityObj2.set("value","3");
mainQualityArr.put(mainQualityObj2);
JSONObject mainQualityObj3 = new JSONObject();
mainQualityObj3.set("label","");
mainQualityObj3.set("value","5");
mainQualityArr.put(mainQualityObj3);
resObject.set("mainQualityArr",mainQualityArr);
//主码流-码率上限
JSONArray mainBitrateArr = new JSONArray();
JSONObject mainBitrateObj1 = new JSONObject();
mainBitrateObj1.set("label","256");
mainBitrateObj1.set("value","256");
mainBitrateArr.put(mainBitrateObj1);
JSONObject mainBitrateObj2 = new JSONObject();
mainBitrateObj2.set("label","384");
mainBitrateObj2.set("value","384");
mainBitrateArr.put(mainBitrateObj2);
JSONObject mainBitrateObj3 = new JSONObject();
mainBitrateObj3.set("label","512");
mainBitrateObj3.set("value","512");
mainBitrateArr.put(mainBitrateObj3);
JSONObject mainBitrateObj4 = new JSONObject();
mainBitrateObj4.set("label","768");
mainBitrateObj4.set("value","768");
mainBitrateArr.put(mainBitrateObj4);
JSONObject mainBitrateObj5 = new JSONObject();
mainBitrateObj5.set("label","1024");
mainBitrateObj5.set("value","1024");
mainBitrateArr.put(mainBitrateObj5);
JSONObject mainBitrateObj6 = new JSONObject();
mainBitrateObj6.set("label","1536");
mainBitrateObj6.set("value","1536");
mainBitrateArr.put(mainBitrateObj6);
JSONObject mainBitrateObj7 = new JSONObject();
mainBitrateObj7.set("label","2048");
mainBitrateObj7.set("value","2048");
mainBitrateArr.put(mainBitrateObj7);
JSONObject mainBitrateObj8 = new JSONObject();
mainBitrateObj8.set("label","3072");
mainBitrateObj8.set("value","3072");
mainBitrateArr.put(mainBitrateObj8);
resObject.set("mainBitrateArr",mainBitrateArr);
//主码流-视频编码
JSONArray mainEncodeTypeArr = new JSONArray();
JSONObject mainEncodeTypeObj1 = new JSONObject();
mainEncodeTypeObj1.set("label","H264");
mainEncodeTypeObj1.set("value","H264");
mainEncodeTypeArr.put(mainEncodeTypeObj1);
JSONObject mainEncodeTypeObj2 = new JSONObject();
mainEncodeTypeObj2.set("label","H265");
mainEncodeTypeObj2.set("value","H265");
mainEncodeTypeArr.put(mainEncodeTypeObj2);
resObject.set("mainEncodeTypeArr",mainEncodeTypeArr);
//子码流-分辨率
JSONArray minorRes = video.getJSONArray("minor_res");
JSONArray minorResolutionArr = new JSONArray();
for(int i=0;i<minorRes.size();i++){
JSONObject json = (JSONObject)minorRes.get(i);
int cn = i+1;
String name = minor+"_res_"+cn;
JSONObject resolutionObj = (JSONObject)json.get(name);
if(resolutionObj!=null){
String resolutionValue = resolutionObj.getStr("resolution");
JSONObject resolutionRes = new JSONObject();
resolutionRes.set("label",resolutionValue);
resolutionRes.set("value",resolutionValue);
minorResolutionArr.put(resolutionRes);
}
}
resObject.set("minorResolutionArr",minorResolutionArr);
//子码流-视频帧率
JSONArray minorFrameRatesArr = new JSONArray();
JSONObject minorFrameRatesObj1 = new JSONObject();
minorFrameRatesObj1.set("label","1");
minorFrameRatesObj1.set("value","65537");
minorFrameRatesArr.put(minorFrameRatesObj1);
JSONObject minorFrameRatesObj2 = new JSONObject();
minorFrameRatesObj2.set("label","5");
minorFrameRatesObj2.set("value","65541");
minorFrameRatesArr.put(minorFrameRatesObj2);
JSONObject minorFrameRatesObj3 = new JSONObject();
minorFrameRatesObj3.set("label","10");
minorFrameRatesObj3.set("value","65546");
minorFrameRatesArr.put(minorFrameRatesObj3);
JSONObject minorFrameRatesObj4 = new JSONObject();
minorFrameRatesObj4.set("label","15");
minorFrameRatesObj4.set("value","65551");
minorFrameRatesArr.put(minorFrameRatesObj4);
JSONObject minorFrameRatesObj5 = new JSONObject();
minorFrameRatesObj5.set("label","20");
minorFrameRatesObj5.set("value","65556");
minorFrameRatesArr.put(minorFrameRatesObj5);
JSONObject minorFrameRatesObj6 = new JSONObject();
minorFrameRatesObj6.set("label","25");
minorFrameRatesObj6.set("value","65561");
minorFrameRatesArr.put(minorFrameRatesObj6);
resObject.set("minorFrameRatesArr",minorFrameRatesArr);
//子码流-码率类型
JSONArray minorBitrateTypeArr = new JSONArray();
JSONObject minorBitrateTypeObj1 = new JSONObject();
minorBitrateTypeObj1.set("label","定码率");
minorBitrateTypeObj1.set("value","cbr");
minorBitrateTypeArr.put(minorBitrateTypeObj1);
JSONObject minorBitrateTypeObj2 = new JSONObject();
minorBitrateTypeObj2.set("label","变码率");
minorBitrateTypeObj2.set("value","vbr");
minorBitrateTypeArr.put(minorBitrateTypeObj2);
resObject.set("minorBitrateTypeArr",minorBitrateTypeArr);
//子码流-图像质量
JSONArray minorQualityArr = new JSONArray();
JSONObject minorQualityObj1 = new JSONObject();
minorQualityObj1.set("label","");
minorQualityObj1.set("value","1");
minorQualityArr.put(minorQualityObj1);
JSONObject minorQualityObj2 = new JSONObject();
minorQualityObj2.set("label","");
minorQualityObj2.set("value","3");
minorQualityArr.put(minorQualityObj2);
JSONObject minorQualityObj3 = new JSONObject();
minorQualityObj3.set("label","");
minorQualityObj3.set("value","5");
minorQualityArr.put(minorQualityObj3);
resObject.set("minorQualityArr",minorQualityArr);
//子码流-码率上限
JSONArray minorBitrateArr = new JSONArray();
JSONObject minorBitrateObj1 = new JSONObject();
minorBitrateObj1.set("label","64");
minorBitrateObj1.set("value","64");
minorBitrateArr.put(minorBitrateObj1);
JSONObject minorBitrateObj2 = new JSONObject();
minorBitrateObj2.set("label","96");
minorBitrateObj2.set("value","96");
minorBitrateArr.put(minorBitrateObj2);
JSONObject minorBitrateObj3 = new JSONObject();
minorBitrateObj3.set("label","128");
minorBitrateObj3.set("value","128");
minorBitrateArr.put(minorBitrateObj3);
JSONObject minorBitrateObj4 = new JSONObject();
minorBitrateObj4.set("label","192");
minorBitrateObj4.set("value","192");
minorBitrateArr.put(minorBitrateObj4);
JSONObject minorBitrateObj5 = new JSONObject();
minorBitrateObj5.set("label","256");
minorBitrateObj5.set("value","256");
minorBitrateArr.put(minorBitrateObj5);
JSONObject minorBitrateObj6 = new JSONObject();
minorBitrateObj6.set("label","384");
minorBitrateObj6.set("value","384");
minorBitrateArr.put(minorBitrateObj6);
JSONObject minorBitrateObj7 = new JSONObject();
minorBitrateObj7.set("label","512");
minorBitrateObj7.set("value","512");
minorBitrateArr.put(minorBitrateObj7);
resObject.set("minorBitrateArr",minorBitrateArr);
//子码流-视频编码
JSONArray minorEncodeTypeArr = new JSONArray();
JSONObject minorEncodeTypeObj1 = new JSONObject();
minorEncodeTypeObj1.set("label","H264");
minorEncodeTypeObj1.set("value","H264");
minorEncodeTypeArr.put(minorEncodeTypeObj1);
JSONObject minorEncodeTypeObj2 = new JSONObject();
minorEncodeTypeObj2.set("label","H265");
minorEncodeTypeObj2.set("value","H265");
minorEncodeTypeArr.put(minorEncodeTypeObj2);
resObject.set("minorEncodeTypeArr",minorEncodeTypeArr);
}else{
JSONObject videoCapability = (JSONObject)responseData.get("video_capability");
JSONObject mainCapability = (JSONObject)videoCapability.get("main");
JSONArray encodeTypes = mainCapability.getJSONArray("encode_types");
@ -933,6 +1445,9 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
if("65537".equals(value)){
json.set("label","1");
}
if("65541".equals(value)){
json.set("label","5");
}
if("65546".equals(value)){
json.set("label","10");
}
@ -942,6 +1457,9 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
if("65556".equals(value)){
json.set("label","20");
}
if("65561".equals(value)){
json.set("label","25");
}
json.set("value",value);
mainFrameRatesArr.put(json);
}
@ -1085,7 +1603,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
minorQualityArr.put(json);
}
resObject.set("minorQualityArr",minorQualityArr);
}
return Result.OK(resObject);
}else{
String errorMsg = "";
@ -1123,6 +1641,17 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
@Override
public Result setVideoParams(Map<String,Object> map){
String id = map.get("deviceIndex").toString();
CameraInfo cameraInfo = new CameraInfo();
cameraInfo.setDeviceIndex(id);
cameraInfo = baseMapper.getByDeviceId(cameraInfo);
String parentId = cameraInfo.getParentId();
String main = "main";
String minor = "minor";
if(!parentId.equals("0")){
id = parentId;
main = "chn"+cameraInfo.getChannel()+"_main";
minor = "chn"+cameraInfo.getChannel()+"_minor";
}
Map<String,Object> mainMap = (Map<String,Object>)map.get("main");
Map<String,Object> minorMap = (Map<String,Object>)map.get("minor");
StringBuffer sb = new StringBuffer();
@ -1131,7 +1660,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
sb.append("\"param\"").append(":").append("{");
sb.append("\"method\"").append(":").append("\"set\"").append(",");
sb.append("\"video\"").append(":").append("{");
sb.append("\"main\"").append(":").append("{");
sb.append("\"").append(main).append("\"").append(":").append("{");
//类属性+类值
StringBuffer mainSb = new StringBuffer();
Set<String> mainKeys = mainMap.keySet();
@ -1146,7 +1675,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
}
sb.append(mainStr);
sb.append("},");
sb.append("\"minor\"").append(":").append("{");
sb.append("\"").append(minor).append("\"").append(":").append("{");
//类属性+类值
StringBuffer minorSb = new StringBuffer();
Set<String> minorKeys = minorMap.keySet();
@ -1172,7 +1701,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
JSONObject responseData = (JSONObject)result.get("responseData");
String errorCode = responseData.getStr("error_code");
if("0".equals(errorCode)){
return Result.OK();
return Result.OK("设置成功");
}else{
String errorMsg = "";
try{
@ -1229,7 +1758,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
JSONObject responseData = (JSONObject)result.get("responseData");
String errorCode = responseData.getStr("error_code");
if("0".equals(errorCode)){
return Result.OK();
return Result.OK("恢复成功");
}else{
String errorMsg = "";
try{
@ -1905,7 +2434,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
JSONObject responseData = (JSONObject)result.get("responseData");
String errorCode = responseData.getStr("error_code");
if("0".equals(errorCode)){
return Result.OK();
return Result.OK("设置成功");
}else{
String errorMsg = "";
try{
@ -2226,7 +2755,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
JSONObject responseData = (JSONObject)result.get("responseData");
String errorCode = responseData.getStr("error_code");
if("0".equals(errorCode)){
return Result.OK();
return Result.OK("设置成功");
}else{
String errorMsg = "";
try{

View File

@ -41,6 +41,7 @@ public enum ApiEnum {
QUERY_ALARM_LOG("/tums/logManager/v2/queryAlarmLog","查询告警日志列表"),
QUERY_UNREAD_ALARM_MSG("/tums/logManager/v2/queryUnreadAlarmMsg","查询未读告警日志列表"),
IPC_GET_IPC_CAPABILITY("/tums/deviceManager/v1/getIpcCapability","获取ipc能力集"),
GET_DEVICE_DETAILS("/tums/deviceManager/v2/getDeviceDetails","获取设备详情信息"),
IPC_PASSTHROUGH("/tums/devConfig/v1/passthrough","设备配置信息"),
IPC_ADD_PREVIEW_CHN("/tums/preview/v1/addPreviewChn","添加预览通道"),

View File

@ -333,6 +333,20 @@ public class TumsApi {
return jsonResponse;
}
/**
* 获取设备详情信息
* @param jsonRequest
* @return
*/
public String getDeviceDetails(String jsonRequest){
this.createTumsClient();
log.info("getDeviceDetails:request:{}",jsonRequest);
String jsonResponse = tumsClient.request(jsonRequest, ApiEnum.GET_DEVICE_DETAILS.getValue());
log.info("getDeviceDetails:response:{}",jsonResponse);
return jsonResponse;
}
/**
* 设备配置信息
* @param jsonRequest