kazelee
10 天以前 b928a2f0011fc867d7d219cfff4b764250f5b778
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;
@@ -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;
        }
    }
}