Название: Синхронный Bluetooth LE Отправлено: astarot от Сентябрь 03, 2018, 14:19 Здравствуйте. Помогите пожалуйста решить одну проблему.
Пишу приложение для обмена с BLE устройством и qt предлагает использование класса QLowEnergyController. Как таковая коммуникация и обмен данным с устройством у меня получилась, но возникла одна проблема. QLowEnergyController предлагает методы (в частности connectToDevice) работающие в асинхронном режиме, то есть при выполнении срабатывает сигнал. Но мне необходим синхронный вызов методов (в идеале по тайм-ауту) так как уже в приложении есть другой клиент основе QTcpSocket работающий в синхронном режиме и хочется просто сделать по аналогии его методы. Решение с помощью QEventLoop не помогает так пока выполняется ожидание может повторно вызваться метод вызывающий connectToDevice. То есть нужно примерно такой код: Код: bool MyBluetooth::doConnect(QBluetoothAddress address) Кроме того пытался решить проблему перенеся экземпляр класса QLowEnergyController в отдельный поток. Но это у меня не получилось, экземпляр оставался в том же потоке. Вот код как я это делал: Код: bool MyBluetooth::doConnect(QBluetoothAddress address) |