The Virtual-Matrix-128x32 logical device lets you control up to four cascaded SatService L-band switch matrices as one virtual matrix. The Virtual-Matrix-128x32 device is capable to handle partial equipped matrix devices down to 8x8 port matrices.
Beside the handling of cascaded matrices, the Virtual-Matrix-128x32 device extends the SatService matrix driver by capabilities to define sub-matrices and to select input ports by their name rather than their number.
Cascading matrices
The SatService L-band switch matrices provide a cascading input port for each matrix output. This cascading input lets you extend the number of matrix inputs up to 128 (four matrices with 32 inputs each). Internally a matrix output may be switched to the cascading input using the input port number '33'.

The diagram above illustrates the signal routing and input number assignment for three cascaded 32-input matrices. The matrix MX1 - called the primary matrix - serves the (virtual) input ports 001..032, MX2 serves the ports 033 .. 064 and the last matrix MX3 serves the remaining input ports 065 .. 096.
This works with smaller matrices as well, even with matrices which provide a different number of inputs. The only requirement is, that all cascaded matrices are equipped with the same number of outputs.
Naming matrix inputs and outputs
With the web-based user interface of the SatService switch matrix devices you may define your own names for each particular input or output. The Virtual-Matrix-128x32 device reads these names and uses them in the following way:
The latter feature requires, that all matrix inputs are named uniquely. The Virtual-Matrix-128x32 device detects ambiguous input names and rises the 'fault.05' (Duplicate input name). For use with the drop-down boxes of the 'byname.??' parameters the device renames ambiguous input names.
Defining sub-matrices
The Virtual-Matrix-128x32 device lets you restrain the input/output ports of the matrix to a certain set of ports. This feature makes the virtual matrix device valuable even for a single physical switch matrix, without using the cascading capabilities. Several virtual matrix devices might be defined, each controlling another subset of the same physical switch matrix.
The device setup page lets you define a couple of parameters which each hold a list of permitted port numbers. If these lists are not empty, the virtual matrix device does not use all available port numbers but the set of ports defined in the particular list. The ports are re-numbered to a consecutive list of virtual port numbers.
Using this feature means, that by switching matrix ports on the physical layer, inputs may be accessed which are not present in the virtual matrix configuration. In this case, the virtual matrix shows this output to be connected to the matrix port '000' (named 'NO SIGNAL').
Device window pages
The following table shows which device window pages are available with this individual device type. Tool-bar functions not mentioned here are described at the general description of device windows .
--- Matrix port select
--- The faults page.
--- The device info page.
--- The maintenance page. The configuration parameters described below are set at this page.Configuration parameters
The table below explains the configuration parameters which interconnect the Virtual-Matrix-128x32 device to the devices it monitors / controls. Unused parameters should be left empty.
| parameter | description |
|---|---|
| matrices | The list of physical matrices which shall be controlled by this device. This is a list of device names, separated by commas. The first device name identifies the primary matrix (that one providing the physical outputs), the other device names identify the subsequent matrices in the order of cascading. Example: MX1,MX2,MX3 |
| inputs.1 | If this parameter is not empty, it defines the list of input ports which shall be accessible from the first matrix. Example: {01,02,03,07,08} |
| inputs.2 | If this parameter is not empty, it defines the list of input ports which shall be accessible from the second matrix. |
| inputs.3 | If this parameter is not empty, it defines the list of input ports which shall be accessible from the third matrix. |
| inputs.4 | If this parameter is not empty, it defines the list of input ports which shall be accessible from the fourth matrix. |
| outputs | If this parameter is not empty, it defines the list of output ports which shall be accessible in the virtual matrix Example: {01,02,03} |
Faults
The Virtual-Matrix-128x32 device defines the following fault flags:
Remarks
Whenever you change the list of matrices or one of the lists matrix ports to be used in a sub-matrix in the device setup, you have to reset the Virtual-Matrix-128x32 device by pressing the RESET button at maintenance page in order to make the changes effective. The same applies if you change input or output names at a physical matrix device.
Variables defined by this device driver
| name | type | flags | range |
|---|---|---|---|
| info.driver | TEXT | R/O | StringRange R/O |
| info.type | TEXT | R/O | StringRange R/O |
| info.port | TEXT | R/O | StringRange R/O |
| info.frame | TEXT | R/O | StringRange R/O |
| info.inputs | TEXT | R/O | StringRange R/O |
| info.outputs | TEXT | R/O | StringRange R/O |
| info.state | TEXT | R/O | StringRange R/O |
| config.matrices | TEXT | SAVE SETUP | StringRange |
| config.inputs.1 | TEXT | SAVE SETUP | StringRange |
| config.inputs.2 | TEXT | SAVE SETUP | StringRange |
| config.inputs.3 | TEXT | SAVE SETUP | StringRange |
| config.inputs.4 | TEXT | SAVE SETUP | StringRange |
| config.outputs | TEXT | SAVE SETUP | StringRange |
| reset | TEXT | NOPRESET | StringRange |
| output.01 | CHOICE | EnumRange DIS (???) | |
| output.02 | CHOICE | EnumRange DIS (???) | |
| output.03 | CHOICE | EnumRange DIS (???) | |
| output.04 | CHOICE | EnumRange DIS (???) | |
| output.05 | CHOICE | EnumRange DIS (???) | |
| output.06 | CHOICE | EnumRange DIS (???) | |
| output.07 | CHOICE | EnumRange DIS (???) | |
| output.08 | CHOICE | EnumRange DIS (???) | |
| output.09 | CHOICE | EnumRange DIS (???) | |
| output.10 | CHOICE | EnumRange DIS (???) | |
| output.11 | CHOICE | EnumRange DIS (???) | |
| output.12 | CHOICE | EnumRange DIS (???) | |
| output.13 | CHOICE | EnumRange DIS (???) | |
| output.14 | CHOICE | EnumRange DIS (???) | |
| output.15 | CHOICE | EnumRange DIS (???) | |
| output.16 | CHOICE | EnumRange DIS (???) | |
| output.17 | CHOICE | EnumRange DIS (???) | |
| output.18 | CHOICE | EnumRange DIS (???) | |
| output.19 | CHOICE | EnumRange DIS (???) | |
| output.20 | CHOICE | EnumRange DIS (???) | |
| output.21 | CHOICE | EnumRange DIS (???) | |
| output.22 | CHOICE | EnumRange DIS (???) | |
| output.23 | CHOICE | EnumRange DIS (???) | |
| output.24 | CHOICE | EnumRange DIS (???) | |
| output.25 | CHOICE | EnumRange DIS (???) | |
| output.26 | CHOICE | EnumRange DIS (???) | |
| output.27 | CHOICE | EnumRange DIS (???) | |
| output.28 | CHOICE | EnumRange DIS (???) | |
| output.29 | CHOICE | EnumRange DIS (???) | |
| output.30 | CHOICE | EnumRange DIS (???) | |
| output.31 | CHOICE | EnumRange DIS (???) | |
| output.32 | CHOICE | EnumRange DIS (???) | |
| byname.01 | CHOICE | EnumRange DIS (?) | |
| byname.02 | CHOICE | EnumRange DIS (?) | |
| byname.03 | CHOICE | EnumRange DIS (?) | |
| byname.04 | CHOICE | EnumRange DIS (?) | |
| byname.05 | CHOICE | EnumRange DIS (?) | |
| byname.06 | CHOICE | EnumRange DIS (?) | |
| byname.07 | CHOICE | EnumRange DIS (?) | |
| byname.08 | CHOICE | EnumRange DIS (?) | |
| byname.09 | CHOICE | EnumRange DIS (?) | |
| byname.10 | CHOICE | EnumRange DIS (?) | |
| byname.11 | CHOICE | EnumRange DIS (?) | |
| byname.12 | CHOICE | EnumRange DIS (?) | |
| byname.13 | CHOICE | EnumRange DIS (?) | |
| byname.14 | CHOICE | EnumRange DIS (?) | |
| byname.15 | CHOICE | EnumRange DIS (?) | |
| byname.16 | CHOICE | EnumRange DIS (?) | |
| byname.17 | CHOICE | EnumRange DIS (?) | |
| byname.18 | CHOICE | EnumRange DIS (?) | |
| byname.19 | CHOICE | EnumRange DIS (?) | |
| byname.20 | CHOICE | EnumRange DIS (?) | |
| byname.21 | CHOICE | EnumRange DIS (?) | |
| byname.22 | CHOICE | EnumRange DIS (?) | |
| byname.23 | CHOICE | EnumRange DIS (?) | |
| byname.24 | CHOICE | EnumRange DIS (?) | |
| byname.25 | CHOICE | EnumRange DIS (?) | |
| byname.26 | CHOICE | EnumRange DIS (?) | |
| byname.27 | CHOICE | EnumRange DIS (?) | |
| byname.28 | CHOICE | EnumRange DIS (?) | |
| byname.29 | CHOICE | EnumRange DIS (?) | |
| byname.30 | CHOICE | EnumRange DIS (?) | |
| byname.31 | CHOICE | EnumRange DIS (?) | |
| byname.32 | CHOICE | EnumRange DIS (?) | |
| output.name.01 | TEXT | R/O | StringRange R/O |
| output.name.02 | TEXT | R/O | StringRange R/O |
| output.name.03 | TEXT | R/O | StringRange R/O |
| output.name.04 | TEXT | R/O | StringRange R/O |
| output.name.05 | TEXT | R/O | StringRange R/O |
| output.name.06 | TEXT | R/O | StringRange R/O |
| output.name.07 | TEXT | R/O | StringRange R/O |
| output.name.08 | TEXT | R/O | StringRange R/O |
| output.name.09 | TEXT | R/O | StringRange R/O |
| output.name.10 | TEXT | R/O | StringRange R/O |
| output.name.11 | TEXT | R/O | StringRange R/O |
| output.name.12 | TEXT | R/O | StringRange R/O |
| output.name.13 | TEXT | R/O | StringRange R/O |
| output.name.14 | TEXT | R/O | StringRange R/O |
| output.name.15 | TEXT | R/O | StringRange R/O |
| output.name.16 | TEXT | R/O | StringRange R/O |
| output.name.17 | TEXT | R/O | StringRange R/O |
| output.name.18 | TEXT | R/O | StringRange R/O |
| output.name.19 | TEXT | R/O | StringRange R/O |
| output.name.20 | TEXT | R/O | StringRange R/O |
| output.name.21 | TEXT | R/O | StringRange R/O |
| output.name.22 | TEXT | R/O | StringRange R/O |
| output.name.23 | TEXT | R/O | StringRange R/O |
| output.name.24 | TEXT | R/O | StringRange R/O |
| output.name.25 | TEXT | R/O | StringRange R/O |
| output.name.26 | TEXT | R/O | StringRange R/O |
| output.name.27 | TEXT | R/O | StringRange R/O |
| output.name.28 | TEXT | R/O | StringRange R/O |
| output.name.29 | TEXT | R/O | StringRange R/O |
| output.name.30 | TEXT | R/O | StringRange R/O |
| output.name.31 | TEXT | R/O | StringRange R/O |
| output.name.32 | TEXT | R/O | StringRange R/O |
| faults.01 | ALARM | R/O | AlarmFlagRange R/O (Matrix 1 Summary) |
| faults.02 | ALARM | R/O | AlarmFlagRange R/O (Matrix 2 Summary) |
| faults.03 | ALARM | R/O | AlarmFlagRange R/O (Matrix 3 Summary) |
| faults.04 | ALARM | R/O | AlarmFlagRange R/O (Matrix 4 Summary) |
| faults.05 | ALARM | R/O | AlarmFlagRange R/O (Duplicate input name) |