package com.netsdk.demo.customize; import com.netsdk.demo.util.CaseMenu; import com.netsdk.lib.NetSDKLib; import com.netsdk.lib.ToolKits; import com.netsdk.lib.enumeration.NET_EM_CFG_OPERATE_TYPE; import com.netsdk.lib.structure.*; import com.netsdk.lib.utils.Initialization; import com.sun.jna.Memory; import com.sun.jna.Pointer; import com.sun.jna.ptr.IntByReference; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Scanner; import static com.netsdk.lib.NetSDKLib.*; import static com.netsdk.lib.NetSDKLib.NET_DIAGNOSIS_VIDEO_LOSS_FRAME_DETECTION; /** * @author 291189 * @version 1.0 * @description ERR220913031 * @date 2022/9/15 14:27 */ public class StartVideoDiagnosisDemo extends Initialization { Scanner scanner=new Scanner(System.in); //视频诊断参数表 public void VideoDiagnosisProfileConfig() { String strCmd = NetSDKLib.CFG_CMD_VIDEODIAGNOSIS_PROFILE; // 视频诊断参数表命令 int nChn = 0; // 通道号 NetSDKLib.CFG_VIDEODIAGNOSIS_PROFILE profiles=new NetSDKLib.CFG_VIDEODIAGNOSIS_PROFILE(); profiles.nTotalProfileNum=10; NetSDKLib.CFG_VIDEO_DIAGNOSIS_PROFILE[] profileArr=new NetSDKLib.CFG_VIDEO_DIAGNOSIS_PROFILE[profiles.nTotalProfileNum]; for(int i=0;i nameList = new ArrayList(); public void GetMemberNames(String command) { nameList.clear(); int nNameCount = 10; // 任务名称个数 NetSDKLib.NET_ARRAY[] arrays = new NetSDKLib.NET_ARRAY[nNameCount]; for(int i = 0; i < nNameCount; i++) { arrays[i] = new NetSDKLib.NET_ARRAY(); arrays[i].pArray = new Memory(260); // 缓冲区 目前最小260字节, 需要用户自己申请 arrays[i].pArray.clear(260); arrays[i].dwArrayLen = 260; } /* * 入参 */ NetSDKLib.NET_IN_MEMBERNAME stIn = new NetSDKLib.NET_IN_MEMBERNAME(); stIn.szCommand = command/*NetSDKLib.CFG_CMD_VIDEODIAGNOSIS_TASK*/; // 配置命令, 获取任务的成员名称 /* * 出参 */ NetSDKLib.NET_OUT_MEMBERNAME stOut = new NetSDKLib.NET_OUT_MEMBERNAME(); stOut.nTotalNameCount = nNameCount; stOut.pstNames = new Memory(arrays[0].size() * nNameCount); stOut.pstNames.clear(arrays[0].size() * nNameCount); ToolKits.SetStructArrToPointerData(arrays, stOut.pstNames); if(netSdk.CLIENT_GetMemberNames(loginHandle, stIn, stOut, 3000)) { ToolKits.GetPointerDataToStructArr(stOut.pstNames, arrays); System.out.println("nRetNameCount:"+stOut.nRetNameCount); for(int i = 0; i < stOut.nRetNameCount; i++) { System.out.println("成员名称:" + ToolKits.GetPointerDataToGBKString(arrays[i].pArray, arrays[i].dwArrayLen)); nameList.add(ToolKits.GetPointerDataToGBKString(arrays[i].pArray, arrays[i].dwArrayLen)); } } else { System.err.println("获取配置成员名称失败, " + ToolKits.getErrorCode()); } } /** * 视频诊断任务获取 */ public void VideoDiagnosisTaskGet() { // 单个获取 for(int i=0;i