qt 5.9.1 Пример сервера Bluetooth LE, добавление простых сбоев графического интерфейса с ошибкой сегментации
Я знаю, что Пример сервера с низким энергопотреблением Bluetooth - это консольное приложение, работающее с привилегиями root
однако мне нужно расширить его, чтобы имитировать наши конкретные потребности сервера, и графический интерфейс был бы очень удобен для изменения различных конфигураций и автоматизации данных во время тестирования
Теперь у меня есть простая и пустая форма графического интерфейса пользователя для тестирования, и я скопировал всю bt-ble часть кода из главного приложения консоли в конструктор формы графического интерфейса пользователя, чтобы увидеть, что происходит
запуск его в создателе показывает обычное сообщение об ошибке "qt.bluetooth.bluez: полученная реклама", так как он не запускается с правами root
попытка запустить приложение за пределами создателя с помощью "sudo ./BleDevice" выдает следующее сообщение об ошибке
QStandardPaths: XDG_RUNTIME_DIR не установлен, по умолчанию используется ошибка сегментации '/tmp/runtime-root' (ядро сброшено)
Google XDG_RUNTIME_DIR получает миллионы для меня непонятных предложений, которые действительно ведут в никуда
тот факт, что приложение работает в пользовательском режиме и выдает только эту ошибку bluez, указывает на то, что не так уж и много проблем с начальной установкой быстрого исправления, чтобы как-то начать
Однако, когда дело доходит до запуска с привилегиями root, ошибка заставляет меня до конца мудрости
const QScopedPointer<QLowEnergyController> leController(QLowEnergyController::createPeripheral());
const QScopedPointer<QLowEnergyService> service(leController->addService(serviceData));
строка, которая вызывает ошибку, следующая
leController->startAdvertising(QLowEnergyAdvertisingParameters(), advertisingData, advertisingData);
Я использую QT с 5.5, но это, кажется, вне моей компетенции
я успешно написал диагностическое приложение bt-ble для подключения к бле-устройствам, которое успешно работает в пользовательском режиме
в основном, как части кода консольных приложений будут запускаться по частям в графическом окружении с правами суперпользователя или я спрашиваю звездочки???
любая помощь будет высоко ценится