From 5addedcb92fcd56239825f301502aabbeaf5e325 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期二, 24 十月 2023 11:26:46 +0800
Subject: [PATCH] 异步登录成功后获取通道和配置流媒体增加线程同步

---
 ard-work/src/main/java/com/ruoyi/device/dhsdk/module/LoginModule.java |  288 ++++++++++++++++++++++++++++-----------------------------
 1 files changed, 143 insertions(+), 145 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/device/dhsdk/module/LoginModule.java b/ard-work/src/main/java/com/ruoyi/device/dhsdk/module/LoginModule.java
index da42a76..2488b89 100644
--- a/ard-work/src/main/java/com/ruoyi/device/dhsdk/module/LoginModule.java
+++ b/ard-work/src/main/java/com/ruoyi/device/dhsdk/module/LoginModule.java
@@ -1,146 +1,144 @@
-package com.ruoyi.device.dhsdk.module;
-
-import com.ruoyi.device.dhsdk.lib.NetSDKLib;
-import com.ruoyi.device.dhsdk.lib.NetSDKLib.LLong;
-import com.ruoyi.device.dhsdk.lib.NetSDKLib.NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY;
-import com.ruoyi.device.dhsdk.lib.NetSDKLib.NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY;
-import com.sun.jna.ptr.IntByReference;
-import lombok.extern.slf4j.Slf4j;
-import static com.ruoyi.device.dhsdk.lib.ToolKits.getErrorCodePrint;
-
-/**
- * 鐧婚檰鎺ュ彛瀹炵幇
- * 涓昏鏈� 锛氬垵濮嬪寲銆佺櫥闄嗐�佺櫥鍑哄姛鑳�
- */
-@Slf4j(topic = "dhSdk")
-public class LoginModule {
-
-    public static NetSDKLib netsdk = NetSDKLib.NETSDK_INSTANCE;
-
-    // 璁惧淇℃伅
-    public static NetSDKLib.NET_DEVICEINFO_Ex m_stDeviceInfo = new NetSDKLib.NET_DEVICEINFO_Ex();
-
-    // 鐧婚檰鍙ユ焺
-    public static LLong m_hLoginHandle = new LLong(0);//
-
-    private static boolean bInit = false;
-    private static boolean bLogopen = false;
-
-    /**
-     * \if ENGLISH_LANG
-     * Init
-     * \else
-     * 鍒濆鍖�
-     * \endif
-     */
-    public static boolean init(NetSDKLib.fDisConnect disConnect, NetSDKLib.fHaveReConnect haveReConnect) {
-        bInit = netsdk.CLIENT_Init(disConnect, null);
-        if (!bInit) {
-            log.debug("Initialize SDK failed");
-            return false;
-        }
-
-        //鎵撳紑鏃ュ織锛屽彲閫�
-        //NetSDKLib.LOG_SET_PRINT_INFO setLog = new NetSDKLib.LOG_SET_PRINT_INFO();
-        //File path = new File("./sdklog/");
-        //if (!path.exists()) {
-        //    path.mkdir();
-        //}
-        //String logPath = path.getAbsoluteFile().getParent() + "\\sdklog\\" + ToolKits.getDate() + ".log";
-        //setLog.nPrintStrategy = 0;
-        //setLog.bSetFilePath = 1;
-        //System.arraycopy(logPath.getBytes(), 0, setLog.szLogFilePath, 0, logPath.getBytes().length);
-        //System.out.println(logPath);
-        //setLog.bSetPrintStrategy = 1;
-        //bLogopen = netsdk.CLIENT_LogOpen(setLog);
-      //  if (!bLogopen) {
-           // System.err.println("Failed to open NetSDK log");
-       // }
-
-        // 璁剧疆鏂嚎閲嶈繛鍥炶皟鎺ュ彛锛岃缃繃鏂嚎閲嶈繛鎴愬姛鍥炶皟鍑芥暟鍚庯紝褰撹澶囧嚭鐜版柇绾挎儏鍐碉紝SDK鍐呴儴浼氳嚜鍔ㄨ繘琛岄噸杩炴搷浣�
-        // 姝ゆ搷浣滀负鍙�夋搷浣滐紝浣嗗缓璁敤鎴疯繘琛岃缃�
-        netsdk.CLIENT_SetAutoReconnect(haveReConnect, null);
-
-        //璁剧疆鐧诲綍瓒呮椂鏃堕棿鍜屽皾璇曟鏁帮紝鍙��
-        int waitTime = 5000; //鐧诲綍璇锋眰鍝嶅簲瓒呮椂鏃堕棿璁剧疆涓�5S
-        int tryTimes = 1;    //鐧诲綍鏃跺皾璇曞缓绔嬮摼鎺�1娆�
-        netsdk.CLIENT_SetConnectTime(waitTime, tryTimes);
-
-
-        // 璁剧疆鏇村缃戠粶鍙傛暟锛孨ET_PARAM鐨刵Waittime锛宯ConnectTryNum鎴愬憳涓嶤LIENT_SetConnectTime
-        // 鎺ュ彛璁剧疆鐨勭櫥褰曡澶囪秴鏃舵椂闂村拰灏濊瘯娆℃暟鎰忎箟鐩稿悓,鍙��
-        NetSDKLib.NET_PARAM netParam = new NetSDKLib.NET_PARAM();
-        netParam.nConnectTime = 10000;      // 鐧诲綍鏃跺皾璇曞缓绔嬮摼鎺ョ殑瓒呮椂鏃堕棿
-        netParam.nGetConnInfoTime = 3000;   // 璁剧疆瀛愯繛鎺ョ殑瓒呮椂鏃堕棿
-        netParam.nGetDevInfoTime = 3000;//鑾峰彇璁惧淇℃伅瓒呮椂鏃堕棿锛屼负0榛樿1000ms
-        netsdk.CLIENT_SetNetworkParam(netParam);
-
-        return true;
-    }
-
-    /**
-     * \if ENGLISH_LANG
-     * CleanUp
-     * \else
-     * 娓呴櫎鐜
-     * \endif
-     */
-    public static void cleanup() {
-        if (bLogopen) {
-            netsdk.CLIENT_LogClose();
-        }
-
-        if (bInit) {
-            netsdk.CLIENT_Cleanup();
-        }
-    }
-
-    /**
-     * \if ENGLISH_LANG
-     * Login Device
-     * \else
-     * 鐧诲綍璁惧
-     * \endif
-     */
-    public static LLong login(String m_strIp, int m_nPort, String m_strUser, String m_strPassword) {
-        IntByReference nError = new IntByReference(0);
-        //鍏ュ弬
-        NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY pstInParam = new NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY();
-        pstInParam.nPort = m_nPort;
-        pstInParam.szIP = m_strIp.getBytes();
-        pstInParam.szPassword = m_strPassword.getBytes();
-        pstInParam.szUserName = m_strUser.getBytes();
-        //鍑哄弬
-        NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY pstOutParam = new NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY();
-        pstOutParam.stuDeviceInfo = m_stDeviceInfo;
-        LLong m_hLoginHandle = netsdk.CLIENT_LoginEx2(m_strIp, m_nPort, m_strUser, m_strPassword, 0, null, m_stDeviceInfo, nError);
-        //m_hLoginHandle=netsdk.CLIENT_LoginWithHighLevelSecurity(pstInParam, pstOutParam);
-        if (m_hLoginHandle.longValue() == 0) {
-            log.debug("Login Device[%s] Port[%d]Failed. %s\n", m_strIp, m_nPort, getErrorCodePrint());
-        } else {
-            log.debug("Login Success [ " + m_strIp + " ]");
-        }
-        return m_hLoginHandle;
-        //return m_hLoginHandle.longValue() == 0? false:true;
-    }
-
-    /**
-     * \if ENGLISH_LANG
-     * Logout Device
-     * \else
-     * 鐧诲嚭璁惧
-     * \endif
-     */
-    public static boolean logout(LLong loginId) {
-        if (loginId.longValue() == 0) {
-            return false;
-        }
-        boolean bRet = netsdk.CLIENT_Logout(loginId);
-        if (bRet) {
-            loginId.setValue(0);
-        }
-        return bRet;
-    }
-
-
+package com.ruoyi.device.dhsdk.module;
+
+import com.ruoyi.device.dhsdk.lib.NetSDKLib;
+import com.ruoyi.device.dhsdk.lib.NetSDKLib.LLong;
+import com.ruoyi.device.dhsdk.lib.NetSDKLib.NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY;
+import com.ruoyi.device.dhsdk.lib.NetSDKLib.NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY;
+import com.sun.jna.ptr.IntByReference;
+import lombok.extern.slf4j.Slf4j;
+
+import static com.ruoyi.device.dhsdk.lib.ToolKits.getErrorCodePrint;
+
+/**
+ * 鐧婚檰鎺ュ彛瀹炵幇
+ * 涓昏鏈� 锛氬垵濮嬪寲銆佺櫥闄嗐�佺櫥鍑哄姛鑳�
+ */
+@Slf4j(topic = "dhSdk")
+public class LoginModule {
+
+    public static NetSDKLib netsdk = NetSDKLib.NETSDK_INSTANCE;
+
+    // 璁惧淇℃伅
+    //  public static NetSDKLib.NET_DEVICEINFO_Ex m_stDeviceInfo = new NetSDKLib.NET_DEVICEINFO_Ex();
+
+    // 鐧婚檰鍙ユ焺
+    public static LLong m_hLoginHandle = new LLong(0);//
+
+    private static boolean bInit = false;
+    private static boolean bLogopen = false;
+
+    /**
+     * \if ENGLISH_LANG
+     * Init
+     * \else
+     * 鍒濆鍖�
+     * \endif
+     */
+    public static boolean init(NetSDKLib.fDisConnect disConnect, NetSDKLib.fHaveReConnect haveReConnect) {
+        bInit = netsdk.CLIENT_Init(disConnect, null);
+        if (!bInit) {
+            log.debug("Initialize SDK failed");
+            return false;
+        }
+
+        //鎵撳紑鏃ュ織锛屽彲閫�
+        //NetSDKLib.LOG_SET_PRINT_INFO setLog = new NetSDKLib.LOG_SET_PRINT_INFO();
+        //File path = new File("./sdklog/");
+        //if (!path.exists()) {
+        //    path.mkdir();
+        //}
+        //String logPath = path.getAbsoluteFile().getParent() + "\\sdklog\\" + ToolKits.getDate() + ".log";
+        //setLog.nPrintStrategy = 0;
+        //setLog.bSetFilePath = 1;
+        //System.arraycopy(logPath.getBytes(), 0, setLog.szLogFilePath, 0, logPath.getBytes().length);
+        //System.out.println(logPath);
+        //setLog.bSetPrintStrategy = 1;
+        //bLogopen = netsdk.CLIENT_LogOpen(setLog);
+        //  if (!bLogopen) {
+        // System.err.println("Failed to open NetSDK log");
+        // }
+
+        // 璁剧疆鏂嚎閲嶈繛鍥炶皟鎺ュ彛锛岃缃繃鏂嚎閲嶈繛鎴愬姛鍥炶皟鍑芥暟鍚庯紝褰撹澶囧嚭鐜版柇绾挎儏鍐碉紝SDK鍐呴儴浼氳嚜鍔ㄨ繘琛岄噸杩炴搷浣�
+        // 姝ゆ搷浣滀负鍙�夋搷浣滐紝浣嗗缓璁敤鎴疯繘琛岃缃�
+        netsdk.CLIENT_SetAutoReconnect(haveReConnect, null);
+
+        //璁剧疆鐧诲綍瓒呮椂鏃堕棿鍜屽皾璇曟鏁帮紝鍙��
+        int waitTime = 5000; //鐧诲綍璇锋眰鍝嶅簲瓒呮椂鏃堕棿璁剧疆涓�5S
+        int tryTimes = 1;    //鐧诲綍鏃跺皾璇曞缓绔嬮摼鎺�1娆�
+        netsdk.CLIENT_SetConnectTime(waitTime, tryTimes);
+
+        // 璁剧疆鏇村缃戠粶鍙傛暟锛孨ET_PARAM鐨刵Waittime锛宯ConnectTryNum鎴愬憳涓嶤LIENT_SetConnectTime
+        // 鎺ュ彛璁剧疆鐨勭櫥褰曡澶囪秴鏃舵椂闂村拰灏濊瘯娆℃暟鎰忎箟鐩稿悓,鍙��
+        NetSDKLib.NET_PARAM netParam = new NetSDKLib.NET_PARAM();
+        netParam.nConnectTime = 10000;      // 鐧诲綍鏃跺皾璇曞缓绔嬮摼鎺ョ殑瓒呮椂鏃堕棿
+        netParam.nGetConnInfoTime = 3000;   // 璁剧疆瀛愯繛鎺ョ殑瓒呮椂鏃堕棿
+        netParam.nGetDevInfoTime = 3000;//鑾峰彇璁惧淇℃伅瓒呮椂鏃堕棿锛屼负0榛樿1000ms
+        netsdk.CLIENT_SetNetworkParam(netParam);
+
+        return true;
+    }
+
+    /**
+     * \if ENGLISH_LANG
+     * CleanUp
+     * \else
+     * 娓呴櫎鐜
+     * \endif
+     */
+    public static void cleanup() {
+        if (bLogopen) {
+            netsdk.CLIENT_LogClose();
+        }
+
+        if (bInit) {
+            netsdk.CLIENT_Cleanup();
+        }
+    }
+
+    /**
+     * \if ENGLISH_LANG
+     * Login Device
+     * \else
+     * 鐧诲綍璁惧
+     * \endif
+     */
+    public static LLong login(String m_strIp, int m_nPort, String m_strUser, String m_strPassword, NetSDKLib.NET_DEVICEINFO_Ex lpDeviceInfo) {
+        IntByReference nError = new IntByReference(0);
+        //鍏ュ弬
+        NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY pstInParam = new NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY();
+        pstInParam.nPort = m_nPort;
+        pstInParam.szIP = m_strIp.getBytes();
+        pstInParam.szPassword = m_strPassword.getBytes();
+        pstInParam.szUserName = m_strUser.getBytes();
+        //鍑哄弬
+        //NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY pstOutParam = new NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY();
+        LLong m_hLoginHandle = netsdk.CLIENT_LoginEx2(m_strIp, m_nPort, m_strUser, m_strPassword, 0, null, lpDeviceInfo, nError);
+        //m_hLoginHandle=netsdk.CLIENT_LoginWithHighLevelSecurity(pstInParam, pstOutParam);
+        if (m_hLoginHandle.longValue() == 0) {
+            log.debug("Login Failed [" + m_strIp + ":" + m_nPort + "],閿欒鐮�:" + getErrorCodePrint());
+        } else {
+            log.debug("Login Success [ " + m_strIp + ":" + m_nPort + " ]");
+        }
+        return m_hLoginHandle;
+    }
+
+    /**
+     * \if ENGLISH_LANG
+     * Logout Device
+     * \else
+     * 鐧诲嚭璁惧
+     * \endif
+     */
+    public static boolean logout(LLong loginId) {
+        if (loginId.longValue() == 0) {
+            return false;
+        }
+        boolean bRet = netsdk.CLIENT_Logout(loginId);
+        if (bRet) {
+            loginId.setValue(0);
+        }
+        return bRet;
+    }
+
+
 }
\ No newline at end of file

--
Gitblit v1.9.3