예제 #1
0
        /// <summary>
        /// 连接设备
        /// </summary>
        /// <param name="sIP">设备IP</param>
        /// <returns></returns>
        public bool ConnectCamera(string sIP, IntPtr UserHandle)
        {
            try
            {
                StringBuilder strIP = new StringBuilder(sIP);
                pHandle = IntPtr.Zero;
                Ip      = sIP;
                uint uRes = DeviceInterface.HWTC_ConnectCamera(strIP, ref pHandle);
                if ((DeviceInterface.FEEKBACK_TYPE)uRes == DeviceInterface.FEEKBACK_TYPE.RESULT_OK)
                {
                    DeviceInterface.HWTC_RecordLog(false);
                    DeviceInterface.HWTC_SetRecRealtimeDataMode(pHandle, IntPtr.Zero, RealdataFuc, UserHandle, 0, 0);
                    //设置事件
                    DeviceInterface.HWTC_RegStatusCallback(pHandle, IntPtr.Zero, DeviceStatusFuc, NetStatusFuc, RunStatusFuc);
                    AddDeviceInfo Info = new AddDeviceInfo();
                    Info.intCameraIP         = Until.IP2Int(sIP);
                    Info.ptrCameraHandle     = pHandle;
                    Info.u32ArmBootTime      = 0;
                    Info.u32DspBootTime      = 0;
                    Info.u32DspBootCnt       = 0;
                    Info.ptrCamControlHandle = IntPtr.Zero;
                    Info.OnReadSuccess       = this.OnActionReadSuccess;
                    Info.OnScanError         = this.OnActionScanError;
                    Info.OnStatusChange      = this.OnActionStatusChange;

                    if (ForGlobal.g_DeviceTable[sIP] == null)
                    {
                        ForGlobal.g_DeviceTable.Add(sIP, Info);
                    }
                    if (OnActionStatusChange != null)
                    {
                        OnActionStatusChange(true);
                    }
                    return(true);
                }
                else
                {
                    ErrorStr = uRes.ToString();
                    if (OnActionStatusChange != null)
                    {
                        OnActionStatusChange(false);
                    }
                    return(false);
                }
            }
            catch (Exception)
            {
                if (OnActionStatusChange != null)
                {
                    OnActionStatusChange(false);
                }
            }
            return(false);
        }