[英]Invisible BLE device when Qt scanning
我是蓝牙低功耗 (BLE) 设备开发的新手,我必须开发一个能够与 BLE 设备通信的 HMI(在 Windows 10 上)。
为此,我选择使用 Qt v5.14.2 开发我的软件,其中包括用于蓝牙通信的 API。
我处于第一步,即扫描我周围的设备。 对于这个测试,我有一些标准的蓝牙设备,还有一个 BLE 开发套件(Nordic nRF52),可以永久做广告。
我的问题是:当我运行我的代码时,我可以找到周围的标准蓝牙设备,但找不到 BLE 设备..(使用另一个应用程序我可以找到这一切..)。
这是我的代码: 1)我的构造函数初始化蓝牙 com 并启动它:
CemBluetooth::CemBluetooth(QObject *parent) : QObject(parent)
{
discoveryAgent = new QBluetoothDeviceDiscoveryAgent();
discoveryAgent -> setLowEnergyDiscoveryTimeout(10000); // in ms
connect(discoveryAgent, SIGNAL(deviceDiscovered(const QBluetoothDeviceInfo&)), this, SLOT(addDevice(const QBluetoothDeviceInfo&)));
connect(discoveryAgent, SIGNAL(finished()), this, SLOT(f_ctrl_bl_scanBlDevicesFinished()));
discoveryAgent->start(QBluetoothDeviceDiscoveryAgent::LowEnergyMethod);
}
2) 提取设备的插槽 addDevice():
void CemBluetooth::addDevice(const QBluetoothDeviceInfo& device)
{
std::cout << "Device discovered: ";
//if (device.coreConfigurations() & QBluetoothDeviceInfo::LowEnergyCoreConfiguration) // i shunt this condition for the moment, in order to detect all device.
//{
QString name1 = device.name();
std::cout << name1.toStdString() << std::endl;
//}
}
你能帮我找出解决办法吗?
问题已解决。 我只是将我的编译器从 minGW 更改为 MSVC,它工作正常,确切的原因对我来说仍然未知。 但解决方案就在这里。
给未来访客的一些信息:
“Win32 后端已被删除。当 Qt 使用 mingw 构建时,将不会有工作的蓝牙后端。”
链接: https://doc-snapshots.qt.io/qt6-dev/qtbluetooth-changes-qt6.ZFC35FDC70D5FC69D269883A822C7A53
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.