繁体   English   中英

Qt扫描时不可见的BLE设备

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM