Ejemplo n.º 1
0
        private IVideoSourceConfig GetBackPlayVSConfig(IVideoSourceConfig vsConfig, IAlarmInfo alarmInfo)
        {
            CVideoSourceConfig newVSConfig = vsConfig.Clone() as CVideoSourceConfig;

            if (newVSConfig != null)
            {
                newVSConfig.Name      = vsConfig.Name + "_BackPlay_" + newVSConfig.Handle;
                newVSConfig.StartTime = alarmInfo.AlarmTime.AddSeconds(-10);
                newVSConfig.StopTime  = alarmInfo.AlarmTime;
                newVSConfig.IsRecord  = false;
                newVSConfig.IsCycle   = false;
                newVSConfig.Enabled   = true;
            }

            IVideoSourceType vsType = vsConfig.SystemContext.VideoSourceTypeManager.GetConfig(vsConfig.Type);

            if (vsType != null)
            {
                string backPlayType = vsType.BackPlayType;
                if (!backPlayType.Equals(""))
                {
                    newVSConfig.Type     = backPlayType;
                    newVSConfig.FileName = "";
                }
            }
            return(newVSConfig);
        }
Ejemplo n.º 2
0
        protected override bool ExecuteAction(object source, IActionParam param)
        {
            //System.Console.Out.WriteLine("CPTZAction.ExecuteAction: Action=" + Config.Desc);
            CLocalSystem.WriteDebugLog(string.Format("CPTZAction({0}[{1}]).ExecuteAction", Config.Desc, Name));

            IVisionAlarm alarm = source as IVisionAlarm;

            if (alarm != null)
            {
                //System.Console.Out.WriteLine("CPTZAction.ExecuteAction: Sender=" + alarm.Sender + ", AlarmID=" + alarm.ID);
                CLocalSystem.WriteDebugLog(string.Format("CPTZAction({0}).ExecuteAction: Sender={1}, AlarmID={2}, ActionParam={3}", Name, alarm.Sender, alarm.ID, param.Name));

                //alarm.OnTransactAlarm += new TransactAlarm(DoTransactAlarm);

                if (System.Threading.Monitor.TryEnter(mPTZLockObj))
                {
                    try
                    {
                        IVisionMonitorConfig vmc = alarm.Monitor.Config as IVisionMonitorConfig;
                        if (vmc != null)
                        {
                            IConfigManager <IVideoSourceConfig> vsConfigManager = vmc.SystemContext.VideoSourceConfigManager;
                            if (vsConfigManager != null)
                            {
                                CVideoSourceConfig vcConfig = vsConfigManager.GetConfig(vmc.VisionParamConfig.VSName) as CVideoSourceConfig;
                                if (vcConfig != null)
                                {
                                    string vsName = vcConfig.StrValue("PTZVSName");

                                    CLocalSystem.WriteDebugLog(string.Format("CPTZAction({0}).ExecuteAction: PTZVSName={1}", Config.Desc, vsName));

                                    if (!vsName.Equals(""))
                                    {
                                        IVideoSourceConfig ptzvsConfig = vsConfigManager.GetConfig(vsName);
                                        if (ptzvsConfig != null)
                                        {
                                            return(StartPTZ(ptzvsConfig, alarm.AreaIndex));
                                        }
                                    }
                                }
                            }
                        }
                    }
                    finally
                    {
                        System.Threading.Monitor.Exit(mPTZLockObj);
                    }
                }
            }
            return(false);
        }
Ejemplo n.º 3
0
        public bool Preview()
        {
            if (mRealPlayVS != null && mRealPlayVS.IsOpen)
            {
                mRealPlayVS.SystemContext.VideoSourceManager.Close(mRealPlayVS.Name);
            }
            else
            {
                CFuncNode node = mLinkObj as CFuncNode;
                if (node != null)
                {
                    IVisionMonitorConfig config = node.ExtConfigObj as IVisionMonitorConfig;
                    if (config != null)
                    {
                        IVideoSourceConfig vsConfig = config.SystemContext.VideoSourceConfigManager.GetConfig(config.VisionParamConfig.VSName);

                        CVideoSourceConfig newVSConfig = vsConfig.Clone() as CVideoSourceConfig;
                        if (newVSConfig != null)
                        {
                            newVSConfig.Name    = vsConfig.Name + "_RealPlay_" + newVSConfig.Handle;
                            newVSConfig.Enabled = true;

                            if (mRealPlayVS != null)
                            {
                                mRealPlayVS.SystemContext.VideoSourceManager.Close(mRealPlayVS.Name);
                                mRealPlayVS = null;
                            }

                            mRealPlayVS = config.SystemContext.VideoSourceManager.Open(newVSConfig, HWnd);
                            if (mRealPlayVS != null)
                            {
                                mRealPlayVS.OnPlayStatusChanged += new PLAYSTATUS_CHANGED(DoPlayStausChanged);
                                return(mRealPlayVS.Play());
                            }
                        }
                    }
                }
            }
            return(false);
        }
Ejemplo n.º 4
0
        protected override bool ExecuteAction(object source, IActionParam param)
        {
            IVisionAlarm alarm = source as IVisionAlarm;

            if (alarm != null)
            {
                //CLocalSystem.WriteDebugLog(string.Format("{0} CHKPTZAction({1}).ExecuteAction: Sender={2}, AlarmID={3}, ActionParam={4}", Config.Desc, Name, alarm.Sender, alarm.ID, param.Name));

                try
                {
                    IConfigManager <IVideoSourceConfig> vsConfigManager = null;

                    string vsName = param.StrValue("VSName");
                    if (vsName.Equals(""))
                    {
                        vsName = PTZConfig.VSName;
                        if (vsName.Equals(""))
                        {
                            IVisionMonitorConfig vmc = alarm.Monitor.Config as IVisionMonitorConfig;
                            if (vmc != null)
                            {
                                vsConfigManager = vmc.SystemContext.VideoSourceConfigManager;
                                if (vsConfigManager != null)
                                {
                                    CVideoSourceConfig vcConfig = vsConfigManager.GetConfig(vmc.VisionParamConfig.VSName) as CVideoSourceConfig;
                                    if (vcConfig != null)
                                    {
                                        vsName = vcConfig.StrValue("PTZVSName");
                                    }

                                    if (vsName.Equals(""))
                                    {
                                        CLocalSystem.WriteWarnLog(string.Format("{0} CHKPTZAction({1}).ExecuteAction Failed: {2}({3})未设置属性\"PTZVSName\"", Config.Desc, Name, vcConfig.Desc, vcConfig.Name));
                                        return(false);
                                    }
                                }
                            }
                        }
                    }

                    if (!vsName.Equals(""))
                    {
                        if (vsConfigManager == null)
                        {
                            vsConfigManager = Config.SystemContext.VideoSourceConfigManager;
                        }

                        IVideoSourceConfig ptzvsConfig = vsConfigManager.GetConfig(vsName);
                        if (ptzvsConfig != null)
                        {
                            CLocalSystem.WriteDebugLog(string.Format("{0} CHKPTZAction({1}).ExecuteAction: PTZVSName={2}", Config.Desc, Name, vsName));

                            return(StartPTZ(ptzvsConfig, alarm.AreaIndex));
                        }
                        else
                        {
                            CLocalSystem.WriteWarnLog(string.Format("{0} CHKPTZAction({1}).ExecuteAction Failed: PTZVSName({2})所指向的视频源不存在!", Config.Desc, Name, vsName));
                        }
                    }
                    else
                    {
                        CLocalSystem.WriteWarnLog(string.Format("{0} CHKPTZAction({1}).ExecuteAction Failed: 未设置PTZ视频源!", Config.Desc, Name));
                    }
                }
                catch (Exception e)
                {
                    CLocalSystem.WriteErrorLog(string.Format("CHKPTZAction({0}).ExecuteAction Exception: {1}", Config.Desc, e));
                }
            }
            return(false);
        }
Ejemplo n.º 5
0
        public bool Playback()
        {
            if (mBackPlayVS != null && mBackPlayVS.IsOpen)
            {
                mBackPlayVS.SystemContext.VideoSourceManager.Close(mBackPlayVS.Name);
            }
            else if (mCurIndex >= 0 && mCurIndex < Count)
            {
                IVisionMonitorAlarm visionAlarm = Goto(mCurIndex) as IVisionMonitorAlarm;
                if (visionAlarm != null)
                {
                    IVisionMonitor monitor = visionAlarm.Monitor as IVisionMonitor;
                    if (monitor != null)
                    {
                        IVisionMonitorConfig config = monitor.Config as IVisionMonitorConfig;
                        if (config != null)
                        {
                            IVideoSourceConfig vsConfig = monitor.SystemContext.VideoSourceConfigManager.GetConfig(config.VisionParamConfig.VSName);
                            if (vsConfig != null)
                            {
                                if (!vsConfig.IsRecord)
                                {
                                    IVideoSourceType vsType = vsConfig.SystemContext.VideoSourceTypeManager.GetConfig(vsConfig.Type);
                                    if (vsType != null)
                                    {
                                        string backPlayType = vsType.BackPlayType;

                                        if (backPlayType.Equals(""))
                                        {
                                            backPlayType = vsConfig.Type;
                                        }

                                        if (!backPlayType.Equals(""))
                                        {
                                            CVideoSourceConfig newVSConfig = vsConfig.Clone() as CVideoSourceConfig;
                                            if (newVSConfig != null)
                                            {
                                                newVSConfig.Name      = vsConfig.Name + "_BackPlay_" + newVSConfig.Handle;
                                                newVSConfig.Type      = backPlayType;
                                                newVSConfig.StartTime = visionAlarm.AlarmTime.AddSeconds(-10);
                                                newVSConfig.StopTime  = visionAlarm.AlarmTime;

                                                if (!backPlayType.Equals("FileVideoSource"))
                                                {
                                                    newVSConfig.FileName = "";
                                                }

                                                newVSConfig.IsRecord = false;
                                                newVSConfig.IsCycle  = false;
                                                newVSConfig.Enabled  = true;

                                                if (mBackPlayVS != null)
                                                {
                                                    mBackPlayVS.SystemContext.VideoSourceManager.Close(mBackPlayVS.Name);
                                                    mBackPlayVS = null;
                                                }

                                                mBackPlayVS = vsType.SystemContext.VideoSourceManager.Open(newVSConfig, HWnd);
                                                if (mBackPlayVS != null)
                                                {
                                                    mBackPlayVS.OnPlayStatusChanged += new PLAYSTATUS_CHANGED(DoPlayStausChanged);
                                                    if (!mBackPlayVS.Play())
                                                    {
                                                        MessageBox.Show("回放失败,可能是回放录像还未生成,请稍后再试!", "回放错误", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                                                    }
                                                }
                                                else
                                                {
                                                    MessageBox.Show("打开录像失败,可能是回放录像还未生成,请稍后再试!", "回放错误", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                                                }
                                            }
                                        }
                                    }
                                    return(true);
                                }
                            }
                        }
                    }

                    if (!visionAlarm.IsRecord && !visionAlarm.IsPlay)
                    {
                        return(visionAlarm.PlayAlarmRecord(HWnd));
                    }
                }
            }
            return(false);
        }