package com.ruoyi.device.dhsdk.module; import com.ruoyi.device.dhsdk.lib.NetSDKLib; import com.sun.jna.Structure; import com.sun.jna.ptr.IntByReference; import static com.ruoyi.device.dhsdk.lib.ToolKits.getErrorCodePrint; /** * @Description: * @ClassName: ConfigModule * @Author: 刘苏义 * @Date: 2023年10月14日14:57:01 **/ public class ConfigModule { public static NetSDKLib netsdk = NetSDKLib.NETSDK_INSTANCE; public static NetSDKLib configsdk = NetSDKLib.CONFIG_INSTANCE; /** * 查询设备状态 */ public static boolean queryDevState(NetSDKLib.LLong hLoginHandle, int nType, NetSDKLib.SdkStructure stuInfo) { IntByReference intRetLen = new IntByReference(); stuInfo.write(); if (!netsdk.CLIENT_QueryDevState(hLoginHandle, nType, stuInfo.getPointer(), stuInfo.size(), intRetLen, 3000)) { return false; } stuInfo.read(); return true; } /** * 设置单个配置 * @param hLoginHandle 登陆句柄 * @param nChn 通道号,-1 表示全通道 * @param strCmd 配置名称 * @param cmdObject 配置对应的结构体对象 * @return 成功返回 true */ public static boolean SetDevConfig(NetSDKLib.LLong hLoginHandle, int nChn, String strCmd, Structure cmdObject) { boolean result = false; int nBufferLen = 2*1024*1024; byte szBuffer[] = new byte[nBufferLen]; for(int i=0; i