Revision fa7d4a2a host/lib/usrp/usrp2/usrp2_impl.cpp
| b/host/lib/usrp/usrp2/usrp2_impl.cpp | ||
|---|---|---|
| 201 | 201 |
//create a ctrl and data transport for each address |
| 202 | 202 |
std::vector<udp_simple::sptr> ctrl_transports; |
| 203 | 203 |
std::vector<zero_copy_if::sptr> data_transports; |
| 204 |
const device_addrs_t device_addrs = sep_indexed_dev_addrs(device_addr); |
|
| 204 | 205 |
|
| 205 |
BOOST_FOREACH(const device_addr_t &dev_addr_i, sep_indexed_dev_addrs(device_addr)){
|
|
| 206 |
BOOST_FOREACH(const device_addr_t &dev_addr_i, device_addrs){
|
|
| 206 | 207 |
ctrl_transports.push_back(udp_simple::make_connected( |
| 207 | 208 |
dev_addr_i["addr"], num2str(USRP2_UDP_CTRL_PORT) |
| 208 | 209 |
)); |
| ... | ... | |
| 213 | 214 |
|
| 214 | 215 |
//create the usrp2 implementation guts |
| 215 | 216 |
return device::sptr( |
| 216 |
new usrp2_impl(ctrl_transports, data_transports, device_addr) |
|
| 217 |
new usrp2_impl(ctrl_transports, data_transports, device_addrs)
|
|
| 217 | 218 |
); |
| 218 | 219 |
} |
| 219 | 220 |
|
| ... | ... | |
| 227 | 228 |
usrp2_impl::usrp2_impl( |
| 228 | 229 |
std::vector<udp_simple::sptr> ctrl_transports, |
| 229 | 230 |
std::vector<zero_copy_if::sptr> data_transports, |
| 230 |
const device_addr_t &flow_control_hints
|
|
| 231 |
const device_addrs_t &device_args
|
|
| 231 | 232 |
): |
| 232 | 233 |
_data_transports(data_transports) |
| 233 | 234 |
{
|
| ... | ... | |
| 244 | 245 |
//!!!!! set the otw type here before continuing, its used below |
| 245 | 246 |
|
| 246 | 247 |
//create a new mboard handler for each control transport |
| 247 |
for(size_t i = 0; i < ctrl_transports.size(); i++){
|
|
| 248 |
for(size_t i = 0; i < device_args.size(); i++){
|
|
| 248 | 249 |
_mboards.push_back(usrp2_mboard_impl::sptr(new usrp2_mboard_impl( |
| 249 |
i, ctrl_transports[i], data_transports[i], |
|
| 250 |
this->get_max_recv_samps_per_packet(), |
|
| 251 |
flow_control_hints |
|
| 250 |
i, ctrl_transports[i], data_transports[i], device_args[i], |
|
| 251 |
this->get_max_recv_samps_per_packet() |
|
| 252 | 252 |
))); |
| 253 | 253 |
//use an empty name when there is only one mboard |
| 254 | 254 |
std::string name = (ctrl_transports.size() > 1)? boost::lexical_cast<std::string>(i) : ""; |
Also available in: Unified diff