Changes between Version 1 and Version 2 of Resources/Services/RFControl


Ignore:
Timestamp:
Mar 7, 2020, 5:25:48 PM (5 years ago)
Author:
jkol
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Resources/Services/RFControl

    v1 v2  
    33= Service: RF Control =
    44
    5 This service is used to configure the RF front ends of the nodes. The functionality follows the descriptions on the [wiki:hardware/rf-front-end RF front end] page (eg. setting the filters for one TX chain applies the setting to both TX chains of the node).
     5This service is used to configure the RF front ends of the nodes. The functionality follows the descriptions and details on the [wiki:hardware/rf-front-end RF front end] page (eg. setting the filters for one TX chain applies the setting to both TX chains of the node).
     6
     7'''NOTE:''' Where node names are required, please use the fully qualified domain name (FQDN) of the node (eg. `sdr1-s1-lg1.bed.cosmos-lab.org`).
     8
     9[[BR]]
    610
    711== Usage ==
    812
    9 All the available methods are accessible from the a testbed console via an HTTP API located at {{{am1.cosmos-lab.org:5054/rf_control}}}. This API can be interacted with via a command line tool such as "curl" or any script using a "REST client" library.
     13All the available methods are accessible from the a testbed console via an HTTP API located at `am1.cosmos-lab.org:5054/rf_control`. This API can be interacted with via a command line tool such as "curl" or any script using a "REST client" library.
     14
     15[[BR]]
    1016
    1117=== Get the current configuration ===
    1218
    13 This API call is used to get the current configuration of the RF front end(s) with respect to a node or list of nodes. The response will specify the parameters of the TX chain for the node(s) in question. It will show for a given node's {{{rf_port}}}, what {{{antenna}}} would be used if it were {{{connected}}}, whether the power amplifier ({{{power_amp}}}) is on or off, and the lower frequency ({{{f_lower}}}) and upper frequency ({{{f_upper}}}) of the filters.
     19This API call is used to get the current configuration of the RF front end(s) with respect to a node or list of nodes. The response will specify the parameters of the TX chain for the node(s) in question. It will show for a given node's `rf_port`, what `antenna` would be used if it were `connected`, whether the power amplifier (`power_amp`) is on or off, and the lower frequency (`f_lower`) and upper frequency (`f_upper`) of the filters.
    1420
    15 Path: {{{am1.cosmos-lab.org:5054/rf_control/get-tx_path}}}
     21HTTP API Path: `am1.cosmos-lab.org:5054/rf_control/get-tx_path`
    1622
    1723Parameters:
    18  ||= Name =||= Decription =||= Required =||= Acceptable Input =||
    19  ||  node  || Comma separated list of node FQDNs ||  Y  ||  list of node names  ||
     24 ||= '''Name''' =||= '''Decription''' =||= '''Required''' =||= '''Acceptable Input''' =||
     25 ||  node  ||  Comma separated list of node FQDNs  ||  Y  ||  (list of nodes)  ||
     26
     27[[BR]]
    2028
    2129==== Example 1 ====
    22  Request:
    23  {{{am1.cosmos-lab.org:5054/rf_control/get_tx_path?node=sdr1-s1-lg1.bed.cosmos-lab.org}}}
     30HTTP Request:
     31{{{
     32am1.cosmos-lab.org:5054/rf_control/get_tx_path?node=sdr1-s1-lg1.bed.cosmos-lab.org
     33}}}
    2434
    25  Response:
    26  {{{
     35Response:
     36{{{
    2737<response status="OK">
    2838  <nodes>
    2939    <node name="sdr1-s1-lg1.bed.cosmos-lab.org">
    30       <rf_port number="0" antenna="1" connected="false" power_amp="OFF" f_lower="4900" f_upper="6200"/>
    31       <rf_port number="1" antenna="3" connected="false" power_amp="OFF" f_lower="4900" f_upper="6200"/>
     40      <rf_port number="0" antenna="1" connected="true" power_amp="ON" f_lower="4900" f_upper="6200"/>
     41      <rf_port number="1" antenna="3" connected="true" power_amp="ON" f_lower="4900" f_upper="6200"/>
    3242      <rf_port number="2" antenna="" connected="false"/>
    3343      <rf_port number="3" antenna="" connected="false"/>
     
    3545  </nodes>
    3646</response>
    37  }}}
     47}}}
     48
     49In this example, node `sdr1-s1-lg1.bed.cosmos-lab.org` has:
     50* TX of rf_port 0, connected to antenna 1, its power amplifier is on, and the filters are set to 4900-6200MHz
     51* TX of rf_port 1, connected to antenna 3, its power amplifier is on, and the filters are set to 4900-6200MHz
     52* TX of rf_port 2 is not connected to anything
     53* TX of rf_port 3 is not connected to anything
     54
     55
     56[[BR]]
    3857
    3958==== Example 2 ====
    4059
    41  Request:
    42  {{{am1.cosmos-lab.org:5054/rf_control/get_tx_path?node=sdr1-s1-lg1.bed.cosmos-lab.org,sdr2-s1-lg1.bed.cosmos-lab.org}}}
     60HTTP Request:
     61{{{
     62am1.cosmos-lab.org:5054/rf_control/get_tx_path?node=sdr1-s1-lg1.bed.cosmos-lab.org,sdr2-s1-lg1.bed.cosmos-lab.org
     63}}}
    4364
    44  Response:
    45  {{{
     65Response:
     66{{{
    4667<response status="OK">
    4768  <nodes>
     
    6081 }}}
    6182
     83[[BR]]
     84
    6285=== Turn off power amplifiers ===
    6386
    6487This API call is simply a shorthand to easily turn off the power amplifiers for a given node. Keep in mind that power amplifier state is shared between nodes in the same physical location (eg. sdr1-md1.bed.cosmos-lab.org and sdr2-md1.bed.cosmos-lab.org).
    6588
    66 Path: {{{am1.cosmos-lab.org:5054/rf_control/power_amp_off}}}
     89HTTP API Path: `am1.cosmos-lab.org:5054/rf_control/power_amp_off`
    6790
    6891Parameters:
    69  ||= Name =||= Decription =||= Required =||= Acceptable Input =||
     92 ||= '''Name''' =||= '''Decription''' =||= '''Required''' =||= '''Acceptable Input''' =||
    7093 ||  node  || Comma separated list of node FQDNs ||  Y  ||  list of node names  ||
    7194
    72 ==== Example 1 ====
    73  Turn off the power amplifier for {{{sdr1-s1-lg1.bed.cosmos-lab.org}}}.
    74 
    75  Request:
    76  {{{am1.cosmos-lab.org:5054/rf_control/power_amp_off?node=sdr1-s1-lg1.bed.cosmos-lab.org}}}
    77 
    78  Response:
    79  {{{
    80 <response status="OK">
    81   <message>OK</message>
    82 </response>
    83  }}}
    84 
    85 
    86 === Configure the TX chain ===
    87 am1.cosmos-lab.org:5054/rf_control/set_tx_path?node=<comma separated list of nodes>&power_amp=<on,off>&rf_port=<0,1>
    88 
    89 Path: {{{am1.cosmos-lab.org:5054/rf_control/power_amp_off}}}
    90 
    91 Parameters:
    92 ||= Name =||= Decription =||= Required =||= Acceptable Input =||
    93 ||  node  || Comma separated list of node FQDNs ||  Y  ||  list of node names  ||
    94 
    95 f_center and f_bandwidth: From (f_center - f_bandwidth/2) to (f_center + f_bandwidth/2)
    96 
    97 f_upper and f_lower: From (f_lower) to (f_upper)
    98 
    99 f_lower and bandwidth: From (f_lower) to (f_lower + bandwidth)
    100 
    101 f_upper and bandwidth: From (f_upper - bandwidth) to (f_upper)
    102 
     95[[BR]]
    10396
    10497==== Example 1 ====
    105 Request:
    106 {{{am1.cosmos-lab.org:5054/rf_control/set_tx_path?node=sdr1-s1-lg1.bed.cosmos-lab.org}}}
     98
     99Turn off the power amplifier for `sdr1-s1-lg1.bed.cosmos-lab.org`.
     100
     101HTTP Request:
     102{{{
     103am1.cosmos-lab.org:5054/rf_control/power_amp_off?node=sdr1-s1-lg1.bed.cosmos-lab.org
     104}}}
    107105
    108106Response:
     
    112110</response>
    113111}}}
     112
     113[[BR]]
     114
     115=== Configure the TX chain ===
     116
     117HTTP API Path: `am1.cosmos-lab.org:5054/rf_control/set_tx_path`
     118
     119Parameters:
     120 ||= '''Name''' =||= '''Decription''' =||= '''Required''' =||= '''Acceptable Input''' =||
     121 ||  node  ||  Comma separated list of node FQDNs  ||  Y  ||  (list of node names)  ||
     122 ||  rf_port  ||  Node RF port to configure  ||  Y  ||  0, 1  ||
     123 ||  power_amp  ||  Power amplifier state  ||  N  ||  on, off  ||
     124 ||  f_center  ||  Center frequency of range requested  ||  *  ||  (frequency in MHz)  ||
     125 ||  f_bandwidth  ||  Bandwidth of frequency range requested  ||  *  ||  (frequency in MHz)  ||
     126 ||  f_lower  ||  Lower end of frequency range requested  ||  *  ||  (frequency in MHz)  ||
     127 ||  f_upper  ||  Upper end of frequency range requested  ||  *  ||  (frequency in MHz)  ||
     128
     129 '''*''' The filter frequency selection parameters are not required if all are committed. However, to select a frequency range, at least two are required using the following format.
     130
     131 ||= '''1st Parameter''' =||= '''2nd Parameter''' =||= '''Effective frequency range''' =||
     132 ||  f_center  ||  f_bandwidth  ||  (f_center - f_bandwidth/2) to (f_center + f_bandwidth/2)  ||
     133 ||  f_upper  ||  f_lower  ||  (f_lower) to (f_upper)  ||
     134 ||  f_lower  ||  f_bandwidth  ||  (f_lower) to (f_lower + bandwidth)  ||
     135 ||  f_upper  ||  f_bandwidth  ||  (f_upper - bandwidth) to (f_upper)  ||
     136
     137[[BR]]
     138
     139==== Example 1 ====
     140
     141For `sdr1-s1-lg1` in `bed` testbed, connect TX RF ports 0 and 1 to their respective antennas, turn on the power amplifier, and request a frequency of 2.4-2.5 GHz.
     142
     143HTTP Request:
     144{{{
     145am1.cosmos-lab.org:5054/rf_control/set_tx_path?node=sdr1-s1-lg1.bed.cosmos-lab.org&rf_port=0,1&power_amp=on&f_lower=2400&f_upper=2500
     146}}}
     147
     148Response:
     149{{{
     150<response status="OK">
     151  <message>OK</message>
     152</response>
     153}}}