package com.netsdk.demo.customize.transmitInfoDemo.module; import com.netsdk.lib.NetSDKLib; import com.netsdk.lib.ToolKits; import com.netsdk.lib.NetSDKLib.CFG_DVRIP_INFO; import com.netsdk.lib.NetSDKLib.LLong; import com.sun.jna.Memory; import com.sun.jna.Pointer; import com.sun.jna.ptr.IntByReference; public class ConfigModule { static NetSDKLib NetSdk = NetSDKLib.NETSDK_INSTANCE; public static void QueryOnlineState(NetSDKLib.LLong lLoginID) { Pointer p = new Memory(Integer.SIZE); p.clear(Integer.SIZE); boolean ret = NetSdk.CLIENT_QueryDevState(lLoginID, NetSDKLib.NET_DEVSTATE_ONLINE, p, Integer.SIZE, new IntByReference(0), 3000); if (!ret) { System.err.println("查询设备在线状态失败, " + ToolKits.getErrorCode()); return; } int[] buffer = new int[1]; p.read(0, buffer, 0, 1); // 1 表示在线, 0 表示断线 System.out.println(buffer[0] == 1 ? "设备在线" : "设备断线"); } /** * 获取网络协议 * @param lLoginID 登录句柄 * @return */ public static CFG_DVRIP_INFO getDVRIPConfig(NetSDKLib.LLong lLoginID) { String command = NetSDKLib.CFG_CMD_DVRIP; int channel = -1; CFG_DVRIP_INFO msg = new CFG_DVRIP_INFO(); // 获取 if (ToolKits.GetDevConfig(lLoginID, channel, command, msg)) { return msg; } else { System.err.println("Get DVRIP Failed!" + NetSdk.CLIENT_GetLastError()); return null; } } /** * 网络协议配置 * @param m_hLoginHandle 登陆句柄 * @param enable 使能 * @param address 服务器地址 * @param nPort 服务器端口号 * @param deviceId 设备ID * @param info 获取到的网络协议配置 * @return */ public static boolean setDVRIPConfig(LLong m_hLoginHandle,CFG_DVRIP_INFO info) { CFG_DVRIP_INFO msg = info; return ToolKits.SetDevConfig(m_hLoginHandle, -1, NetSDKLib.CFG_CMD_DVRIP, msg); } }