RENEWLab  1.1.0
RENEW project
iris_health_monitor Namespace Reference

Functions

def comamnd_line ()
 Functions #. More...
 
def prepare_irises (uut_serials, golden_serial, rm_from_uut_serials)
 
def set_gain_limits (frontend)
 
def disp_params (freq, rx_pwr_limit, golden_serial, golden_ant, golden_tx_gain, golden_rx_gain, gain_step, uut_serials, pf_rx, pf_tx, en_logging, detailed_logs, log_name_rx, log_name_tx, test_tx_only, test_rx_only)
 
def process_rx_log (log_name_rx, rx_thresh)
 
def process_tx_log (log_name_tx)
 
def plotter (rx_axis_x0, rx_axis_x1, rx_axis_y0, rx_axis_y1, rx_noise_floor0, rx_noise_floor1, rx_serials, tx_axis_x0, tx_axis_x1, tx_axis_y0, tx_axis_y1, tx_noise_floor0, tx_noise_floor1, tx_serials, test_tx_only, test_rx_only, pf_rx, pf_tx, golden_serial, golden_ant, golden_tx_gain, golden_rx_gain, test_datetime, rx_thresh, rx_lo, rx_hi, tx_lo, tx_hi)
 
def generate_sine (tx_num_samps, rate, wave_freq, bb_freq, amp)
 
def print_header (en_logging, log_writer)
 
def print_results (pf, uut_serial, fft_pwr_db_1, fft_pwr_db_2, noise_floor_1, noise_floor_2, uut_ch, uut_gain, uut_gain_lo, uut_gain_hi, golden_serial, golden_ant, golden_gain, rx_pwr_limit, lms7_temp, zynq_temp, pwr_dbfs, rx_start, rx_stop, en_logging, log_writer)
 
def test_a_tx_rx_pair (sdr_tx, sdr_rx, tx_gain, rx_gain, freq, tx_ant, samp_rate=5e6, fft_size=1024, rx_num_samps=1024, wait_trigger=False, tx_amp=1, bb_freq=0, wave_freq=None, tx_num_samps=2 **10, lo_tone=False)
 
def test_receiver (gain_step, freq, uut_sdrs, uut_serials, uut_frontends, golden_sdr, golden_serial, golden_tx_gain, golden_ant, rx_pwr_limit, detailed_logs, en_logging, log_writer)
 
def test_transmitter (gain_step, freq, uut_sdrs, uut_serials, uut_frontends, golden_sdr, golden_serial, golden_rx_gain, golden_ant, rx_pwr_limit, detailed_logs, en_logging, log_writer)
 
def iris_health_monitor (en_logging, freq, uut_serials, golden_serial, gain_step, golden_tx_gain, golden_ant, golden_rx_gain, rx_pwr_limit, rm_from_uut_serials, detailed_logs, sdr_log_level, test_tx_only, test_rx_only)
 

Variables

def args = comamnd_line()
 Main #. More...
 
 en_logging
 
 freq
 
 uut_serials
 
 golden_serial
 
 gain_step
 
 golden_tx_gain
 
 golden_ant
 
 golden_rx_gain
 
 rx_pwr_limit
 
 rm_from_uut_serials
 
 detailed_logs
 
 sdr_log_level
 
 test_tx_only
 
 test_rx_only
 

Detailed Description

iris_health_monitor.py


Description: 

Monitor the power levels and temperature of all Iris modules
detectable on the network.

1.  Find all Iris modules on the network.

2.  TX from a Golden Iris module on channel A, loop through all other
Iris modules and auto adjust rxgain until the RX power is in range.
If within the rxgain range the RX power cannot be adjusted in range,
fail the test. Otherwise, pass. Both channel A & B shall be scanned.

Tx from the golden Iris. If no golden Iris is picked in the command,
the first discovered Iris shall be designated as the golden Iris
module. Tx on the specified channel. Loop through all other Iris
modules' channel A & B, rx and find the best rxgain for each channel
by increasing rxgain with gain-step.

    if using CBRS, rxgain range is
        [3:1:105] at 2.5 GHz
        [3:1:102] at 3.6 GHz
    if using only Dev Board, rxgain range is
        [0:1:30]

3.  RX from a Golden Iris module on channel A, loop through all other
Iris modules and auto adjust txgain until the RX power is in range.
If within the txgain range the RX power cannot be adjusted in range,
fail the test. Otherwise, pass. Both channel A & B shall be scanned.

Rx from the golden Iris channel A. if no golden Iris is picked in
the command, the first discovered Iris shall be designated as the
golen Iris module. Loop through all other iris modules' channel A &
B, tx and find the best txgain for each channel by increasing txgain
with gain-step.

    if using CBRS, txgain range is
        [16:1:93] at 2.5 GHz
        [15:1:102] at 3.6 GHz
    if using only Dev Board, txgain range is
        [0:1:42]


Usage Examples: 

1.  If no serial number is specified, the first detected Iris serial
number shall shall be used as the golden unit. All other Iris
modules on the network shall be scanned.

    python3 IRIS_HEALTH_MONITOR.py

2.  If the golden unit serial number is specified, all other Iris
modules on the network shall be scanned.

    python3 IRIS_HEALTH_MONITOR.py --serial=RF3E000392

3.  If both the golden unit and a list of UUT Iris modules are specified

pyton3 IRIS_HEALTH_MONITOR.py -s RF3E000392 -u RF3E000295 RF3E000300

4.  The expected output shall be both on Terminal and be saved in a log.
The contents are timestampts, serial numbers, rxgains, txgains, rx
power, temperature, and PASS/FAIL.
TODO: Save to a database instead of a log file.

------------------------------------------------------------
Copyright © 2020 Rice University
RENEW OPEN SOURCE LICENSE http://renew-wireless.org/license
------------------------------------------------------------

Function Documentation

◆ comamnd_line()

def iris_health_monitor.comamnd_line ( )

Functions #.

◆ disp_params()

def iris_health_monitor.disp_params (   freq,
  rx_pwr_limit,
  golden_serial,
  golden_ant,
  golden_tx_gain,
  golden_rx_gain,
  gain_step,
  uut_serials,
  pf_rx,
  pf_tx,
  en_logging,
  detailed_logs,
  log_name_rx,
  log_name_tx,
  test_tx_only,
  test_rx_only 
)
Here is the caller graph for this function:

◆ generate_sine()

def iris_health_monitor.generate_sine (   tx_num_samps,
  rate,
  wave_freq,
  bb_freq,
  amp 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iris_health_monitor()

def iris_health_monitor.iris_health_monitor (   en_logging,
  freq,
  uut_serials,
  golden_serial,
  gain_step,
  golden_tx_gain,
  golden_ant,
  golden_rx_gain,
  rx_pwr_limit,
  rm_from_uut_serials,
  detailed_logs,
  sdr_log_level,
  test_tx_only,
  test_rx_only 
)
Here is the call graph for this function:

◆ plotter()

def iris_health_monitor.plotter (   rx_axis_x0,
  rx_axis_x1,
  rx_axis_y0,
  rx_axis_y1,
  rx_noise_floor0,
  rx_noise_floor1,
  rx_serials,
  tx_axis_x0,
  tx_axis_x1,
  tx_axis_y0,
  tx_axis_y1,
  tx_noise_floor0,
  tx_noise_floor1,
  tx_serials,
  test_tx_only,
  test_rx_only,
  pf_rx,
  pf_tx,
  golden_serial,
  golden_ant,
  golden_tx_gain,
  golden_rx_gain,
  test_datetime,
  rx_thresh,
  rx_lo,
  rx_hi,
  tx_lo,
  tx_hi 
)
Here is the caller graph for this function:

◆ prepare_irises()

def iris_health_monitor.prepare_irises (   uut_serials,
  golden_serial,
  rm_from_uut_serials 
)
Here is the caller graph for this function:

◆ print_header()

def iris_health_monitor.print_header (   en_logging,
  log_writer 
)
Here is the caller graph for this function:

◆ print_results()

def iris_health_monitor.print_results (   pf,
  uut_serial,
  fft_pwr_db_1,
  fft_pwr_db_2,
  noise_floor_1,
  noise_floor_2,
  uut_ch,
  uut_gain,
  uut_gain_lo,
  uut_gain_hi,
  golden_serial,
  golden_ant,
  golden_gain,
  rx_pwr_limit,
  lms7_temp,
  zynq_temp,
  pwr_dbfs,
  rx_start,
  rx_stop,
  en_logging,
  log_writer 
)
Here is the caller graph for this function:

◆ process_rx_log()

def iris_health_monitor.process_rx_log (   log_name_rx,
  rx_thresh 
)
Here is the caller graph for this function:

◆ process_tx_log()

def iris_health_monitor.process_tx_log (   log_name_tx)
Here is the caller graph for this function:

◆ set_gain_limits()

def iris_health_monitor.set_gain_limits (   frontend)
Here is the caller graph for this function:

◆ test_a_tx_rx_pair()

def iris_health_monitor.test_a_tx_rx_pair (   sdr_tx,
  sdr_rx,
  tx_gain,
  rx_gain,
  freq,
  tx_ant,
  samp_rate = 5e6,
  fft_size = 1024,
  rx_num_samps = 1024,
  wait_trigger = False,
  tx_amp = 1,
  bb_freq = 0,
  wave_freq = None,
  tx_num_samps = 2**10,
  lo_tone = False 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_receiver()

def iris_health_monitor.test_receiver (   gain_step,
  freq,
  uut_sdrs,
  uut_serials,
  uut_frontends,
  golden_sdr,
  golden_serial,
  golden_tx_gain,
  golden_ant,
  rx_pwr_limit,
  detailed_logs,
  en_logging,
  log_writer 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_transmitter()

def iris_health_monitor.test_transmitter (   gain_step,
  freq,
  uut_sdrs,
  uut_serials,
  uut_frontends,
  golden_sdr,
  golden_serial,
  golden_rx_gain,
  golden_ant,
  rx_pwr_limit,
  detailed_logs,
  en_logging,
  log_writer 
)
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ args

def iris_health_monitor.args = comamnd_line()

Main #.

◆ detailed_logs

iris_health_monitor.detailed_logs

◆ en_logging

iris_health_monitor.en_logging

◆ freq

iris_health_monitor.freq

◆ gain_step

iris_health_monitor.gain_step

◆ golden_ant

iris_health_monitor.golden_ant

◆ golden_rx_gain

iris_health_monitor.golden_rx_gain

◆ golden_serial

iris_health_monitor.golden_serial

◆ golden_tx_gain

iris_health_monitor.golden_tx_gain

◆ rm_from_uut_serials

iris_health_monitor.rm_from_uut_serials

◆ rx_pwr_limit

iris_health_monitor.rx_pwr_limit

◆ sdr_log_level

iris_health_monitor.sdr_log_level

◆ test_rx_only

iris_health_monitor.test_rx_only

◆ test_tx_only

iris_health_monitor.test_tx_only

◆ uut_serials

iris_health_monitor.uut_serials