Beispiel #1
0
        //获取视频参数
        public Int32 GetVideoParams(ref Int32 _iBri, ref Int32 _iCon, ref Int32 _iSat, ref Int32 _iHue)
        {
            Int32 iRet = -1;

            if (m_lHandle != -1)
            {
                DefVsClient.PARAM_SET_DATA   ParamSetData = new DefVsClient.PARAM_SET_DATA();
                DefVsClient.CHANNEL_CONINFOR sChConInfor  = GetChConInfor();
                ParamSetData.m_sNetLinkInfo = sChConInfor.m_sNetLinkInfo;
                ParamSetData.m_iChNo        = sChConInfor.m_iChNo;
                ParamSetData.m_iCommand     = (Int32)ParamCmdType.cmdViParam;
                ParamSetData.m_iPriority    = 1;
                iRet = VsClientAPI.VSSP_ClientGetDevParam(ref ParamSetData);
                if (iRet == 0)
                {
                    byte[] byteArray = ParamSetData.m_pchParams;
                    _iBri = byteArray[0];
                    _iCon = byteArray[1];
                    _iSat = byteArray[2];
                    _iHue = byteArray[3];
                }
                else
                {
                    _iBri = 0;
                    _iCon = 0;
                    _iSat = 0;
                    _iHue = 0;
                }
            }
            return(iRet);
        }
Beispiel #2
0
 public void ChangeHandle(int iHandle, IntPtr Oldhandle, int iType)
 {
     m_iType           = iType;
     this.m_iHandle    = iHandle;
     this.m_pOldHandle = Oldhandle;
     VsClientAPI.VSSP_ClientSetPlayHwnd(m_iHandle, PanelFull.Handle);
 }
        /// <summary>
        /// 控制前端设备
        /// </summary>
        /// <param name="_iCommond">控制命令</param>
        /// <param name="_iValue">速度值</param>
        /// <param name="_iPriority">控制优先级</param>
        /// <returns>成功返回 0 失败返回 -1</returns>
        public Int32 PTZCtrl(Int32 _iCommond, Int32 _iValue, Int32 _iPriority)
        {
            Int32 iRet = -1;

            DefVsClient.CHANNEL_CONINFOR sChConInfor = new DefVsClient.CHANNEL_CONINFOR();
            sChConInfor.m_sNetLinkInfo.m_pchFromID = Encoding.Default.GetBytes("900000000001");
            sChConInfor.m_sNetLinkInfo.m_pchToID   = Encoding.Default.GetBytes(m_strDevId + "000");
            byte[] temp  = null;
            byte[] bUser = new byte[12];
            Array.Clear(bUser, 0, 12);
            temp = Encoding.Default.GetBytes("888888");
            Array.Copy(temp, bUser, temp.Length);
            sChConInfor.m_sNetLinkInfo.m_pchUser = bUser;
            byte[] bPass = new byte[12];
            Array.Clear(bPass, 0, 12);
            temp = Encoding.Default.GetBytes("888888");
            Array.Copy(temp, bPass, temp.Length);
            sChConInfor.m_sNetLinkInfo.m_pchPsw    = bPass;
            sChConInfor.m_sNetLinkInfo.m_iTranType = 1;
            byte[] bUrl = new byte[20];
            Array.Clear(bUrl, 0, 20);
            temp = Encoding.Default.GetBytes(m_strMMIp);
            Array.Copy(temp, bUrl, temp.Length);
            sChConInfor.m_sNetLinkInfo.m_pchUrl = bUrl;
            sChConInfor.m_sNetLinkInfo.m_iPort  = 3004;
            sChConInfor.m_iType    = 0x0201018;
            sChConInfor.m_iChNo    = 0;
            sChConInfor.m_iBuffNum = 50;

            iRet = VsClientAPI.VSSP_ClientPTZCtrl(ref sChConInfor.m_sNetLinkInfo, sChConInfor.m_iChNo, _iCommond, _iValue, _iPriority, /*m_iExclusivedTime*/ 10);
            return(iRet);
        }
        /// <summary>
        /// 连接视频
        /// </summary>
        public Int32 ConnectVideo(IntPtr _hWnd)
        {
            m_lHandle     = -1;
            m_bRecording  = false;
            m_bConnected  = false;
            m_sChConInfor = new DefVsClient.CHANNEL_CONINFOR();
            m_sChConInfor.m_sNetLinkInfo.m_pchFromID = Encoding.Default.GetBytes("900000000001");
            m_sChConInfor.m_sNetLinkInfo.m_pchToID   = Encoding.Default.GetBytes(m_strDevId + "000");

            byte[] temp  = null;
            byte[] bUser = new byte[12];
            Array.Clear(bUser, 0, 12);
            temp = Encoding.Default.GetBytes("888888");
            Array.Copy(temp, bUser, temp.Length);
            m_sChConInfor.m_sNetLinkInfo.m_pchUser = bUser;
            byte[] bPass = new byte[12];
            Array.Clear(bPass, 0, 12);
            temp = Encoding.Default.GetBytes("888888");
            Array.Copy(temp, bPass, temp.Length);
            m_sChConInfor.m_sNetLinkInfo.m_pchPsw    = bPass;
            m_sChConInfor.m_sNetLinkInfo.m_iTranType = 1;
            byte[] bUrl = new byte[20];
            Array.Clear(bUrl, 0, 20);
            temp = Encoding.Default.GetBytes(m_strMMIp);
            Array.Copy(temp, bUrl, temp.Length);
            m_sChConInfor.m_sNetLinkInfo.m_pchUrl = bUrl;
            m_sChConInfor.m_sNetLinkInfo.m_iPort  = 3000;
            m_sChConInfor.m_iType    = 0x0201018;
            m_sChConInfor.m_hVideo   = _hWnd;
            m_sChConInfor.m_iChNo    = 0;
            m_sChConInfor.m_iBuffNum = 50;
            m_lHandle = VsClientAPI.VSSP_ClientStart(ref m_sChConInfor);
            CloseAudio();
            return(m_lHandle);
        }
Beispiel #5
0
        // 控制前端设备
        public Int32 PTZCtrl(Int32 _iCommond, Int32 _iValue, Int32 _iPriority)
        {
            Int32 iRet = -1;

            DefVsClient.CHANNEL_CONINFOR sChConInfor = GetChConInfor();
            iRet = VsClientAPI.VSSP_ClientPTZCtrl(ref sChConInfor.m_sNetLinkInfo, sChConInfor.m_iChNo, _iCommond, _iValue, _iPriority, /*m_iExclusivedTime*/ 10);
            return(iRet);
        }
Beispiel #6
0
 /// <summary>
 /// 停止播放
 /// </summary>
 public void StopPlay()
 {
     VsClientAPI.VSSP_ClientStopPlay(m_lHandle);
     m_strId    = "";
     m_strSvrIp = "";
     m_lHandle  = -1;
     m_CapPath  = "";
 }
Beispiel #7
0
 //断开视频
 public void DisConnectVideo()
 {
     if (m_iPlayHandle != -1)
     {
         VsClientAPI.VSSP_ClientStop(m_iPlayHandle);
     }
     m_iPlayHandle = -1;
 }
        /// <summary>
        /// 更改视频主显示区
        /// </summary>
        public Int32 ShowVideo(IntPtr _hWnd)
        {
            Int32 iRet = -1;

            if (m_lHandle != -1)
            {
                iRet = VsClientAPI.VSSP_ClientSetWnd(m_lHandle, _hWnd, true);
            }
            return(iRet);
        }
        /// <summary>
        /// 关闭音频
        /// </summary>
        public Int32 CloseAudio()
        {
            Int32 iRet = -1;

            if (m_lHandle != -1)
            {
                iRet = VsClientAPI.VSSP_ClientStopAudio(m_lHandle);
            }
            return(iRet);
        }
Beispiel #10
0
        /// <summary>
        /// 抓拍图片
        /// </summary>
        /// <param name="_strFilePath">保存路径</param>
        /// <returns></returns>
        public Int32 CaptureBmp(string _strFilePath)
        {
            Int32 iRet = -1;

            if (m_lHandle != -1)
            {
                iRet = VsClientAPI.VSSP_ClientBmpCap(m_lHandle, _strFilePath);
            }
            return(iRet);
        }
        /// <summary>
        /// 设置音量
        /// </summary>
        public Int32 SetAudioVolume(UInt32 _uVolume)
        {
            Int32 iRet = -1;

            if (m_lHandle != -1)
            {
                iRet      = VsClientAPI.VSSP_ClientAudioVolum(m_lHandle, _uVolume);
                m_iVolume = _uVolume;
            }
            return(iRet);
        }
Beispiel #12
0
 /// <summary>
 /// 自己api连接视频
 /// </summary>
 /// <param name="strId">登录摄像机id</param>
 /// <param name="strIp">登录摄像机ip</param>
 /// <param name="strName">登录摄像机名称</param>
 public void ConnectVideoSelf(string strId, string strIp, string strName)
 {
     m_strName  = strName;
     m_strCamId = strId;
     m_strSvrIp = strIp;
     DefVsClient.CHANNEL_CONINFOR sChConInfor = GetChConInfor();
     m_lPlayHandle = VsClientAPI.VSSP_ClientStart(ref sChConInfor);
     if (m_lPlayHandle >= 0)
     {
         m_bConnected = true;
     }
 }
Beispiel #13
0
        /// <summary>
        /// 播放视频
        /// </summary>
        /// <param name="_pchUrl">摄像机ip</param>
        /// <param name="_startTime">开始时间</param>
        /// <param name="_endTime">结束时间</param>
        /// <param name="_playTime">播放时间</param>
        /// <param name="_pchCamId">摄像机id</param>
        public void StartPlay(byte[] _pchUrl, DefVsClient.PLAY_NETTIME _startTime,
                              DefVsClient.PLAY_NETTIME _endTime, DefVsClient.PLAY_NETTIME _playTime, string _pchCamId)
        {
            m_strId    = _pchCamId;
            m_strSvrIp = System.Text.Encoding.Default.GetString(_pchUrl);
            string sUser = "******";
            string sPass = "******";

            byte[] byUser = System.Text.Encoding.Default.GetBytes(sUser);
            byte[] byPass = System.Text.Encoding.Default.GetBytes(sPass);
            m_lHandle    = VsClientAPI.VSSP_ClientPlayByTime(_pchUrl, byUser, byPass, _startTime, _endTime, _playTime, _pchCamId, ucSinglePanle.Handle, 4002);
            m_bIsConnect = true;
        }
Beispiel #14
0
        //开始录像
        public Int32 StartRecFile(string _strFilePath)
        {
            Int32 iRet = -1;

            if (m_lHandle != -1)
            {
                iRet = VsClientAPI.VSSP_ClientStartRecord(m_lHandle, _strFilePath);
                if (iRet == 0)
                {
                    m_bRecording = true;
                }
            }
            return(iRet);
        }
Beispiel #15
0
        //停止录像
        public Int32 StopRecFile()
        {
            Int32 iRet = -1;

            if (m_lHandle != -1 && m_bRecording == true)
            {
                iRet = VsClientAPI.VSSP_ClientStopRecord(m_lHandle);
                if (iRet == 0)
                {
                    m_bRecording = false;
                }
            }
            return(iRet);
        }
Beispiel #16
0
        /*******************************************************/
        /// <summary>
        /// 读取配合文件ini的回调函数
        /// </summary>
        /// <param name="_sCallBackData">读取的key值和value(json字符串)</param>
        public void ReadIniCallBack(string _sCallBackData)
        {
            JObject jObject = JObject.Parse(_sCallBackData);

            if (jObject.Count > 0)
            {
                foreach (var Obj in jObject)
                {
                    //读取的抓拍路径
                    if (Obj.Key == "CapPicPath")
                    {
                        JToken jToken = Obj.Value;
                        m_sCapPicPath = jToken.Value <string>();
                        if (m_sCapPicPath != "")
                        {
                            ucVGSHow.SetCapturePath(m_sCapPicPath, true);
                        }
                    }
                    //读取的VsClient.dll的路径,并初始化动态库
                    else if (Obj.Key == "VsClientPath")
                    {
                        JToken jToken = Obj.Value;
                        m_sVsClientPath = jToken.Value <string>();
                        if (m_sVsClientPath != "")
                        {
                            if (!m_bIsInitSelfSucc)
                            {
                                //加载自己的api库
                                if (VsClientAPI.LoadVsClientAPI(m_sVsClientPath))
                                {
                                    VsClientAPI.VSSP_ClientStartup(DefIcomClient.WM_VSCLIENT_DLL_MSG, this.Handle, m_MsgCallBack);
                                    VsClientAPI.VSSP_ClientWaitTime(2, 2);
                                    m_bIsInitSelfSucc = true;
                                }
                            }
                        }
                    }
                    //读取HCNetSDK.dll的路径,并初始化动态库
                    else if (Obj.Key == "HikSDKPath")
                    {
                        JToken jToken = Obj.Value;
                        m_sHCNetSDKPath = jToken.Value <string>();
                        //设置海康的环境变量
                        //string sPath = m_sHCNetSDKPath.Replace("\\\\", "\\");
                        System.Environment.SetEnvironmentVariable("HDCNETSDK", m_sHCNetSDKPath);
                    }
                }
            }
        }
Beispiel #17
0
 //断开视频
 public void DisConnectVideoSelf()
 {
     if (m_lPlayHandle != -1)
     {
         //StopRecFile();
         VsClientAPI.VSSP_ClientStop(m_lPlayHandle);
         //pnlShowVideo.Refresh();
         //pnlShowVideo.BackgroundImage = Resources.VideoBack;
         m_bConnected  = false;
         m_lPlayHandle = -1;
         m_strCamId    = "";
         m_strName     = "";
         m_strSvrIp    = "";
     }
 }
        /// <summary>
        /// 打开音频
        /// </summary>
        public Int32 OpenAudio()
        {
            Int32 iRet = -1;

            if (m_lHandle != -1)
            {
                if (m_bConnected == true)
                {
                    iRet = VsClientAPI.VSSP_ClientPlayAudio(m_lHandle);
                    if (m_iVolume != 0)
                    {
                        iRet = VsClientAPI.VSSP_ClientAudioVolum(m_lHandle, m_iVolume);
                    }
                }
            }
            return(iRet);
        }
        /// <summary>
        /// 断开视频
        /// </summary>
        public Int32 DisConnectVideo()
        {
            Int32 iRet = -1;

            if (m_lHandle != -1)
            {
                if (m_bRecording == true)
                {
                    StopRecFile();
                }
                iRet         = VsClientAPI.VSSP_ClientStop(m_lHandle);
                m_bConnected = false;
                m_lHandle    = -1;
                m_strDevId   = "";
            }
            return(iRet);
        }
Beispiel #20
0
        //连接视频
        public void ConnectVideo(string strId, string strIp, string strName, int iType, int iChannel, int iLoginHandle = -1)
        {
            m_iType = iType;
            switch (iType)
            {
            case 1:    //自己api
                m_sIp    = strIp;
                m_sCamId = strId;
                m_sName  = strName;
                DefVsClient.CHANNEL_CONINFOR sChConInfor = GetChConInfor();
                m_iPlayHandle = VsClientAPI.VSSP_ClientStart(ref sChConInfor);
                break;

            case 2:    //海康api
                ConnectVideoHik(iLoginHandle, iChannel, strName);
                break;
            }
        }
Beispiel #21
0
        /// <summary>
        /// 双击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void PanelFull_DoubleClick(object sender, EventArgs e)
        {
            if (m_iType != -1)
            {
                switch (m_iType)
                {
                case 1:    //自己api
                    VsClientAPI.VSSP_ClientSetPlayHwnd(m_iHandle, m_pOldHandle);
                    this.Visible = false;
                    break;

                case 2:    //海康api
                    StopPlayHik();
                    this.Visible = false;
                    break;
                }
            }
        }
Beispiel #22
0
 /// <summary>
 /// 释放资源
 /// </summary>
 public void DelVideoAx()
 {
     if (m_lstLoginInfo.Count > 0)
     {
         ucSVideo.StopPlay();
         /*\ 关闭线程 /*/
         m_oThread.Abort();
         for (int i = 0; i < m_lstLoginInfo.Count; i++)
         {
             if (m_lstLoginInfo[i].iHandle != -1)
             {
                 CHCNetSDK.NET_DVR_Logout_V30(m_lstLoginInfo[i].iHandle);
                 m_lstLoginInfo.Clear();
             }
         }
         bool  bHikIsSucc = CHCNetSDK.NET_DVR_Cleanup();
         Int32 iIsSucc    = VsClientAPI.VSSP_ClientCleanup();
     }
 }
Beispiel #23
0
 /// <summary>
 /// 释放资源
 /// </summary>
 public void DelVideoAx()
 {
     m_bIsInitHikSucc  = false;
     m_bIsInitSelfSucc = false;
     m_oThreadLogin.Abort();
     if (m_lstLoginInfo.Count > 0)
     {
         ucVGSHow.DisConnectVideoAll();
         for (int i = 0; i < m_lstLoginInfo.Count; i++)
         {
             if (m_lstLoginInfo[i].iHandle != -1)
             {
                 CHCNetSDK.NET_DVR_Logout(m_lstLoginInfo[i].iHandle);
             }
         }
         m_lstLoginInfo.Clear();
         bool  bHikIsSucc = CHCNetSDK.NET_DVR_Cleanup();
         Int32 iIsSucc    = VsClientAPI.VSSP_ClientCleanup();
     }
 }
 //断开视频
 public void DisConnectVideo()
 {
     if (m_lHandle != -1)
     {
         //StopRecFile();
         VsClientAPI.VSSP_ClientStop(m_lHandle);
         //pnlShowVideo.Refresh();
         //pnlShowVideo.BackgroundImage = Resources.VideoBack;
         m_lHandle          = -1;
         m_strCamId         = "";
         m_strSvrIp         = "";
         m_bConnected       = false;
         m_bRecording       = false;
         pnlCaption.Visible = false;
         m_iType            = -1;
         m_iChannel         = -1;
         m_bIsFirstFloder   = false;
         m_HikLoginHandle   = -1;
     }
 }
Beispiel #25
0
 //销毁相关资源
 public void UnInitBethVideo()
 {
     tmrDealMsg.Enabled = false;
     if (m_lstLoginInfo.Count > 0)
     {
         ucVideoMain.DisAllConnectVideo();
         /*\ 关闭线程 /*/
         m_threadLoginHost.Abort();
         for (int i = 0; i < m_lstLoginInfo.Count; i++)
         {
             if (m_lstLoginInfo[i].iHandle >= 0)
             {
                 CHCNetSDK.NET_DVR_Logout_V30(m_lstLoginInfo[i].iHandle);
             }
         }
         m_lstLoginInfo.Clear();
         VsClientAPI.VSSP_ClientCleanup();
         CHCNetSDK.NET_DVR_Cleanup();
     }
 }
Beispiel #26
0
        //设置视频参数
        public Int32 SetVideoParams(Int32 _iBri, Int32 _iCon, Int32 _iSat, Int32 _iHue)
        {
            Int32 iRet = -1;

            if (m_lHandle != -1)
            {
                DefVsClient.PARAM_SET_DATA   ParamSetData = new DefVsClient.PARAM_SET_DATA();
                DefVsClient.CHANNEL_CONINFOR sChConInfor  = GetChConInfor();
                ParamSetData.m_sNetLinkInfo = sChConInfor.m_sNetLinkInfo;
                ParamSetData.m_iChNo        = sChConInfor.m_iChNo;
                ParamSetData.m_iCommand     = (Int32)ParamCmdType.cmdViParam;
                ParamSetData.m_iPriority    = 1;
                byte[] byteArray = new byte[4096];
                byteArray[0]             = (byte)_iBri;
                byteArray[1]             = (byte)_iCon;
                byteArray[2]             = (byte)_iSat;
                byteArray[3]             = (byte)_iHue;
                ParamSetData.m_pchParams = byteArray;
                iRet = VsClientAPI.VSSP_ClientSetDevParam(ref ParamSetData);
            }
            return(iRet);
        }
Beispiel #27
0
        /// <summary>
        /// 读取配合文件ini的回调函数
        /// </summary>
        /// <param name="_sCallBackData">读取的key值和value(json字符串)</param>
        public void ReadIniCallBack(string _sCallBackData)
        {
            JObject jObject = JObject.Parse(_sCallBackData);

            if (jObject.Count > 0)
            {
                foreach (var Obj in jObject)
                {
                    //读取的VsClient.dll的路径,并初始化动态库
                    if (Obj.Key == "VsClientPath")
                    {
                        JToken jToken = Obj.Value;
                        m_sVsClientPath = jToken.Value <string>();
                        if (m_sVsClientPath != "")
                        {
                            //加载自己的api库
                            if (VsClientAPI.LoadVsClientAPI(m_sVsClientPath))
                            {
                                VsClientAPI.VSSP_ClientStartup(DefIcomClient.WM_VSCLIENT_DLL_MSG, this.Handle, m_MsgCallBackSelf);
                                VsClientAPI.VSSP_ClientWaitTime(2, 2);
                            }
                        }
                    }
                    //读取HCNetSDK.dll的路径,并初始化动态库
                    else if (Obj.Key == "HikSDKPath")
                    {
                        JToken jToken = Obj.Value;
                        m_sHCNetSDKPath = jToken.Value <string>();
                        //设置海康的环境变量
                        System.Environment.SetEnvironmentVariable("HDCNETSDK_BETHVIDEO", m_sHCNetSDKPath);
                        //初始化海康sdk
                        if (CHCNetSDK.NET_DVR_Init())
                        {
                            CHCNetSDK.NET_DVR_SetDVRMessageCallBack_V31(m_MsgCallback, IntPtr.Zero);
                        }
                    }
                }
            }
        }
Beispiel #28
0
 /// <summary>
 /// 释放资源
 /// </summary>
 public void DelVideoAx()
 {
     VsClientAPI.VSSP_ClientCleanup();
 }
Beispiel #29
0
 /// <summary>
 /// 返回文件播放的时间
 /// </summary>
 /// <returns>返回文件播放时间</returns>
 public long GetFilePlayTime()
 {
     return(VsClientAPI.VSSP_ClientGetPlayedTime(m_lHandle));
 }
Beispiel #30
0
 /// <summary>
 /// 返回文件播放时间(绝对时间,从开始播放当前时间开始)
 /// </summary>
 public uint GetFilePlayTimeByTime()
 {
     return(VsClientAPI.VSSP_GetDownPlayTime(m_lHandle));
 }