mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-11-03 21:20:31 -05:00 
			
		
		
		
	Speed up enumeration / opening USRP B210 by using hardcoded values.
This commit is contained in:
		
							parent
							
								
									0a257f393e
								
							
						
					
					
						commit
						aeaf0e75c0
					
				@ -47,22 +47,40 @@ void DeviceUSRP::enumOriginDevices(const QString& hardwareId, PluginInterface::O
 | 
				
			|||||||
            QString id = QString::fromStdString(dev_addrs[i].to_string());
 | 
					            QString id = QString::fromStdString(dev_addrs[i].to_string());
 | 
				
			||||||
            QString name = QString::fromStdString(dev_addrs[i].get("name", "N/A"));
 | 
					            QString name = QString::fromStdString(dev_addrs[i].get("name", "N/A"));
 | 
				
			||||||
            QString serial = QString::fromStdString(dev_addrs[i].get("serial", "N/A"));
 | 
					            QString serial = QString::fromStdString(dev_addrs[i].get("serial", "N/A"));
 | 
				
			||||||
 | 
					            QString product = QString::fromStdString(dev_addrs[i].get("product", "N/A"));
 | 
				
			||||||
            QString displayedName(QString("%1[%2:$1] %3").arg(name).arg(i).arg(serial));
 | 
					            QString displayedName(QString("%1[%2:$1] %3").arg(name).arg(i).arg(serial));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            qDebug() << "DeviceUSRP::enumOriginDevices: found USRP device " << displayedName;
 | 
					            qDebug() << "DeviceUSRP::enumOriginDevices: found USRP device " << displayedName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            DeviceUSRPParams usrpParams;
 | 
					            // Opening some devices can be a little slow, so use hardcoded number of channels,
 | 
				
			||||||
            usrpParams.open(id, true);
 | 
					            // for known devices
 | 
				
			||||||
            usrpParams.close();
 | 
					            static const QMap<QString, int> channelMap{{"B200", 1}, {"B205", 1}, {"B210", 2}};
 | 
				
			||||||
 | 
					            if (channelMap.contains(product))
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                originDevices.append(PluginInterface::OriginDevice(
 | 
				
			||||||
 | 
					                        displayedName,
 | 
				
			||||||
 | 
					                        hardwareId,
 | 
				
			||||||
 | 
					                        id,
 | 
				
			||||||
 | 
					                        (int)i,
 | 
				
			||||||
 | 
					                        channelMap[product],
 | 
				
			||||||
 | 
					                        channelMap[product]
 | 
				
			||||||
 | 
					                    ));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                DeviceUSRPParams usrpParams;
 | 
				
			||||||
 | 
					                usrpParams.open(id, true);
 | 
				
			||||||
 | 
					                usrpParams.close();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            originDevices.append(PluginInterface::OriginDevice(
 | 
					                originDevices.append(PluginInterface::OriginDevice(
 | 
				
			||||||
                    displayedName,
 | 
					                        displayedName,
 | 
				
			||||||
                    hardwareId,
 | 
					                        hardwareId,
 | 
				
			||||||
                    id,
 | 
					                        id,
 | 
				
			||||||
                    (int)i,
 | 
					                        (int)i,
 | 
				
			||||||
                    usrpParams.m_nbRxChannels,
 | 
					                        usrpParams.m_nbRxChannels,
 | 
				
			||||||
                    usrpParams.m_nbTxChannels
 | 
					                        usrpParams.m_nbTxChannels
 | 
				
			||||||
                ));
 | 
					                    ));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    catch (const std::exception& e)
 | 
					    catch (const std::exception& e)
 | 
				
			||||||
 | 
				
			|||||||
@ -71,6 +71,12 @@ bool DeviceUSRPParams::open(const QString &deviceStr, bool channelNumOnly)
 | 
				
			|||||||
                    m_srRangeTx = m_dev->get_tx_rates();
 | 
					                    m_srRangeTx = m_dev->get_tx_rates();
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            else if (deviceStr.contains("product=B210"))
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                // Auto-calculation below can be slow, so use hardcoded values for B210
 | 
				
			||||||
 | 
					                m_srRangeRx = uhd::meta_range_t(1e5, 61.444e6);
 | 
				
			||||||
 | 
					                m_srRangeTx = uhd::meta_range_t(1e5, 61.444e6);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                // Find max and min sample rate, for max and min master clock rates
 | 
					                // Find max and min sample rate, for max and min master clock rates
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user