| 93 | |
| 94 | |
| 95 | |
| 96 | === {{{wl_getInterfaceIDs}}} === |
| 97 | Returns the interfaces IDs that can be used as inputs to all interface commands, some baseband commands and possibly some user extension commands. |
| 98 | |
| 99 | The interface IDs are returned in a structure that contains fields for individual interfaces and combinations of interfaces. When a node only supports 2 interfaces, the fields for RFC and RFD (ie the fields specific to a 4 interface node) are not present in the structure. |
| 100 | |
| 101 | The fields in the structure are: |
| 102 | - Scalar fields: |
| 103 | - '''RF_A''' |
| 104 | - '''RF_B''' |
| 105 | - '''RF_C''' |
| 106 | - '''RF_D''' |
| 107 | - '''RF_ON_BOARD''' (NOTE: RF_ON_BOARD = RF_A + RF_B) |
| 108 | - '''RF_FMC''' (NOTE: RF_FMC = RF_C + RF_D) |
| 109 | - '''RF_ALL''' (NOTE: 2RF: RF_ALL = RF_A + RF_B; 4RF: RF_ALL = RF_A + RF_B + RF_C + RF_D) |
| 110 | - Vector fields: |
| 111 | - '''RF_ON_BOARD_VEC''' (NOTE: RF_ON_BOARD_VEC = [RF_A, RF_B]) |
| 112 | - '''RF_FMC_VEC''' (NOTE: RF_FMC_VEC = [RF_C, RF_D]) |
| 113 | - '''RF_ALL_VEC''' (NOTE: 2RF: RF_ALL_VEC = [RF_A, RF_B]; 4RF: RF_ALL_VEC = [RF_A, RF_B, RF_C, RF_D]) |
| 114 | |
| 115 | NOTE: Due to Matlab behavior, the scalar fields for RF_A, RF_B, RF_C, and RF_D can be used as vectors and therefore do not need separate vector fields in the structure |
| 116 | |
| 117 | % Examples: |
| 118 | % Get the interface ID structure (let node be a wl_node object): |
| 119 | % ifc_ids = wl_getInterfaceIDs(node); |
| 120 | % ifc_ids = node.wl_getInterfaceIDs(); |
| 121 | % |
| 122 | % Use the interface ID structure: |
| 123 | % 1) Enable RF_A for transmit: |
| 124 | % wl_interfaceCmd(node, ifc_ids.RF_A, 'tx_en'); |
| 125 | % |
| 126 | % 2) Get 1000 samples of Read IQ data from all interfaces: |
| 127 | % rx_IQ = wl_basebandCmd(node, ifc_ids.RF_ALL_VEC, 'read_IQ', 0, 1000); |
| 128 | |
| 129 | |
| 130 | Examples: |
| 131 | - Get the interface ID structure (let node be a wl_node object): |
| 132 | {{{ |
| 133 | ifc_ids = wl_getInterfaceIDs(node); |
| 134 | ifc_ids = node.wl_getInterfaceIDs(); |
| 135 | }}} |
| 136 | - Use the trigger input ID structure: |
| 137 | - Enable RF_A for transmit: |
| 138 | {{{ |
| 139 | wl_interfaceCmd(node, ifc_ids.RF_A, 'tx_en'); |
| 140 | }}} |
| 141 | - Get 1000 samples of Read IQ data from all interfaces: |
| 142 | {{{ |
| 143 | rx_IQ = wl_basebandCmd(node, ifc_ids.RF_ALL_VEC, 'read_IQ', 0, 1000); |
| 144 | }}} |
| 145 | |
| 146 | |
| 147 | '''Arguments:''' none |
| 148 | |
| 149 | '''Returns:''' (struct interface_ids) |
| 150 | - interface_ids - Interface ID structure |
| 151 | |
| 152 | |
| 153 | |
| 154 | === {{{wl_getTriggerInputIDs}}} === |
| 155 | Returns the trigger input IDs that can be used as inputs to trigger manager commands |
| 156 | |
| 157 | The trigger input IDs are returned in a structure that contains fields for individual triggers. |
| 158 | |
| 159 | The fields in the structure are: |
| 160 | - Scalar fields: |
| 161 | - '''ETH_A''' - Ethernet Port A |
| 162 | - '''ETH_B''' - Ethernet Port B |
| 163 | - '''ENERGY_DET''' - Energy detection (See 'energy_config_*' commands in the Trigger Manager documentation) |
| 164 | - '''AGC_DONE''' - Automatic Gain Controller complete |
| 165 | - '''SW_REG''' - Software register (ie Memory mapped registers that can be triggered by a CPU write) |
| 166 | - '''EXT_IN_P0''' - External Input Pin 0 |
| 167 | - '''EXT_IN_P1''' - External Input Pin 1 |
| 168 | - '''EXT_IN_P2''' - External Input Pin 2 |
| 169 | - '''EXT_IN_P3''' - External Input Pin 3 |
| 170 | |
| 171 | Examples: |
| 172 | - Get the trigger input ID structure (let node be a wl_node object): |
| 173 | {{{ |
| 174 | trig_in_ids = wl_getTriggerInputIDs(node); |
| 175 | trig_in_ids = node.wl_getTriggerInputIDs(); |
| 176 | }}} |
| 177 | - Use the trigger input ID structure: |
| 178 | - Enable baseband and agc output triggers to be triggered on the Ethernet A input trigger: |
| 179 | {{{ |
| 180 | wl_triggerManagerCmd(nodes, 'output_config_input_selection', [trig_out_ids.BASEBAND, trig_out_ids.AGC], [trig_in_ids.ETH_A]); |
| 181 | }}} |
| 182 | |
| 183 | |
| 184 | '''Arguments:''' none |
| 185 | |
| 186 | '''Returns:''' (struct trig_input_ids) |
| 187 | - trig_input_ids - Trigger Input ID structure |
| 188 | |
| 189 | |
| 190 | |
| 191 | === {{{wl_getTriggerOutputIDs}}} === |
| 192 | Returns the trigger output IDs that can be used as inputs to trigger manager commands |
| 193 | |
| 194 | The trigger output IDs are returned in a structure that contains fields for individual triggers. |
| 195 | |
| 196 | The fields in the structure are: |
| 197 | - Scalar fields: |
| 198 | - '''BASEBAND''' - Baseband buffers module |
| 199 | - '''AGC''' - Automatic Gain Controller module |
| 200 | - '''EXT_OUT_P0''' - External Output Pin 0 |
| 201 | - '''EXT_OUT_P1''' - External Output Pin 1 |
| 202 | - '''EXT_OUT_P2''' - External Output Pin 2 |
| 203 | - '''EXT_OUT_P3''' - External Output Pin 3 |
| 204 | |
| 205 | Examples: |
| 206 | - Get the trigger output ID structure (let node be a wl_node object): |
| 207 | {{{ |
| 208 | trig_out_ids = wl_getTriggerInputIDs(node); |
| 209 | trig_out_ids = node.wl_getTriggerInputIDs(); |
| 210 | }}} |
| 211 | - Use the trigger input ID structure: |
| 212 | - Enable baseband and agc output triggers to be triggered on the Ethernet A input trigger: |
| 213 | {{{ |
| 214 | wl_triggerManagerCmd(node, 'output_config_input_selection', [trig_out_ids.BASEBAND, trig_out_ids.AGC], [trig_in_ids.ETH_A]); |
| 215 | }}} |
| 216 | - Configure output delay for the baseband: |
| 217 | {{{ |
| 218 | wl_triggerManagerCmd(node, 'output_config_delay', [trig_out_ids.BASEBAND], 0); |
| 219 | }}} |
| 220 | |
| 221 | |
| 222 | '''Arguments:''' none |
| 223 | |
| 224 | '''Returns:''' (struct trig_output_ids) |
| 225 | - trig_output_ids - Trigger Output ID structure |
| 226 | |
| 227 | |
| 228 | |
| 229 | |
| 230 | |
| 231 | |