This page describes the legacy measurement/instrumentation aggregate manager. RF instrument control on the current testbed is documented at JFW RF attenuator matrix and XY positioning tables; the service inventory is at Testbed Services. The material below is retained for reference.
This service controls the RF test system that is the core of Sandbox 4. It is used to control attenuation values between pairs of ports (ie. the eight (8) nodes) through the standard OMF URL based services. The service also controls selection of which devices (eg. node or basestation) are connected to the RF test system on a per port basis. Current state of SB4 is available at visualization page.
Set the attenuation value on given port pairs:
<service name="set">
<info>This service sets attenuation for ports pair.</info>
<args>
<arg name="portA" isRequired="true" value="port">
<info>Port number </info>
<arg name="portB" isRequired="true" value="port">
<info>Port number </info>
</arg>
<arg name="att" isRequired="true" value="att">
<info>attenuation </info>
</arg>
</arg>
</args>
</service>
Example: set the attenuation value between node1-1 and node1-2 to 20 dB
$ wget -O status http://am-rt1.cosmos-lab.org:5054/instr/set?portA=1\&portB=2\&att=20
Get the attenuation between a given pair of ports
<service name="get">
<info>This service gets attenuation for ports pair.</info>
<args>
<arg name="portB" isRequired="true" value="port">
<info>Port number </info>
</arg>
<arg name="portA" isRequired="true" value="port">
<info>Port number </info>
</arg>
</args>
</service>
Example: get the attenuation between node1-1 and node1-8
$ wget -O status http://am-rt1.cosmos-lab.org:5054/instr/get?portA=1\&portB=8
<service name="default">
<info>This service load default configuration.</info>
</service>
The default configuration sets all attenuators to 0 dB attenuation (i.e. full connectivity between all of the nodes).
Get attenuation values on all port pairs
<service name="status">
<info>This service outputs attenuation for all pairs.</info>
</service>
$ wget -O status http://am-rt1.cosmos-lab.org:5054/instr/status
<service name="list">
<info>This service list configurations from database.</info>
</service>
Load attenuator setting from the internal database of configurations.
<service name="load">
<info>This service load configuration from database.</info>
<args>
<arg name="name" isRequired="true" value="name">
<info>Name of configuration.</info>
</arg>
</args>
</service>
Store current attenuator settings under with the name into internal database .
<service name="save">
<info>This service saves current configuration to database.</info>
<args>
<arg name="name" isRequired="true" value="name">
<info>Name of configuration.</info>
</arg>
</args>
</service>
<service name="delete">
<info>This service deletes configuration from database.</info>
</service>
<service name="show">
<info>Show named configuration from database.</info>
<args>
<arg name="name" isRequired="true" value="name">
<info>Name of configuration.</info>
</arg>
</args>
</service>
curl "am-rt1.cosmos-lab.org:5054/instr/selDevice?switch=4&port=2"
<service name="selDevice">
<info>This service selects one of the two devices connected to the matrix port.</info>
<args>
<arg isRequired="true" name="switch" value="switch">
<info>Switch number (switch=1 => matrix port 1, switch=2 => matrix port 2, switch=3 => matrix port 8, switch=4 => matrix port 9)</info>
</arg>
<arg isRequired="true" name="port" value="port">
<info>Port number (port=1 => node, port=2 => USRP)</info>
</arg>
</args>
</service>
How to use instrumentation AM from your OEDL script; Attenuator values are between 0 and 63 dB.
...
require "matrix"
c8 = Matrix[
[ 63, 0,63,63,63,63,63, 0,63 ],
[ 0,63, 0,63,63,63,63,63,63 ],
[ 63, 0,63,63,63,63,63,63,63 ],
[ 63,63, 0,63, 0,63,63,63,63 ],
[ 63,63,63, 0,63, 0,63,63,63 ],
[ 63,63,63,63, 0,63, 0,63,63 ],
[ 63,63,63,63,63, 0,63, 0,63 ],
[ 0,63,63,63,63,63, 0,63,63 ],
[ 63,63,63,63,63,63,63,63,63 ]
]
set_att_matrix(c8)
...
...
require "matrix"
c8 = Matrix[
[ 0,63, 0, 0, 0, 0, 0,63, 0 ],
[ 63, 0,63, 0, 0, 0, 0, 0, 0 ],
[ 0,63, 0,63, 0, 0, 0, 0, 0 ],
[ 0, 0,63, 0,63, 0, 0, 0, 0 ],
[ 0, 0, 0,63, 0,63, 0, 0, 0 ],
[ 0, 0, 0, 0,63, 0,63, 0, 0 ],
[ 0, 0, 0, 0, 0,63, 0,63, 0 ],
[ 63, 0, 0, 0, 0, 0,63, 0, 0 ],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
]
set_neg_att_matrix(c8)
...
...
load_att_matrix("cycle-8")
...