:CONFigure Subsystem
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:
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.
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"
.
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.
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.
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:
- Send the
:STARt
root command to launch the FlexOTO Stations. - Use the
:TPRogram
subsystem to configure the Test Program for each Station. - Send
:TPRogram:RUN?
and:JOBS:ACQuire:COMPlete?
queries to run the Test Plans. - 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.