[[Include(WikiToC)]] === RF Control This 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). '''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`). === Usage 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. === Get the current configuration === 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. HTTP API Path: `am1.cosmos-lab.org:5054/rf_control/get_tx_path` Parameters: ||= '''Name''' =||= '''Decription''' =||= '''Required''' =||= '''Acceptable Input''' =|| || node || Comma separated list of node FQDNs || Y || (list of nodes) || ==== Example 1 ==== HTTP Request: {{{ am1.cosmos-lab.org:5054/rf_control/get_tx_path?node=sdr1-s1-lg1.bed.cosmos-lab.org }}} Response: {{{ }}} In this example, node `sdr1-s1-lg1.bed.cosmos-lab.org` has: * TX of rf_port 0, connected to antenna 1, its power amplifier is on, and the filters are set to 4900-6200MHz * TX of rf_port 1, connected to antenna 3, its power amplifier is on, and the filters are set to 4900-6200MHz * TX of rf_port 2 is not connected to anything * TX of rf_port 3 is not connected to anything ==== Example 2 ==== HTTP Request: {{{ 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 }}} Response: {{{ }}} === Turn off power amplifiers === This 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). HTTP API Path: `am1.cosmos-lab.org:5054/rf_control/power_amp_off` Parameters: ||= '''Name''' =||= '''Decription''' =||= '''Required''' =||= '''Acceptable Input''' =|| || node || Comma separated list of node FQDNs || Y || list of node names || ==== Example 1 ==== Turn off the power amplifier for `sdr1-s1-lg1.bed.cosmos-lab.org`. HTTP Request: {{{ am1.cosmos-lab.org:5054/rf_control/power_amp_off?node=sdr1-s1-lg1.bed.cosmos-lab.org }}} Response: {{{ OK }}} === Configure the TX chain === HTTP API Path: `am1.cosmos-lab.org:5054/rf_control/set_tx_path` Parameters: ||= '''Name''' =||= '''Decription''' =||= '''Required''' =||= '''Acceptable Input''' =|| || node || Comma separated list of node FQDNs || Y || (list of node names) || || rf_port || Node RF port to configure || Y || 0, 1 || || power_amp || Power amplifier state || N || on, off || || f_center || Center frequency of range requested || * || (frequency in MHz) || || f_bandwidth || Bandwidth of frequency range requested || * || (frequency in MHz) || || f_lower || Lower end of frequency range requested || * || (frequency in MHz) || || f_upper || Upper end of frequency range requested || * || (frequency in MHz) || '''*''' 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. ||= '''1st Parameter''' =||= '''2nd Parameter''' =||= '''Effective Frequency Range''' =|| || f_center || f_bandwidth || (f_center - f_bandwidth/2) to (f_center + f_bandwidth/2) || || f_upper || f_lower || (f_lower) to (f_upper) || || f_lower || f_bandwidth || (f_lower) to (f_lower + bandwidth) || || f_upper || f_bandwidth || (f_upper - bandwidth) to (f_upper) || The allowed transmit frequency bands are detailed on the [wiki:PoliciesCompliance#OutdoorRadioFrequencyAllocation] page. ==== Example 1 ==== For `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. HTTP Request: {{{ am1.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 }}} Response: {{{ OK }}}