From 6f7cc7c14b4532120e9e6827ca0feb2c9aa4c2c7 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期五, 24 一月 2025 04:10:16 +0800 Subject: [PATCH] 利旧设备Osd,ping任务离线时间点取最近两条,工单审核bug,重点指挥图像调整 --- ycl-server/src/main/java/com/ycl/api/DH/module/LoginModule.java | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 101 insertions(+), 12 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/api/DH/module/LoginModule.java b/ycl-server/src/main/java/com/ycl/api/DH/module/LoginModule.java index 5d3b406..d38155f 100644 --- a/ycl-server/src/main/java/com/ycl/api/DH/module/LoginModule.java +++ b/ycl-server/src/main/java/com/ycl/api/DH/module/LoginModule.java @@ -2,6 +2,7 @@ import com.sun.jna.Native; import com.sun.jna.Pointer; +import com.sun.jna.Structure; import com.sun.jna.ptr.IntByReference; import com.ycl.api.DH.lib.NetSDKLib; import com.ycl.api.DH.lib.NetSDKLib.LLong; @@ -17,12 +18,17 @@ import java.io.File; import java.io.UnsupportedEncodingException; +import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Arrays; import java.util.Date; +import java.util.List; +import static com.ycl.api.DH.lib.NetSDKLib.CFG_CMD_VIDEOWIDGET; +import static com.ycl.api.DH.lib.NetSDKLib.NET_DEV_VIDEO_OSD_CFG; import static com.ycl.api.DH.lib.NetSDKLib.NET_EM_OSD_BLEND_TYPE.NET_EM_OSD_BLEND_TYPE_MAIN; import static com.ycl.api.DH.lib.enumeration.NET_EM_CFG_OPERATE_TYPE.NET_EM_CFG_CUSTOMTITLE; import static com.ycl.api.DH.lib.enumeration.NET_EM_CFG_OPERATE_TYPE.NET_EM_CFG_GBMODE; @@ -153,14 +159,13 @@ return bRet; } - public static OSDResult getOsd(String serialNumber,LLong loginId) { + public static OSDResult getOsd(String serialNumber, LLong loginId) { OSDResult osdResult = new OSDResult(); NetSDKLib.NET_TIME deviceTime = new NetSDKLib.NET_TIME(); if (!netsdk.CLIENT_QueryDeviceTime(loginId, deviceTime, 3000)) { // log.error("CLIENT_QueryDeviceTime Failed!" + ToolKits.getErrorCodePrint()); return null; } - log.info("OSD鏃堕棿鍘熷鏁版嵁鏍煎紡,{},toString鏍煎紡{}",deviceTime,deviceTime.toStringTime()); Date checkTime = new Date(); osdResult.setCheckTime(checkTime); String date = deviceTime.toStringTime(); @@ -173,7 +178,6 @@ // log.error("鏃堕棿瑙f瀽澶辫触"); } NET_CFG_GBMODE_INFO reserve = new NET_CFG_GBMODE_INFO(); - NET_CFG_GBMODE_INFO osdInfo = new NET_CFG_GBMODE_INFO(); osdInfo.write(); boolean b = false; @@ -183,9 +187,9 @@ * 瀵逛簬澶у崕鏉ヨ锛� 鍥芥爣鍊�7: 0/鍏ㄦ櫙/閫氶亾1 1/缁嗚妭/閫氶亾2 * 瀹囪鍗曢�氶亾涓嶈�冭檻 */ - if(serialNumber.charAt(ApiConstants.SerialNumber_Channel) == ApiConstants.SerialNumber_All ) { + if (serialNumber.charAt(ApiConstants.SerialNumber_Channel) == ApiConstants.SerialNumber_All) { b = netsdk.CLIENT_GetConfig(loginId, NET_EM_CFG_GBMODE, 0, osdInfo.getPointer(), osdInfo.size(), 3000, reserve.getPointer()); - }else if(serialNumber.charAt(ApiConstants.SerialNumber_Channel) == ApiConstants.SerialNumber_Detail){ + } else if (serialNumber.charAt(ApiConstants.SerialNumber_Channel) == ApiConstants.SerialNumber_Detail) { b = netsdk.CLIENT_GetConfig(loginId, NET_EM_CFG_GBMODE, 1, osdInfo.getPointer(), osdInfo.size(), 3000, reserve.getPointer()); } @@ -193,12 +197,20 @@ // log.error("CLIENT_GetConfig Failed!" + ToolKits.getErrorCodePrint()); return null; } else { + osdInfo.read(); NET_GBMODE_CUSTOMTITLE_INFO[] stuCustomTitle = osdInfo.stuCustomTitle; for (NET_GBMODE_CUSTOMTITLE_INFO title : stuCustomTitle) { - log.info("OSD鍘熷鏁版嵁鏍煎紡{}",title); String position = new String(title.szPositon, StandardCharsets.UTF_8).trim(); - if("LeftDown".equals(position)) { + NET_TITLE_OSD_INFO[] stuOSD1 = title.stuOSD; + for (NET_TITLE_OSD_INFO osd : stuOSD1) { + String osdStr = null; + osdStr = new String(osd.szText, StandardCharsets.UTF_8).trim(); + if (!StringUtils.isEmpty(osdStr)) { + osdResult.setOSD4(osdStr); + } + } + if ("LeftDown".equals(position)) { NET_TITLE_OSD_INFO[] stuOSD = title.stuOSD; for (NET_TITLE_OSD_INFO osd : stuOSD) { String osdStr = null; @@ -208,7 +220,7 @@ osdResult.setOSD4(osdStr); } } - }else if("RightDown".equals(position)){ + } else if ("RightDown".equals(position)) { NET_TITLE_OSD_INFO[] stuOSD = title.stuOSD; int num = 0; for (NET_TITLE_OSD_INFO osd : stuOSD) { @@ -216,13 +228,13 @@ osdStr = new String(osd.szText, StandardCharsets.UTF_8).trim(); // log.info("TEXT锛�"+osdStr); if (!StringUtils.isEmpty(osdStr)) { - if(num ==0){ + if (num == 0) { osdResult.setOSD1(osdStr); - }else if(num ==1){ + } else if (num == 1) { osdResult.setOSD2(osdStr); - }else if(num ==2){ + } else if (num == 2) { osdResult.setOSD3(osdStr); - }else if(num ==3){ + } else if (num == 3) { osdResult.setName(osdStr); } } @@ -235,4 +247,81 @@ return osdResult; } + /** + * 閽堝鍒╂棫璁惧鑾峰彇OSD鐨勬柟娉� + * @param serialNumber + * @param loginId + * @return + */ + public static OSDResult getOsdOld(String serialNumber, LLong loginId) { + OSDResult result = new OSDResult(); + NetSDKLib.NET_OSD_CUSTOM_TITLE osdInfo4 = new NetSDKLib.NET_OSD_CUSTOM_TITLE(); + osdInfo4.emOsdBlendType = NetSDKLib.NET_EM_OSD_BLEND_TYPE.NET_EM_OSD_BLEND_TYPE_MAIN; + NetSDKLib.NET_OSD_CUSTOM_TITLE reserve4 = new NetSDKLib.NET_OSD_CUSTOM_TITLE(); + osdInfo4.write(); + boolean e = false; + e = netsdk.CLIENT_GetConfig(loginId, NET_EM_CFG_CUSTOMTITLE, 0, osdInfo4.getPointer(), osdInfo4.size(), 3000, reserve4.getPointer()); + if (!e) { + log.error("e涓虹┖,灏濊瘯鍙︿竴涓�氶亾"); + e = netsdk.CLIENT_GetConfig(loginId, NET_EM_CFG_CUSTOMTITLE, 1, osdInfo4.getPointer(), osdInfo4.size(), 3000, reserve4.getPointer()); + } + if(e) { + osdInfo4.read(); + NetSDKLib.NET_CUSTOM_TITLE_INFO[] stuCustomTitle = osdInfo4.stuCustomTitle; + for (NetSDKLib.NET_CUSTOM_TITLE_INFO net_custom_title_info : stuCustomTitle) { + String name = new String(net_custom_title_info.szText, StandardCharsets.UTF_8).trim(); + log.info("name:{}",name); + if(StringUtils.isNotEmpty(name) && name.contains("|")){ + String[] osdNames = name.split("\\|"); + //鍓旈櫎鎺夌┖涓� + List<String> nonEmptyList = new ArrayList<>(); + for (String osd : osdNames) { + if (StringUtils.isNotEmpty(osd)) { + nonEmptyList.add(osd); + } + } + result.setOSD1(nonEmptyList.get(0)); + result.setOSD2(nonEmptyList.get(1)); + result.setOSD3(nonEmptyList.get(2)); + result.setName(nonEmptyList.get(3)); + } + } + }else { + log.error(serialNumber,"鍒╂棫osd涓虹┖"); + } + return result; + } + + /** + * 鑾峰彇鍗曚釜閰嶇疆 + * @param hLoginHandle 鐧婚檰鍙ユ焺 + * @param nChn 閫氶亾鍙凤紝-1 琛ㄧず鍏ㄩ�氶亾 + * @param strCmd 閰嶇疆鍚嶇О + * @param cmdObject 閰嶇疆瀵瑰簲鐨勭粨鏋勪綋瀵硅薄 + * @return 鎴愬姛杩斿洖 true + */ + public static boolean GetDevConfig(LLong hLoginHandle, int nChn, String strCmd, Structure cmdObject) { + boolean result = false; + IntByReference error = new IntByReference(0); + int nBufferLen = 2*1024*1024; + byte[] strBuffer = new byte[nBufferLen]; + + if(netsdk.CLIENT_GetNewDevConfig( hLoginHandle, strCmd , nChn, strBuffer, nBufferLen,error,3000,null)) { + cmdObject.write(); + if (netsdk.CLIENT_ParseData(strCmd, strBuffer, cmdObject.getPointer(), + cmdObject.size(), null)) { + cmdObject.read(); + result = true; + } else { + System.err.println("Parse " + strCmd + " Config Failed!" + ToolKits.getErrorCodePrint()); + result = false; + } + } else { + System.err.println("璋冪敤澶辫触"); + result = false; + } + + return result; + } + } -- Gitblit v1.8.0