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 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173
|
id: iio_fmcomms5_source
label: FMComms5 Source
flags: [ python, throttle ]
parameters:
- id: uri
label: IIO context URI
dtype: string
default: 'local:'
- id: frequency1
label: LO Frequency (RX1/RX2)
dtype: int
default: 2400000000
- id: frequency2
label: LO Frequency (RX3/RX4)
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: rx3_en
label: RX3 Enabled
dtype: bool
default: 'True'
options: ['False', 'True']
option_labels: ['False', 'True']
- id: rx4_en
label: RX4 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: gain3
label: Gain Mode (RX3)
dtype: enum
default: "'manual'"
options: ["'manual'", "'slow_attack'", "'fast_attack'", "'hybrid'"]
option_labels: ['Manual', 'Slow Attack', 'Fast Attack', 'Hybrid']
hide: ${ ('none' if rx3_en else 'all') }
- id: manual_gain3
label: Manual Gain (RX3)(dB)
dtype: float
default: 64
hide: ${ ('none' if ((gain3 == 'manual') and (rx3_en)) else 'all') }
- id: gain4
label: Gain Mode (RX4)
dtype: enum
default: "'manual'"
options: ["'manual'", "'slow_attack'", "'fast_attack'", "'hybrid'"]
option_labels: ['Manual', 'Slow Attack', 'Fast Attack', 'Hybrid']
hide: ${ ('none' if rx4_en else 'all') }
- id: manual_gain4
label: Manual Gain (RX4)(dB)
dtype: float
default: 64
hide: ${ ('none' if ((gain4 == 'manual') and (rx4_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: ''
outputs:
- domain: stream
dtype: complex
multiplicity: ${ sum([rx1_en, rx2_en, rx3_en, rx4_en]) }
asserts:
- ${ sum([rx1_en, rx2_en, rx3_en, rx4_en]) > 0 }
- ${ ((samplerate>=2084000) or (len(filter)>0) or auto_filter) }
- ${ ((samplerate<=61440000) and (samplerate>=520833)) }
- ${ ((bandwidth<=52000000) and (bandwidth>=200000)) }
- ${ ((frequency1<=6000000000) and (frequency1>=70000000)) }
- ${ ((frequency2<=6000000000) and (frequency2>=70000000)) }
templates:
imports: import iio
make: iio.fmcomms5_source_f32c(${uri}, ${frequency1}, ${frequency2}, ${samplerate}, ${bandwidth}, ${rx1_en}, ${rx2_en}, ${rx3_en}, ${rx4_en}, ${buffer_size}, ${quadrature}, ${rfdc}, ${bbdc}, ${gain1}, ${manual_gain1}, ${gain2}, ${manual_gain2}, ${gain3}, ${manual_gain3}, ${gain4}, ${manual_gain4}, ${rf_port_select}, ${filter})
callbacks:
- set_params(${frequency1}, ${frequency2}, ${samplerate}, ${bandwidth}, ${rx1_en}, ${rx2_en}, ${rx3_en}, ${rx4_en}, ${buffer_size}, ${quadrature}, ${rfdc}, ${bbdc}, ${gain1}, ${manual_gain1}, ${gain2}, ${manual_gain2}, ${gain3}, ${manual_gain3}, ${gain4}, ${manual_gain4}, ${rf_port_select})
file_format: 1
|