コード例 #1
0
        private void btnTimeCorr_Click(object sender, EventArgs e)
        {
            CHCNetSDK.NET_DVR_TIME CurTime = new CHCNetSDK.NET_DVR_TIME();
            CurTime.dwYear   = dateTimePickerCorrection.Value.Year;
            CurTime.dwMonth  = dateTimePickerCorrection.Value.Month;
            CurTime.dwDay    = dateTimePickerCorrection.Value.Day;
            CurTime.dwHour   = dateTimePickerCorrection.Value.Hour;
            CurTime.dwMinute = dateTimePickerCorrection.Value.Minute;
            CurTime.dwSecond = dateTimePickerCorrection.Value.Second;

            int    dwSize     = (int)Marshal.SizeOf(CurTime);
            IntPtr ptrCurTime = Marshal.AllocHGlobal(dwSize);

            Marshal.StructureToPtr(CurTime, ptrCurTime, true);
            Boolean res = CHCNetSDK.NET_DVR_SetDVRConfig(m_loginID, CHCNetSDK.NET_DVR_SET_TIMECFG, 0, ptrCurTime, (uint)dwSize);

            if (true == res)
            {
                g_formList.AddLog(iDevIndex, AcsDemoPublic.OPERATION_SUCC_T, "NET_DVR_SET_TIMECFG");
            }
            else
            {
                g_formList.AddLog(iDevIndex, AcsDemoPublic.OPERATION_FAIL_T, "NET_DVR_SET_TIMECFG");
            }
            Marshal.FreeHGlobal(ptrCurTime);
        }
コード例 #2
0
        private void btnTimeGet_Click(object sender, EventArgs e)
        {
            UInt32 dwReturn   = 0;
            Int32  nSize      = Marshal.SizeOf(m_struTimeCfg);
            IntPtr ptrTimeCfg = Marshal.AllocHGlobal(nSize);

            Marshal.StructureToPtr(m_struTimeCfg, ptrTimeCfg, false);
            if (!CHCNetSDK.NET_DVR_GetDVRConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_TIMECFG, -1, ptrTimeCfg, (UInt32)nSize, ref dwReturn))
            {
                iLastErr = CHCNetSDK.NET_DVR_GetLastError();
                strErr   = "NET_DVR_GET_TIMECFG failed, error code= " + iLastErr;
                //获取设备时间失败,输出错误号 Failed to get time of the device and output the error code
                MessageBox.Show(strErr);
            }
            else
            {
                m_struTimeCfg      = (CHCNetSDK.NET_DVR_TIME)Marshal.PtrToStructure(ptrTimeCfg, typeof(CHCNetSDK.NET_DVR_TIME));
                textBoxYear.Text   = Convert.ToString(m_struTimeCfg.dwYear);
                textBoxMonth.Text  = Convert.ToString(m_struTimeCfg.dwMonth);
                textBoxDay.Text    = Convert.ToString(m_struTimeCfg.dwDay);
                textBoxHour.Text   = Convert.ToString(m_struTimeCfg.dwHour);
                textBoxMinute.Text = Convert.ToString(m_struTimeCfg.dwMinute);
                textBoxSecond.Text = Convert.ToString(m_struTimeCfg.dwSecond);
            }
            Marshal.FreeHGlobal(ptrTimeCfg);
        }
コード例 #3
0
        /// <summary>
        /// 双击放大视频
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ucSinglePanle_DoubleClick(object sender, EventArgs e)
        {
            int iTag = Convert.ToInt32(((Panel)sender).Tag);

            //this.Visible = false;
            m_fmFullScreen.Left   = 0;
            m_fmFullScreen.Top    = 0;
            m_fmFullScreen.Width  = Screen.PrimaryScreen.Bounds.Width;
            m_fmFullScreen.Height = Screen.PrimaryScreen.Bounds.Height;
            if (m_bIsConnect)
            {
                switch (m_iCamType)
                {
                case 1:    //自己api
                    m_fmFullScreen.Visible = true;
                    m_fmFullScreen.ChangeHandle(m_lHandle, ucSinglePanle.Handle, m_iCamType);
                    break;

                case 2:    //海康api
                    m_fmFullScreen.Visible = true;
                    m_fmFullScreen.StartPlayHik(m_iLoginHandle, m_sStartTime, m_sEndTime,
                                                m_iChannel, m_iCamType);
                    string sPlayTime = Convert.ToString(Convert.ToUInt64(GetFilePlayTimeHik()) + (Convert.ToUInt64(GetCurrentPlayTime()) - 10));
                    CHCNetSDK.NET_DVR_TIME oPlayTime = GetTimeObjectHik(sPlayTime);
                    Thread.Sleep(800);
                    m_fmFullScreen.SetPlayPlanHik(oPlayTime);
                    break;
                }
            }
        }
コード例 #4
0
ファイル: TimeSet.cs プロジェクト: liuslayer/RCCP
            /// <summary>
            /// 设备自动校时
            /// </summary>
            /// <param name="m_lUserID">设备登录成功后返回的ID</param>
            /// <returns></returns>
            public static bool TimingSetByAuto(Int32 m_lUserID)
            {
                CHCNetSDK.NET_DVR_TIME m_struTimeCfg = new CHCNetSDK.NET_DVR_TIME();
                m_struTimeCfg.dwYear   = (uint)DateTime.Now.Year;
                m_struTimeCfg.dwMonth  = (uint)DateTime.Now.Month;
                m_struTimeCfg.dwDay    = (uint)DateTime.Now.Day;
                m_struTimeCfg.dwHour   = (uint)DateTime.Now.Hour;
                m_struTimeCfg.dwMinute = (uint)DateTime.Now.Minute;
                m_struTimeCfg.dwSecond = (uint)DateTime.Now.Second;
                Int32  nSize      = Marshal.SizeOf(m_struTimeCfg);
                IntPtr ptrTimeCfg = Marshal.AllocHGlobal(nSize);

                Marshal.StructureToPtr(m_struTimeCfg, ptrTimeCfg, false);

                if (!CHCNetSDK.NET_DVR_SetDVRConfig(m_lUserID, CHCNetSDK.NET_DVR_SET_TIMECFG, -1, ptrTimeCfg, (UInt32)nSize))
                {
                    iLastErr = CHCNetSDK.NET_DVR_GetLastError();
                    strErr   = "NET_DVR_SET_TIMECFG failed, error code= " + iLastErr;
                    //设置时间失败,输出错误号 Failed to set the time of device and output the error code
                    Console.WriteLine(strErr);
                    return(false);
                }
                else
                {
                    Console.WriteLine("校时成功!");
                    return(true);
                }

                Marshal.FreeHGlobal(ptrTimeCfg);
            }
コード例 #5
0
ファイル: CameraControl.cs プロジェクト: rcw0125/-
        /// <summary>
        /// 修改DVR系统时间
        /// </summary>
        public bool SyncDateTime()
        {
            bool rtn = false;

            CHCNetSDK.NET_DVR_TIME time = new CHCNetSDK.NET_DVR_TIME();
            UInt32 dwReturn             = 0;
            Int32  nSize      = Marshal.SizeOf(time);
            IntPtr ptrTimeCfg = Marshal.AllocHGlobal(nSize);

            Marshal.StructureToPtr(time, ptrTimeCfg, false);
            if (CHCNetSDK.NET_DVR_GetDVRConfig(_userID, CHCNetSDK.NET_DVR_GET_TIMECFG, int.Parse(_cameraCfg.Channel), ptrTimeCfg, (UInt32)nSize, ref dwReturn))
            {
                time = (CHCNetSDK.NET_DVR_TIME)Marshal.PtrToStructure(ptrTimeCfg, typeof(CHCNetSDK.NET_DVR_TIME));
                Marshal.FreeHGlobal(ptrTimeCfg);
                time.dwYear   = (uint)DateTime.Now.Year;
                time.dwMonth  = (uint)DateTime.Now.Month;
                time.dwDay    = (uint)DateTime.Now.Day;
                time.dwHour   = (uint)DateTime.Now.Hour;
                time.dwMinute = (uint)DateTime.Now.Minute;
                time.dwSecond = (uint)DateTime.Now.Second;

                Int32  nSize1         = Marshal.SizeOf(time);
                IntPtr ptrShowStrCfg1 = Marshal.AllocHGlobal(nSize1);
                Marshal.StructureToPtr(time, ptrShowStrCfg1, false);
                if (CHCNetSDK.NET_DVR_SetDVRConfig(_userID, CHCNetSDK.NET_DVR_SET_TIMECFG, int.Parse(_cameraCfg.Channel), ptrShowStrCfg1, (UInt32)nSize1))
                {
                    rtn = true;
                }
                Marshal.FreeHGlobal(ptrShowStrCfg1);
            }

            return(rtn);
        }
コード例 #6
0
        public OResult <DateTime> GetPlayBackOsdTime()
        {
            try
            {
                if (_playbackHandle < 0)
                {
                    return(new OResult <DateTime>(DateTime.MinValue, "未找到的视频"));
                }

                var lpOsdTime = new CHCNetSDK.NET_DVR_TIME();
                var succ      = CHCNetSDK.NET_DVR_GetPlayBackOsdTime(_playbackHandle, ref lpOsdTime);

                if (!succ)
                {
                    return(new OResult <DateTime>(DateTime.MinValue, HkvsErrorCode.GetLastErrorCode(), $"获取OSD时间失败:{HkvsErrorCode.GetLastErrorMessage()}"));
                }

                var dt = new DateTime((Int32)lpOsdTime.dwYear, (Int32)lpOsdTime.dwMonth, (Int32)lpOsdTime.dwDay, (Int32)lpOsdTime.dwHour, (Int32)lpOsdTime.dwMinute, (Int32)lpOsdTime.dwSecond);
                return(new OResult <DateTime>(dt));
            }
            catch (Exception ex)
            {
                return(new OResult <DateTime>(DateTime.MinValue, ex));
            }
        }
コード例 #7
0
 private void UpDvrDate(CHCNetSDK.NET_DVR_TIME t0, ref CHCNetSDK.NET_DVR_TIME t)
 {
     t.dwYear   = t0.dwYear;
     t.dwMonth  = t0.dwMonth;
     t.dwDay    = t0.dwDay;
     t.dwHour   = t0.dwHour;
     t.dwMinute = t0.dwMinute;
     t.dwSecond = t0.dwSecond;
 }
コード例 #8
0
 private void UpDvrDate(DateTime d, ref CHCNetSDK.NET_DVR_TIME t)
 {
     t.dwYear   = (uint)d.Year;
     t.dwMonth  = (uint)d.Month;
     t.dwDay    = (uint)d.Day;
     t.dwHour   = (uint)d.Hour;
     t.dwMinute = (uint)d.Minute;
     t.dwSecond = (uint)d.Second;
 }
コード例 #9
0
        private CHCNetSDK.NET_DVR_TIME m_oPlayTime; //播放时间

        public fm_FullScreen()
        {
            InitializeComponent();
            m_pOldHandle   = IntPtr.Zero;
            m_iLoginHandle = -1;
            m_iChannel     = -1;
            m_iType        = -1;
            m_iHandle      = -1;
            m_oPlayTime    = new CHCNetSDK.NET_DVR_TIME();
        }
コード例 #10
0
        /// <summary>
        /// 得到播放的总时间
        /// </summary>
        /// <returns>返回时间戳</returns>
        //public string GetTotalPlayTimeHik()
        //{
        //    string oTime = GetFilePlayTimeHik();
        //    return oTime;
        //}

        /// <summary>
        /// 设置海康录像播放进度
        /// </summary>
        /// <param name="_iPlan">播放进度</param>
        public void SetPlayPlanHik(string _sPlayTime)
        {
            CHCNetSDK.NET_DVR_TIME _oPlanTime = GetTimeObjectHik(_sPlayTime);
            IntPtr pIn = Marshal.AllocHGlobal(Marshal.SizeOf(_oPlanTime));

            Marshal.StructureToPtr(_oPlanTime, pIn, true);
            uint pInLeng  = (uint)Marshal.SizeOf(pIn);
            uint pOutLeng = 0;

            CHCNetSDK.NET_DVR_PlayBackControl_V40(m_iPlayHandle, (uint)EHikControlInfo.NET_DVR_PLAYSETTIME,
                                                  pIn, pInLeng, IntPtr.Zero, ref pOutLeng);
        }
コード例 #11
0
        public DateTime GetReplayOsdDateTime(int playHandle)
        {
            DateTime osdDateTime = DateTime.MinValue;

            CHCNetSDK.NET_DVR_TIME nvrOsdTime = new CHCNetSDK.NET_DVR_TIME();
            bool isSuccessful = CHCNetSDK.NET_DVR_GetPlayBackOsdTime(playHandle, ref nvrOsdTime);

            if (isSuccessful)
            {
                osdDateTime = nvrOsdTime.ToDateTime();
            }

            return(osdDateTime);
        }
コード例 #12
0
        /// <summary>
        /// 返回海康时间结构体
        /// </summary>
        /// <param name="_sTime">要转换为结构体的时间字符串</param>
        /// <returns>返回一个CHCNetSDK.NET_DVR_TIME 对象</returns>
        public CHCNetSDK.NET_DVR_TIME GetTimeObjectHik(string _sTime)
        {
            System.DateTime startTime  = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
            DateTime        oStartTime = startTime.AddSeconds(Convert.ToDouble(_sTime));

            CHCNetSDK.NET_DVR_TIME oRetTime = new CHCNetSDK.NET_DVR_TIME();
            oRetTime.dwYear   = (uint)oStartTime.Year;
            oRetTime.dwMonth  = (uint)oStartTime.Month;
            oRetTime.dwDay    = (uint)oStartTime.Day;
            oRetTime.dwHour   = (uint)oStartTime.Hour;
            oRetTime.dwMinute = (uint)oStartTime.Minute;
            oRetTime.dwSecond = (uint)oStartTime.Second;
            return(oRetTime);
        }
コード例 #13
0
        /// <summary>
        /// 设置海康录像播放进度
        /// </summary>
        /// <param name="_iPlan">播放进度</param>
        public void SetPlayPlanHik(CHCNetSDK.NET_DVR_TIME _oPlayTime)
        {
            IntPtr pIn = Marshal.AllocHGlobal(Marshal.SizeOf(_oPlayTime));

            Marshal.StructureToPtr(_oPlayTime, pIn, true);
            uint pInLeng  = (uint)Marshal.SizeOf(pIn);
            uint pOutLeng = 0;

            if (m_iHandle >= 0)
            {
                CHCNetSDK.NET_DVR_PlayBackControl_V40(m_iHandle, (uint)EHikControlInfo.NET_DVR_PLAYSETTIME,
                                                      pIn, pInLeng, IntPtr.Zero, ref pOutLeng);
            }
            Marshal.FreeHGlobal(pIn);
        }
コード例 #14
0
ファイル: HK_NVR.cs プロジェクト: nangs/ry-rec-client
        /// <summary>
        /// 回放控制
        /// </summary>
        /// <param name="session"></param>
        /// <param name="cmd"></param>
        /// <param name="parm"></param>
        /// <returns></returns>
        int NvrInterface.playBackCtl(int session, PLAY_BACK_CMD cmd, Object parm)
        {
            uint iOutValue = 0;

            switch (cmd)
            {
            case PLAY_BACK_CMD.START:           // 播放
                CHCNetSDK.NET_DVR_PlayBackControl_V40(session - 1, CHCNetSDK.NET_DVR_PLAYSTART, IntPtr.Zero, 0, IntPtr.Zero, ref iOutValue);
                break;

            case PLAY_BACK_CMD.PAUSE:           // 暂停
                CHCNetSDK.NET_DVR_PlayBackControl_V40(session - 1, CHCNetSDK.NET_DVR_PLAYPAUSE, IntPtr.Zero, 0, IntPtr.Zero, ref iOutValue);
                break;

            case PLAY_BACK_CMD.RESUME:          // 恢复
                CHCNetSDK.NET_DVR_PlayBackControl_V40(session - 1, CHCNetSDK.NET_DVR_PLAYRESTART, IntPtr.Zero, 0, IntPtr.Zero, ref iOutValue);
                break;

            case PLAY_BACK_CMD.POSITION:        // 定位
                DateTime pTime = (DateTime)parm;
                CHCNetSDK.NET_DVR_TIME pTimeS = new CHCNetSDK.NET_DVR_TIME();
                uint inSize = (uint)Marshal.SizeOf(pTimeS);

                pTimeS.dwYear   = (uint)pTime.Year;
                pTimeS.dwMonth  = (uint)pTime.Month;
                pTimeS.dwDay    = (uint)pTime.Day;
                pTimeS.dwHour   = (uint)pTime.Hour;
                pTimeS.dwMinute = (uint)pTime.Minute;
                pTimeS.dwSecond = (uint)pTime.Second;

                IntPtr buffer = Marshal.AllocHGlobal(Marshal.SizeOf(pTimeS));
                Marshal.StructureToPtr(pTimeS, buffer, false);
                CHCNetSDK.NET_DVR_PlayBackControl_V40(session - 1, CHCNetSDK.NET_DVR_PLAYSETTIME, buffer, inSize, IntPtr.Zero, ref iOutValue);
                Marshal.FreeHGlobal(buffer);
                break;
            }
            return(0);
        }
コード例 #15
0
ファイル: TimeSet.cs プロジェクト: liuslayer/RCCP
            /// <summary>
            /// 设备手动校时
            /// </summary>
            /// <param name="m_struTimeCfg">时间结构体</param>
            /// <param name="m_lUserID">设备登录成功后返回的ID</param>
            /// <returns></returns>
            public static bool TimimgSetByParam(CHCNetSDK.NET_DVR_TIME m_struTimeCfg, Int32 m_lUserID)
            {
                Int32  nSize      = Marshal.SizeOf(m_struTimeCfg);
                IntPtr ptrTimeCfg = Marshal.AllocHGlobal(nSize);

                Marshal.StructureToPtr(m_struTimeCfg, ptrTimeCfg, false);

                if (!CHCNetSDK.NET_DVR_SetDVRConfig(m_lUserID, CHCNetSDK.NET_DVR_SET_TIMECFG, -1, ptrTimeCfg, (UInt32)nSize))
                {
                    iLastErr = CHCNetSDK.NET_DVR_GetLastError();
                    strErr   = "NET_DVR_SET_TIMECFG failed, error code= " + iLastErr;
                    //设置时间失败,输出错误号 Failed to set the time of device and output the error code
                    Console.WriteLine(strErr);
                    return(false);
                }
                else
                {
                    Console.WriteLine("校时成功!");
                    return(true);
                }

                Marshal.FreeHGlobal(ptrTimeCfg);
            }
コード例 #16
0
        private void button1_Click(object sender, EventArgs e)
        {
            CHCNetSDK.NET_DVR_TIME DevTime = new CHCNetSDK.NET_DVR_TIME();
            int    dwSize     = (int)Marshal.SizeOf(DevTime);
            IntPtr PtrDevTime = Marshal.AllocHGlobal(dwSize);

            Marshal.StructureToPtr(DevTime, PtrDevTime, true);
            uint    dwReturn = 0;
            Boolean res      = CHCNetSDK.NET_DVR_GetDVRConfig(m_loginID, CHCNetSDK.NET_DVR_GET_TIMECFG, 0, PtrDevTime, (uint)dwSize, ref dwReturn);

            DevTime = (CHCNetSDK.NET_DVR_TIME)Marshal.PtrToStructure(PtrDevTime, typeof(CHCNetSDK.NET_DVR_TIME));
            if (true == res)
            {
                g_formList.AddLog(iDevIndex, AcsDemoPublic.OPERATION_SUCC_T, "NET_DVR_GET_TIMECFG");
                textBoxDevTime.Text = DevTime.dwYear.ToString() + ":" + DevTime.dwMonth.ToString() + ":" + DevTime.dwDay.ToString() + ":" +
                                      DevTime.dwHour.ToString() + ":" + DevTime.dwMinute.ToString() + ":" + DevTime.dwSecond.ToString();
            }
            else
            {
                g_formList.AddLog(iDevIndex, AcsDemoPublic.OPERATION_FAIL_T, "NET_DVR_GET_TIMECFG");
            }
            Marshal.FreeHGlobal(PtrDevTime);
        }
コード例 #17
0
ファイル: TimeSet.cs プロジェクト: liuslayer/RCCP
 public static bool TimeSetBySuperior(string Year, string Month, string Day, string Hour, string Minute, string Second, string IP)
 {
     CHCNetSDK.NET_DVR_TIME m_struTimeCfg = new CHCNetSDK.NET_DVR_TIME();
     try
     {
         m_struTimeCfg.dwYear   = Convert.ToUInt16(Year);
         m_struTimeCfg.dwMonth  = Convert.ToUInt16(Month);
         m_struTimeCfg.dwDay    = Convert.ToUInt16(Day);
         m_struTimeCfg.dwHour   = Convert.ToUInt16(Hour);
         m_struTimeCfg.dwMinute = Convert.ToUInt16(Minute);
         m_struTimeCfg.dwSecond = Convert.ToUInt16(Second);
         int m_UserID = -1;
         if (MediaData.Device_UserID_Alarm.ContainsKey(IP))
         {
             m_UserID = MediaData.Device_UserID_Alarm[IP].UserID;
         }
         bool temp = TimimgSetByParam(m_struTimeCfg, m_UserID);
         return(temp);
     }
     catch (Exception)
     {
         return(false);
     }
 }
コード例 #18
0
 /// <summary>
 /// 设置播放时间
 /// </summary>
 /// <param name="_sPlayTime">播放时间</param>
 public void SetPlayTime(CHCNetSDK.NET_DVR_TIME _oPlayTime)
 {
     m_oPlayTime = _oPlayTime;
 }
コード例 #19
0
 private DateTime GetDate(CHCNetSDK.NET_DVR_TIME t)
 {
     return(new DateTime((int)t.dwYear, (int)t.dwMonth, (int)t.dwDay, (int)t.dwHour, (int)t.dwMinute, (int)t.dwSecond));
 }
コード例 #20
0
 /// <summary>
 /// 得到回放录像osd时间
 /// </summary>
 public CHCNetSDK.NET_DVR_TIME GetReplayOSDTime()
 {
     CHCNetSDK.NET_DVR_TIME oOSDTime = new CHCNetSDK.NET_DVR_TIME();
     CHCNetSDK.NET_DVR_GetPlayBackOsdTime(m_iLoginHandle, ref oOSDTime);
     return(oOSDTime);
 }
コード例 #21
0
 private int GetSeconds(CHCNetSDK.NET_DVR_TIME t)
 {
     return((int)(t.dwHour * 3600 + t.dwMinute * 60 + t.dwSecond));
 }