From 2aa6ffae020b4dab66ac30ee4436346aa15ff3cb Mon Sep 17 00:00:00 2001
From: kazelee <1847801760@qq.com>
Date: 星期二, 15 七月 2025 17:26:54 +0800
Subject: [PATCH] 修复绑定解绑可能导致的信息丢失问题

---
 device/SnapDevice.cs |   33 ++++++++++++++++++++++++++-------
 1 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/device/SnapDevice.cs b/device/SnapDevice.cs
index 754d14f..afabdfe 100644
--- a/device/SnapDevice.cs
+++ b/device/SnapDevice.cs
@@ -7,14 +7,14 @@
 using System.Text;
 using System.Threading.Tasks;
 
-using NetSDKCS;
+using NetSDKCS; // SNAP
 
 namespace HH.WCS.Mobox3.AnGang.device {
     public class SnapDevice {
         private IntPtr _LoginID = IntPtr.Zero;
         private IntPtr _PlayID = IntPtr.Zero;
         //private fSnapRevCallBack _SnapRevCallBack;
-        private NET_DEVICEINFO_Ex _DeviceInfo = new NET_DEVICEINFO_Ex();
+        private NET_DEVICEINFO_Ex _DeviceInfo = new NET_DEVICEINFO_Ex(); // SNAP
         private bool _IsSpanCapture = false;
 
         //private List<int> _channalList = new List<int>();
@@ -23,7 +23,7 @@
         public SnapDevice() {
             try {
                 //_SnapRevCallBack = new fSnapRevCallBack(SnapRevCallBack);
-                NETClient.Init(null, IntPtr.Zero, null);
+                NETClient.Init(null, IntPtr.Zero, null); // SNAP
                 //NETClient.SetSnapRevCallBack(_SnapRevCallBack, IntPtr.Zero);
             }
             catch (Exception ex) {
@@ -32,13 +32,15 @@
         }
 
         ~SnapDevice() {
-            NETClient.Cleanup();
+            NETClient.Cleanup(); // SNAP
         }
+
+        // SNAP
 
         public void LoadInfo(Config.Snap snap) {
             LoadInfo(snap.Ip, snap.Port, snap.Name, snap.Pwd);
         }
-        
+
         public void LoadInfo(string ip, int port, string name, string pwd) {
             if (IntPtr.Zero == _LoginID) {
                 ushort uPort = 0;
@@ -51,7 +53,7 @@
                 }
                 _LoginID = NETClient.LoginWithHighLevelSecurity(ip, uPort, name, pwd, EM_LOGIN_SPAC_CAP_TYPE.TCP, IntPtr.Zero, ref _DeviceInfo);
                 if (IntPtr.Zero == _LoginID) {
-                    LogHelper.Info(NETClient.GetLastError());
+                    LogHelper.Info("鐩告満鍒濆鍖栭敊璇細" + NETClient.GetLastError());
                     return;
                 }
                 //_channalList.Clear();
@@ -65,7 +67,7 @@
                 _LoginID = IntPtr.Zero;
                 if (_IsSpanCapture) {
                     _IsSpanCapture = false;
-                    
+
                 }
             }
         }
@@ -105,6 +107,9 @@
             bool ret = NETClient.SnapPictureToFile(_LoginID, ref inParam, ref outParam, 1000);
             if (!ret) {
                 LogHelper.Info("鎶撳浘澶辫触");
+            }
+            else {
+                LogHelper.Info("鎶撳浘鎴愬姛");
             }
             return ret;
         }
@@ -159,5 +164,19 @@
                 Process.Start(filePath);
             }
         }
+
+        public string GetCapturePictureLocalPath() {
+            string path = AppDomain.CurrentDomain.BaseDirectory + "image";
+            if (!Directory.Exists(path)) {
+                Directory.CreateDirectory(path);
+            }
+            DateTime now = DateTime.Now;
+            string filePath = path + "\\" + string.Format("{0}-{1}-{2}-{3}-{4}-{5}", now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second) + ".jpg";
+            bool ret = NETClient.CapturePicture(_PlayID, filePath, EM_NET_CAPTURE_FORMATS.JPEG);
+            if (!ret) {
+                return "";
+            }
+            return filePath;
+        }
     }
 }

--
Gitblit v1.9.1