//Copyright 2012-2019 Keysight Technologies // //Licensed under the Apache License, Version 2.0 (the "License"); //you may not use this file except in compliance with the License. //You may obtain a copy of the License at // //http://www.apache.org/licenses/LICENSE-2.0 // //Unless required by applicable law or agreed to in writing, software //distributed under the License is distributed on an "AS IS" BASIS, //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //See the License for the specific language governing permissions and //limitations under the License. using OpenTap; // This example shows how a child can get a parent with of a certain type, and then // recover some properties from that parent. namespace OpenTap.Plugins.PluginDevelopment { [Display("Child Seeking Resources", Groups: new[] { "Examples", "Plugin Development", "Parent Child" }, Description: "A child seeking resources from a parent.")] [AllowAsChildIn(typeof(ParentWithResources))] // Excluding the AllowAsChildIn attribute would mean this Child TestStep could be used with any parent. public class ChildSeekingResources : TestStep { private Dut _parentsDut; private Instrument _parentsInstrument; public override void PrePlanRun() { base.PrePlanRun(); // Find parents of a certain type, and get a resource reference from them. // Resources include things like Instruments and DUTs. _parentsDut = GetParent().SomeDut; _parentsInstrument = GetParent().SomeInstrument; string s; s = (_parentsDut == null) ? "No DUT Found" : string.Format("Found a DUT named {0}", _parentsDut.Name); Log.Info(s); s = (_parentsInstrument == null) ? "No Instrument" : string.Format("Found an Instrument named {0}", _parentsInstrument.Name); Log.Info(s); } public override void Run() { // Do nothing } } }