//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 file shows a definition of DUT with multiple ports. // Ports are used by the Connection manager. namespace FirstPlugin { [Display("Four Port DUT", Groups: new[] { "Examples", "Plugin Development", "Connections" }, Description: "A four port DUT, with a few additional properties.")] public class FirstDUT : Dut { // Private sets are not shown in the GUI. public Port PortA { get; private set; } public Port PortB { get; private set; } public Port PortC { get; private set; } public Port PortD { get; private set; } [Display("MyString", Group: "DutExtensions")] public string MyString { get; set; } [Display("MyDouble", Group: "DutExtensions")] public double MyDouble { get; set; } // Initializes a new instance of this DUT class. public FirstDUT() { Name = "FourPortDut"; PortA = new Port(this, "PortA"); PortB = new Port(this, "PortB"); PortC = new Port(this, "PortC"); PortD = new Port(this, "PortD"); } public override void Open() { base.Open(); Log.Info("Opening FourPortDut."); } public override void Close() { Log.Info("Closing FourPortDut."); base.Close(); } internal void PerformMeasurement() { Log.Info("Simulating doing a measurement."); // In case of actual DUT hardware, the measurement algorithm can be added here. } internal void SetupDut(double frequency) { Log.Info("Simulating setup of DUT (with frequency)."); // In case of actual hardware, add DUT driver calls to set channel frequency here. } } }