1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
id: iio_fmcomms2_source
label: FMComms2/3/4 Source
flags: [ python, throttle ]
parameters:
- id: uri
label: IIO context URI
dtype: string
default: 'local:'
- id: frequency
label: LO Frequency
dtype: int
default: 2400000000
- id: samplerate
label: Sample Rate
dtype: int
default: 2084000
- id: bandwidth
label: RF Bandwidth
dtype: int
default: 20000000
- id: buffer_size
label: Buffer size
dtype: int
default: 0x8000
- id: rx1_en
label: RX1 Enabled
dtype: bool
default: 'True'
options: ['False', 'True']
option_labels: ['False', 'True']
- id: rx2_en
label: RX2 Enabled
dtype: bool
default: 'True'
options: ['False', 'True']
option_labels: ['False', 'True']
- id: quadrature
label: Quadrature
dtype: bool
default: 'True'
options: ['False', 'True']
option_labels: ['False', 'True']
- id: rfdc
label: RF DC Correction
dtype: bool
default: 'True'
options: ['False', 'True']
option_labels: ['False', 'True']
- id: bbdc
label: BB DC Correction
dtype: bool
default: 'True'
options: ['False', 'True']
option_labels: ['False', 'True']
- id: gain1
label: Gain Mode (RX1)
dtype: enum
default: "'manual'"
options: ["'manual'", "'slow_attack'", "'fast_attack'", "'hybrid'"]
option_labels: ['Manual', 'Slow Attack', 'Fast Attack', 'Hybrid']
hide: ${ ('none' if rx1_en else 'all') }
- id: manual_gain1
label: Manual Gain (RX1)(dB)
dtype: float
default: 64
hide: ${ ('none' if ((gain1 == 'manual') and (rx1_en)) else 'all') }
- id: gain2
label: Gain Mode (RX2)
dtype: enum
default: "'manual'"
options: ["'manual'", "'slow_attack'", "'fast_attack'", "'hybrid'"]
option_labels: ['Manual', 'Slow Attack', 'Fast Attack', 'Hybrid']
hide: ${ ('none' if rx2_en else 'all') }
- id: manual_gain2
label: Manual Gain (RX2)(dB)
dtype: float
default: 64
hide: ${ ('none' if ((gain2 == 'manual') and (rx2_en)) else 'all') }
- id: rf_port_select
label: RF Port Select
dtype: enum
default: "'A_BALANCED'"
options: ["'A_BALANCED'", "'B_BALANCED'", "'C_BALANCED'", "'A_N'", "'A_P'", "'B_N'", "'B_P'", "'C_N'", "'C_P'", "'TX_MONITOR1'", "'TX_MONITOR2'", "'TX_MONITOR1_2'"]
option_labels: ['A_BALANCED', 'B_BALANCED', 'C_BALANCED', 'A_N', 'A_P', 'B_N', 'B_P', 'C_N', 'C_P', 'TX_MONITOR1', 'TX_MONITOR2', 'TX_MONITOR1_2']
- id: filter
label: Filter
dtype: file_open
default: ''
- id: auto_filter
label: Filter Auto
dtype: bool
default: 'True'
options: ['False', 'True']
option_labels: ['False', 'True']
outputs:
- domain: stream
dtype: complex
multiplicity: ${ sum([rx1_en, rx2_en]) }
asserts:
- ${ sum([rx1_en, rx2_en]) > 0 }
- ${ ((samplerate>=2084000) or (len(filter)>0) or auto_filter) }
- ${ ((samplerate<=61440000) and (samplerate>=520833)) }
- ${ ((bandwidth<=52000000) and (bandwidth>=200000)) }
- ${ ((frequency<=6000000000) and (frequency>=70000000)) }
templates:
imports: import iio
make: iio.fmcomms2_source_f32c(${uri}, ${frequency}, ${samplerate}, ${bandwidth}, ${rx1_en}, ${rx2_en}, ${buffer_size}, ${quadrature}, ${rfdc}, ${bbdc}, ${gain1}, ${manual_gain1}, ${gain2}, ${manual_gain2}, ${rf_port_select}, ${filter}, ${auto_filter})
callbacks:
- set_params(${frequency}, ${samplerate}, ${bandwidth}, ${rx1_en}, ${rx2_en}, ${buffer_size}, ${quadrature}, ${rfdc}, ${bbdc}, ${gain1}, ${manual_gain1}, ${gain2}, ${manual_gain2}, ${rf_port_select}, ${filter}, ${auto_filter})
file_format: 1
|