void SendAbsoluteFocusPosition(float position) { Debug.Assert(model.moveOptions.absolute != null); Debug.Assert(model.moveOptions.absolute.position != null); Debug.Assert(model.moveOptions.absolute.position.min <= position && position <= model.moveOptions.absolute.position.max); SetFocusSettingsStatus(FocusSettingsStatus.Waiting); panelPositionFocusMove.IsEnabled = false; var absolute = new AbsoluteFocus() { position = position }; if (model.moveOptions.absolute.speed != null) { absolute.speed = model.moveOptions.absolute.speed.max; absolute.speedSpecified = true; } var focus = new FocusMove() { absolute = absolute }; disposables.Add(session.Move(model.sourceToken, focus).ObserveOnCurrentDispatcher().Subscribe( u => { ReceiveFocusPosition(); }, err => { SetFocusSettingsStatus(FocusSettingsStatus.Error, err.Message); panelPositionFocusMove.IsEnabled = true; })); }
void SendDistanceFocusMove(float distance) { SetFocusSettingsStatus(FocusSettingsStatus.Waiting); panelPositionFocusMove.IsEnabled = false; var relative = new RelativeFocus() { distance = distance }; if (model.moveOptions.relative.speed != null) { relative.speed = model.moveOptions.relative.speed.max; relative.speedSpecified = true; } var focus = new FocusMove() { relative = relative }; //disposables += (IDisposable)null; disposables.Add(session.Move(model.sourceToken, focus).ObserveOnCurrentDispatcher().Subscribe( u => { ReceiveFocusPosition(); }, err => { SetFocusSettingsStatus(FocusSettingsStatus.Error, err.Message); panelPositionFocusMove.IsEnabled = true; } )); }
public void ImagingCommandMoveInvalidSourceTest() { RunTest( () => { VideoSource[] sources = GetAndValidateVideoSources(); string[] tokens = sources.Select(s => s.token).ToArray(); string invalidToken = tokens.GetNonMatchingString(); RunStep( () => { FocusMove focus = new FocusMove(); focus.Continuous = new ContinuousFocus(); focus.Continuous.Speed = 1.0F; Client.Move(invalidToken, focus); }, "Move - negative test", new ValidateTypeFault(ValidateInvalidTokenFault)); DoRequestDelay(); }); }
public override void Move(string VideoSourceToken, FocusMove Focus) { TestSuitInit(); int timeOut; SoapException ex; StepType stepType = m_ImagingService20Test.MoveTest(out ex, out timeOut, VideoSourceToken, Focus); StepTypeProcessing(stepType, ex, timeOut); }
public void ImagingCommandContinuousMoveTest() { RunTest( () => { VideoSource[] sources = GetAndValidateVideoSources(); for (int i = 0; i < sources.Length; i++) { MoveOptions20 options = null; options = GetMoveOptions(sources[i].token); if (options != null) { ValidateMoveOptions(options); BeginStep(string.Format("Check if Continuous Move is supported for video source '{0}'", sources[i].token)); bool continuousSupported = (options.Continuous != null); if (continuousSupported) { LogStepEvent("Supported"); } else { LogStepEvent("Not supported"); } StepPassed(); if (continuousSupported) { float speed = options.Continuous.Speed.Average(); FocusMove focus = new FocusMove(); focus.Continuous = new ContinuousFocus(); focus.Continuous.Speed = speed; Move(sources[i].token, focus); bool stopSucceeded; Stop(sources[i].token, out stopSucceeded); if (!stopSucceeded) { double timeout = ((double)_operationDelay) / 1000; BeginStep(string.Format("Wait {0} seconds to allow the DUT to move focus", timeout.ToString("0.000"))); Sleep(_operationDelay); StepPassed(); } } } } }); }
public void ImagingCommandContinuousMoveInvalidSettingsTest() { RunTest( () => { VideoSource[] sources = GetAndValidateVideoSources(); for (int i = 0; i < sources.Length; i++) { MoveOptions20 options = null; options = GetMoveOptions(sources[i].token); if (options != null) { ValidateMoveOptions(options); BeginStep(string.Format("Check if Continuous Move is supported for video source '{0}'", sources[i].token)); bool continuousSupported = (options.Continuous != null); if (continuousSupported) { LogStepEvent("Supported"); } else { LogStepEvent("Not supported"); } StepPassed(); if (continuousSupported) { float speed = options.Continuous.Speed.Max + 1; FocusMove focus = new FocusMove(); focus.Continuous = new ContinuousFocus(); focus.Continuous.Speed = speed; RunStep(() => { Client.Move(sources[i].token, focus); }, "Move - negative test (invalid Speed)", new ValidateTypeFault(ValidateInvalidMoveFault)); DoRequestDelay(); } } } }); }
internal StepType MoveTest(out SoapException ex, out int Timeout, string VideoSourceToken, FocusMove Focus) { StepType res = StepType.None; Timeout = 0; ex = null; bool passed = true; string logMessage = ""; //Get step list for command XmlNodeList m_testList = m_TestCommon.GetStepsForCommand("Imaging20.Move"); if (m_testList != null) { //Get current step XmlNode test = m_testList[m_commandCount[Move]]; #region Analyze request //VideoSourceToken CommonCompare.StringCompare("RequestParameters/VideoSourceToken", "VideoSourceToken", VideoSourceToken, ref logMessage, ref passed, test); //Focus if (Focus != null) { //Absolute if (Focus.Absolute != null) { CommonCompare.Exist("RequestParameters/Focus/Absolute", "Focus.Absolute", Focus.Absolute, ref logMessage, ref passed, test); if (passed) { //Position CommonCompare.FloatCompare("RequestParameters/Focus/Absolute/Position", "Focus.Absolute.Position", Focus.Absolute.Position, ref logMessage, ref passed, test); //Speed if (Focus.Absolute.SpeedSpecified) { CommonCompare.Exist2("RequestParameters/Focus/Absolute/Speed", "Focus.Absolute.Speed", Focus.Absolute.SpeedSpecified, ref logMessage, ref passed, test); if (passed) { CommonCompare.FloatCompare("RequestParameters/Focus/Absolute/Speed", "Focus.Absolute.Speed", Focus.Absolute.Speed, ref logMessage, ref passed, test); } } else { CommonCompare.Exist2("RequestParameters/Focus/Absolute/Speed", "Focus.Absolute.Speed", Focus.Absolute.SpeedSpecified, ref logMessage, ref passed, test); } } } else { CommonCompare.Exist("RequestParameters/Focus/Absolute", "Focus.Absolute", Focus.Absolute, ref logMessage, ref passed, test); } //Relative if (Focus.Relative != null) { CommonCompare.Exist("RequestParameters/Focus/Relative", "Focus.Relative", Focus.Relative, ref logMessage, ref passed, test); if (passed) { //Distance CommonCompare.FloatCompare("RequestParameters/Focus/Relative/Distance", "Focus.Relative.Distance", Focus.Relative.Distance, ref logMessage, ref passed, test); //Speed if (Focus.Relative.SpeedSpecified) { CommonCompare.Exist2("RequestParameters/Focus/Relative/Speed", "Focus.Relative.Speed", Focus.Relative.SpeedSpecified, ref logMessage, ref passed, test); if (passed) { CommonCompare.FloatCompare("RequestParameters/Focus/Relative/Speed", "Focus.Relative.Speed", Focus.Relative.Speed, ref logMessage, ref passed, test); } } else { CommonCompare.Exist2("RequestParameters/Focus/Relative/Speed", "Focus.Relative.Speed", Focus.Relative.SpeedSpecified, ref logMessage, ref passed, test); } } } else { CommonCompare.Exist("RequestParameters/Focus/Relative", "Focus.Relative", Focus.Relative, ref logMessage, ref passed, test); } //Continuous if (Focus.Continuous != null) { CommonCompare.Exist("RequestParameters/Focus/Continuous", "Focus.Continuous", Focus.Continuous, ref logMessage, ref passed, test); if (passed) { //Speed CommonCompare.FloatCompare("RequestParameters/Focus/Continuous/Speed", "Focus.Continuous.Speed", Focus.Continuous.Speed, ref logMessage, ref passed, test); } } else { CommonCompare.Exist("RequestParameters/Focus/Continuous", "Focus.Continuous", Focus.Continuous, ref logMessage, ref passed, test); } } else { passed = false; logMessage = logMessage + "No required tag Focus."; } #endregion //Analyze request //Generate response res = m_TestCommon.GenerateResponseStepTypeVoid(test, out ex, out Timeout); //Log message m_TestCommon.writeToLog(test, logMessage, passed); Increment(m_testList.Count, Move); } else { res = StepType.None; Timeout = 0; ex = null; res = StepType.None; } return(res); }
protected void Move(string token, FocusMove focus, string stepName) { RunStep(() => { Client.Move(token, focus); }, stepName); DoRequestDelay(); }
protected void Move(string token, FocusMove focus) { Move(token, focus, string.Format("Send Move command ({0})", token)); }
public OnvifImagingMove(string uri, string userName, string password, string profileToken, FocusMove focusMove) : base(uri, userName, password) { ProfileToken = profileToken; FocusMove = focusMove; }
public System.Threading.Tasks.Task MoveAsync(string VideoSourceToken, FocusMove Focus) { return(base.Channel.MoveAsync(VideoSourceToken, Focus)); }
public Task MoveAsync(string VideoSourceToken, FocusMove Focus) { return(base.Channel.MoveAsync(VideoSourceToken, Focus)); }
public void ImagingCommandMoveUnsupportedMoveTest() { RunTest( () => { VideoSource[] sources = GetAndValidateVideoSources(); for (int i = 0; i < sources.Length; i++) { MoveOptions20 options = null; options = GetMoveOptions(sources[i].token); if (options != null) { ValidateMoveOptions(options); // absolute bool absoluteSupported; BeginStep(string.Format("Check if Absolute Move is supported for video source '{0}'", sources[i].token)); absoluteSupported = (options.Absolute != null); if (absoluteSupported) { LogStepEvent("Supported"); } else { LogStepEvent("Not supported"); } StepPassed(); if (!absoluteSupported) { FocusMove focus = new FocusMove(); focus.Absolute = new AbsoluteFocus(); focus.Absolute.Position = 1.0F; RunStep(() => { Client.Move(sources[i].token, focus); }, "Move - negative test (absolute not supported)", new ValidateTypeFault(ValidateInvalidMoveFault)); DoRequestDelay(); } // relative bool relativeSupported; BeginStep(string.Format("Check if Relative Move is supported for video source '{0}'", sources[i].token)); relativeSupported = (options.Relative != null); if (relativeSupported) { LogStepEvent("Supported"); } else { LogStepEvent("Not supported"); } StepPassed(); if (!relativeSupported) { FocusMove focus = new FocusMove(); focus.Relative = new RelativeFocus(); focus.Relative.Distance = 1.0F; RunStep(() => { Client.Move(sources[i].token, focus); }, "Move - negative test (relative not supported)", new ValidateTypeFault(ValidateInvalidMoveFault)); DoRequestDelay(); } // continuous BeginStep(string.Format("Check if Continuous Move is supported for video source '{0}'", sources[i].token)); bool continuousSupported = (options.Continuous != null); if (continuousSupported) { LogStepEvent("Supported"); } else { LogStepEvent("Not supported"); } StepPassed(); if (!continuousSupported) { FocusMove focus = new FocusMove(); focus.Continuous = new ContinuousFocus(); focus.Continuous.Speed = 1.0F; RunStep(() => { Client.Move(sources[i].token, focus); }, "Move - negative test (continuous not supported)", new ValidateTypeFault(ValidateInvalidMoveFault)); DoRequestDelay(); } } } }); }
public void ImagingCommandRelativeMoveInvalidSettingsTest() { RunTest( () => { VideoSource[] sources = GetAndValidateVideoSources(); for (int i = 0; i < sources.Length; i++) { MoveOptions20 options = null; options = GetMoveOptions(sources[i].token); if (options != null) { ValidateMoveOptions(options); bool relativeSupported; BeginStep(string.Format("Check if Relative Move is supported for video source '{0}'", sources[i].token)); relativeSupported = (options.Relative != null); if (relativeSupported) { LogStepEvent("Supported"); } else { LogStepEvent("Not supported"); } StepPassed(); if (relativeSupported) { float distance = options.Relative.Distance.Max + 1; FocusMove focus = new FocusMove(); focus.Relative = new RelativeFocus(); focus.Relative.Distance = distance; RunStep(() => { Client.Move(sources[i].token, focus); }, "Move - negative test (invalid Distance)", new ValidateTypeFault(ValidateInvalidMoveFault)); DoRequestDelay(); bool speedSupported; BeginStep(string.Format("Check if Relative Move Speed is supported for video source '{0}'", sources[i].token)); speedSupported = (options.Relative.Speed != null); if (speedSupported) { LogStepEvent("Supported"); } else { LogStepEvent("Not supported"); } StepPassed(); if (speedSupported) { focus.Relative.Distance = options.Relative.Distance.Average(); focus.Relative.SpeedSpecified = true; focus.Relative.Speed = options.Relative.Speed.Max + 1; RunStep(() => { Client.Move(sources[i].token, focus); }, "Move - negative test (invalid Speed)", new ValidateTypeFault(ValidateInvalidMoveFault)); DoRequestDelay(); } } } } }); }
public void ImagingCommandRelativeMoveTest() { RunTest( () => { VideoSource[] sources = GetAndValidateVideoSources(); for (int i = 0; i < sources.Length; i++) { MoveOptions20 options = null; options = GetMoveOptions(sources[i].token); if (options != null) { ValidateMoveOptions(options); bool relativeSupported; BeginStep(string.Format("Check if Relative Move is supported for video source '{0}'", sources[i].token)); relativeSupported = (options.Relative != null); if (relativeSupported) { LogStepEvent("Supported"); } else { LogStepEvent("Not supported"); } StepPassed(); if (relativeSupported) { float distance = options.Relative.Distance.Max / 2; FocusMove focus = new FocusMove(); focus.Relative = new RelativeFocus(); focus.Relative.Distance = distance; Move(sources[i].token, focus); bool speedSupported; BeginStep(string.Format("Check if Relative Move Speed is supported for video source '{0}'", sources[i].token)); speedSupported = (options.Relative.Speed != null); if (speedSupported) { LogStepEvent("Supported"); } else { LogStepEvent("Not supported"); } StepPassed(); if (speedSupported) { focus.Relative.Distance = options.Relative.Distance.Min / 2; focus.Relative.SpeedSpecified = true; focus.Relative.Speed = options.Relative.Speed.Average(); Move(sources[i].token, focus); } } } } }); }
public void ImagingCommandAbsoluteMoveTest() { RunTest( () => { VideoSource[] sources = GetAndValidateVideoSources(); for (int i = 0; i < sources.Length; i++) { MoveOptions20 options = null; options = GetMoveOptions(sources[i].token); if (options != null) { ValidateMoveOptions(options); bool absoluteSupported; BeginStep(string.Format("Check if Absolute Move is supported for video source '{0}'", sources[i].token)); absoluteSupported = (options.Absolute != null); if (absoluteSupported) { LogStepEvent("Supported"); } else { LogStepEvent("Not supported"); } StepPassed(); if (absoluteSupported) { float position = (2.0F * options.Absolute.Position.Min / 3.0F + options.Absolute.Position.Max / 3.0F); FocusMove focus = new FocusMove(); focus.Absolute = new AbsoluteFocus(); focus.Absolute.Position = position; Move(sources[i].token, focus); BeginStep(string.Format("Check if Absolute Move Speed is supported for video source '{0}'", sources[i].token)); bool supported = (options.Absolute.Speed != null); if (supported) { LogStepEvent("Supported"); } else { LogStepEvent("Not supported"); } StepPassed(); if (supported) { position = position = (options.Absolute.Position.Min / 3.0F + 2.0F * options.Absolute.Position.Max / 3.0F); focus.Absolute.Position = position; focus.Absolute.SpeedSpecified = true; focus.Absolute.Speed = options.Absolute.Speed.Average(); Move(sources[i].token, focus); } } } } }); }