:CONFigure Subsystem

Flex Apps:
FlexOTO
FlexOTO Instance:
Hardware Diagram

Use the :CONFigure subsystem to place hardware blocks on the Hardware Diagram and to create cable connections between ports. Configure the Hardware Diagram to reflect the actual cable connections in your test setup.

Handling Device Names

In this subsystem, commands take arguments or return strings that identify one or more devices with each device name enclosed in double quotes as shown here. Multiple device names are comma separated.

"<device-name>","<device-name>", ...

It is recommended that you don't remove double quotes from returned names, since the double quotes are needed when you use the returned name as an argument. For example, to locate and install all DCA-M module by name:

Copy

import pyvisa as visa
rm = visa.ResourceManager()
flexOTO = rm.open_resource('TCPIP0::localhost::hislip0,4880::INSTR')
modules = hwdiagram.query(':CONFigure:MODule:ALL?')
modules = modules.split(',')
for module in modules:  # module = "N1092B-US12345678"
    hwdiagram.write(':CONFigure:MODule:ACTive ' + module + ',ON')):
FlexOTO.write(':SYSTem:GTLocal')
FlexOTO.close()
    

Placing Hardware Blocks on the Hardware Diagram

On the Hardware Diagram, you can place up 16 fixtures, 4 demultiplexers, 8 impairments, 4 instruments, and 8 DCA-Ms. On optical switches that contain internal switch modules, you can select which switch module that you want to use. Multiple internal switch modules can be placed on the Hardware Diagram when two modules need to be cascaded.

The following table lists the commands that are used to install and identify hardware blocks onto the Hardware Diagram. Each command takes an argument which identifies a hardware block by name. The name argument is required with many :CONFigure subsystem commands. Block names follow these rules:

  • For DUT Fixtures, WDM DUT Fixtures, Demuxes, and Impairments the block name is a string with a maximum length of 20 characters. The default names are based on the block type followed by a number. For example, "DUT Fixture 2". These blocks can be renamed after they are installed.
  • For Instruments the block name is a string with a maximum length of 25 characters. The default names are based on the block type followed by a number. For example, "Instrument 3". These blocks can be renamed after they are installed.
  • Switches are automatically installed and named based on the manufacturer's name. Switch blocks cannot be renamed.
  • Blocks for DCA-M modules consist of the module's model number and serial number. DCA-M blocks cannot be renamed.
Commands to Place Hardware Blocks
Hardware Block To Place Block on Diagram
Fixtures and WDM Fixture :CONFigure:FIXTure:ACTive
Demultiplexer :CONFigure:DEMux:ACTive
Impairment :CONFigure:IMPairment:ACTive
Instrument :CONFigure:INSTrument:ACTive
DCA-M Module :CONFigure:MODule:ACTive
Optical Switch :CONFigure:SWITch:ACTive

Use the :CONFigure:NLANes command to enter the number of lanes that your DUT fixtures have. This is a universal setting that is applied to all installed DUT Fixtures and WDM DUT Fixtures.

DCA-M Modules

FlexOTO identifies each DCA-M module (clock recovery and oscilloscope modules) by model number / serial number, which is returned with the :CONFigure:MODule:ALL? and :CONFigure:MODule:ACTive? queries. For example, "N1078A-US78000002".

:CONFigure:MODule Node Commands
Command Description
:CONFigure:MODule:ACTive Installs an auto-detected module in Hardware Diagram.
:CONFigure:MODule:ALL? Returns model and serial number of an auto-detected DCA-M module. This is the string used to specify the DCA-M when connecting ports on the Hardware Diagram. Module does not have to be installed (active) to be queried.
:CONFigure:MODule:PCRecovery? Return indicates if a DCA-M module includes clock recovery. The module does not have to be installed (active) to be queried.

Making Port Connections

Use the :CONFigure:PORT SCPI node commands to connect, disconnect, or query the state of any two ports in the Hardware Diagram. A port is identified by two arguments: block name and port name. In the following text, blue and green colors are used to identify the arguments to identify two ports. For example, the :CONFigure:PORT:CONNect command connects two ports which are identified by four string arguments:

:CONF:PORT:CONNect "<block 1>", "<block 1 port>", "<block 2>", "<block 2 port>"

To connect an N7734A Switch's "A" output port to an N1092D's channel A input port, this command would be sent.

:CONF:PORT:CONNect "N7734A", "A", "N1092D-US78000001", "A"

When two ports are identified for a command, it makes no difference the order in which the ports are listed. For example, these two commands are equivalent:

:CONF:PORT:CONNect "N7734A", "A", "N1092D-US78000001", "A"

:CONF:PORT:CONNect "N1092D-US78000001", "A", "N7734A", "A"

To determine the correct port argument

The switch port argument is a string that is based on the nomenclature used by the switch manufacturer, but may not be exactly the same and may not match the ID printed on the switch's front panel. To confirm the correct switch port number to use, you can use FlexOTO's SCPI Recorder while making the connections on the Hardware Diagram.

Switch Blocks Identification Arguments

Switch blocks are identified by the switch name which includes an identifier of an internal switch if one exists for the switch.

Example <port-name> Arguments
  Input Ports 1 Output Ports 1
Switches
Keysight N7731A "1" | "2" | "3" | "4" "A"
Keysight N7733C "1" | "2" | "3" | .... "16" "A"
Keysight N7734A "1" | "2" | "3" | .... "13" "A"
DiCon GP750
X1 module "1" | "2" | "3" | "4" ... "IN 1" | "IN 2" ...
M1 module "1" | "2" | "3" | "4" ... "IN"
DiCon GP600
X1 module "1" | "2" | "3" | "4" ... "IN 1" | "IN 2" ....
M1 module "1" | "2" | "3" | "4" ... "IN"
Polatis 6000 "1" to "24" "25" to "48"
Switch (installed with custom driver) defined in driver 2
DCA-M Modules
N107x-series DCA-M "Data In" "Data Out"
"Clock Out"
N1092-series DCA-M "Clock In" "Clock Out"
"A"
"B"
"C"
"D"
Fixtures
DUT Fixture "1" | "2" | "3" ... | "8"
WDM DUT Fixture "1"
Impairments, Instrument, and Demultiplexers
Impairment "In" "Out"
Instrument (installed with custom driver) defined in driver 3
Demux "In" "1" | "2" | "3" ... | "8"

Port argument strings match the port labels shown on Switch blocks. Argument strings may or may not match the label on the switch's front panel. These example strings may not match the modules installed in your switch. Use the :CONFigure:PORT:ALL? query to return all valid port names for a hardware block.

Switch measurement port argument strings are defined in your Switch driver and read by FlexOTO.

Instrument measurement port argument strings are defined in your Instrument driver and read by FlexOTO.

Fixture Lanes and Clock Domains

If a DUT Fixture uses multiple clock domains, use the commands shown in the following table to configure FlexOTO.

Clock Domain Commands
Command Description
:CONFigure:AACDomains Turn automatic clock domain to lane assignments on or off.
:CONFigure:CDOMain Assigns a clock domain to a DUT Fixture's lane.
:CONFigure:NCDomains Specifies the number of clock domains existing on a DUT Fixture.

Test Plan Stations

When the Hardware Diagram matches your test setup, specify the number of Stations that you need and assign fixtures to the Stations.

Enter the wavelength of the signals in your setup using the :CONFigure:WAVelength:VALue command. If your switch supports a wavelength setting, use the :CONFigure:SWITch:WAVelength command to set the wavelength of the switch. The example setup-and-measure.py script demonstrates building the Hardware Diagram and running Test Programs.

Is Your Hardware Diagram Correctly Configured?

Use the :CONFigure:STATus? query to determine if your Hardware Diagram has been correctly configured. Once you've determined that your setup is valid, you can:

  1. Send the :STARt root command to launch the FlexOTO Stations.
  2. Use the :TPRogram subsystem to configure the Test Program for each Station.
  3. Send :TPRogram:RUN? and :JOBS:ACQuire:COMPlete? queries to run the Test Plans.
  4. Use the :JOBS subsystem to return measurement results.

None of the :CONFigure commands can be sent to FlexOTO Hardware Diagram once the Stations have been started. If you want to edit the Hardware Diagram after Stations have started, you must first send the :STOP root command to end the FlexOTO Stations .

After configuring your Hardware Diagram, you can use :DISK:SETup:SAVe command to save a setup file (*.setx) that can be recalled at a later time.

The :CONFigure subsystem commands can only be sent to a FlexOTO Hardware Diagram. Sending these commands to FlexOTO Station will result in an error.