public bool TransactAlarm() { if (mCurIndex >= 0 && mCurIndex < Count) { IMonitorAlarm visionAlarm = Goto(mCurIndex); if (visionAlarm != null) { IVisionMonitorAlarm vmAlarm = visionAlarm as IVisionMonitorAlarm; if (vmAlarm != null && !vmAlarm.IsPlay && !vmAlarm.IsRecord) { SetPreviewImage(null); if (AlarmManager != null) { AlarmManager.TransactAlarm(mCurIndex, "已处理"); } if (Count > 0) { if (mCurIndex < Count) { Goto(mCurIndex); } else { Last(); } } } else { SetPreviewImage(null); if (AlarmManager != null) { AlarmManager.TransactAlarm(mCurIndex, "已处理"); } if (Count > 0) { if (mCurIndex < Count) { Goto(mCurIndex); } else { Last(); } } } } } return(true); }
public bool ResumePlayback() { if (mCurIndex >= 0 && mCurIndex < Count) { IVisionMonitorAlarm visionAlarm = Goto(mCurIndex) as IVisionMonitorAlarm; if (visionAlarm != null) { if (visionAlarm.IsPlay) { return(visionAlarm.ResumePlayAlarmRecord()); } } } return(false); }
public bool StopPlayback() { if (mBackPlayVS != null) { mBackPlayVS.SystemContext.VideoSourceManager.Close(mBackPlayVS.Name); mBackPlayVS = null; return(true); } else if (mCurIndex >= 0 && mCurIndex < Count) { IVisionMonitorAlarm visionAlarm = Goto(mCurIndex) as IVisionMonitorAlarm; if (visionAlarm != null) { if (visionAlarm.IsPlay) { return(visionAlarm.StopPlayAlarmRecord()); } } } return(false); }
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); }
private void UpdateFormState() { if (Count > 0) { bool isRecord = false; bool isPlay = false; IVisionMonitorAlarm vmAlarm = mVisionAlarm as IVisionMonitorAlarm; if (vmAlarm != null) { isRecord = vmAlarm.IsRecord; isPlay = vmAlarm.IsPlay; } if (mCurIndex <= 0) { button_first.Enabled = false; button_prior.Enabled = false; } else { button_first.Enabled = !isPlay; button_prior.Enabled = !isPlay; } if (mCurIndex == Count - 1) { button_next.Enabled = false; button_last.Enabled = false; } else { button_next.Enabled = !isPlay; button_last.Enabled = !isPlay; } button_play.Enabled = !isPlay && !isRecord; button_transact.Enabled = !isPlay && !isRecord; button_clear.Enabled = true; label_count.Text = (mCurIndex + 1) + "/" + Count; DoAlarmPlaybackStateChanged(mCurIndex + 1, Count); IsShowInfo = false; } else { SetPreviewImage(null); button_first.Enabled = false; button_prior.Enabled = false; button_next.Enabled = false; button_last.Enabled = false; button_play.Enabled = false; button_transact.Enabled = false; button_clear.Enabled = false; label_count.Text = ""; DoAlarmPlaybackStateChanged(0, 0); IsShowInfo = true; } }