Политика конфиденциальности Android приложения UnoSDR

Posted on 2017-06-28 20:35:51

Данное android приложение - UnoSDR, запрашивает пермиции android.permission.CAMERA и android.permission.RECORD_AUDIO. Приложение не передает какие либо данные кому либо, так как этого не требует функциональность приложения. Подключение к Wi-Fi нужно лишь для приема потока IQ данных RTLSDR донгла, а так же, управление им.

 

SDR Console v3 и RTLSDR

Posted on 2017-06-25 18:40:08

Наконец то попробовал SDR Console v3. До этого смотрел пару лет назад SDR Console v2. В этот раз, я проверял работу программы вместе с RTLSDR донглом. Ниже видео, где я быстро прошелся по интерфейсу программы.

Собственно первые впечатления. В настройках RTLSDR есть опция прошивки EEPROM новой версией Firmware - такой возможности я не видел ни где больше. Программа распостраняется только на Windows, и ситуация эта не поменяется из - за интерфейса - если на него посмотреть, то видно, что используется какой то Windows фреймворк, визуально, очень похожий на Microsoft Word :) Поэтому ждать кардинальных изменений интерфейса, или расширение поддержки операционных систем не приходится, потому что нужно будет переписывать SDR Console с нуля, на других IT технологиях, а это уже будет другая программа. 

Одна особенность - программа имеет свойство expire date - дата окончания функционирования. Далее нужно будет скачать новую версию. Возможно, в будущем, она станет платная.

Как вывод, могу сказать, что SDR Console достаточно функциональна, но лично мне не нравится интерфейс.

Ускорение компиляции Qt проекта в IDE Qt Creator

Posted on 2017-06-21 12:52:03

Если вы работаете над сколь мало серьезным проектом на С++, то вы сталкивались с мучительно долгой компиляцией, даже если не учитывать полную пересборку проекта. Может возникнуть момент, когда сам процесс разработки становится затруднительным из - за длительной компиляции. Например, внесли какието изменения в исходный код, добавили небольшой класс, запустили процесс компиляции, что бы протестировать изменения - можно идти пить чай, ибо ждать нужно минут пять. Устранить эту печаль призванна данная статья.

Оказывается, в 2017 - му году, если не предпринять специально меры, по умолчанию при компиляции используется один поток! Долой многоядерные процессоры ... . К счастью распараллелить компиляции С++ проектов в Qt Creator достаточно просто. Есть несколько путей это сделать, например редактированием pro файла с добавлением флагов, но самый простой и самый эффективный, судя по бенчмаркам, это использование утилиты JOM. И так, качаем архив утилиты https://wiki.qt.io/Jom , распаковываем и кидаем содержимое в папку Qt5.9mingw53_32/bin. Далее открываем Qt Creator, настраиваем сборку конкретного проекьа как показано ниже:

Qt Creator JOM parallel compilation

Собственно, на  этапе make build and clean нужно указать путь к утилите JOM. Касательно величины ускорения, в текущем состоянии проекта UnoSDR, полная компиляция на дефолтных настройках занимала 11 мин 51 сек. С утилитой jom - 3 мин 40 сек. Процессор ноутбучный 4 ядра. Выводы делайте сами. 

Для  Linux можно указать в опции "Make arguments" строку -jX, где X - количество потоков, на которые распараллеливается компиляция.

Сворачивание Qt Qml приложения в System Tray

Posted on 2017-06-21 12:27:21

В новой версии Qt 5.9.0 появилась поддержка system tray. До этого приходилось использовать QSystemTrayIcon из состава виджетов. Теперь все намного проще. Ниже небольшой пример. При нажатии на кнопку закрытия приложения, приложение будет светнуто в system tray - в общем стандартное поведение. Так же, при запуске должно появится системное уведомление.

import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import Qt.labs.platform 1.0

ApplicationWindow {
    property string appTitle: "Example"

    id: window
    visible: true
    width: 640
    height: 480
    title: qsTr(appTitle)

    SystemTrayIcon {
        visible: true
        iconSource: "qrc:/favicon.ico"
        tooltip: appTitle

        menu: Menu {
            MenuItem {
                text: qsTr("Quit")
                onTriggered: Qt.quit()
            }
        }

        onMessageClicked: console.log("Message clicked")
        Component.onCompleted: {
            console.log(supportsMessages)
            showMessage("Message title", "Something important came up. Click this to know more.")
        }

        onActivated: {
            console.log(reason)
            if(reason !== SystemTrayIcon.Context) {
                window.show()
                window.raise()
                window.requestActivate()
            }
        }
    }

    onClosing: {
        close.accepted = false
        window.hide()
    }

}

Ну и теперь пару ложек дегтя. В функции вывода системного сообщения есть параметр - время показа этого сообщения, но в windows 10 его значение не влияет. Так же в qml api нет возможности задать тип системного сообщения. Например, в той же windows 10 по умолчанию тип - INFO, и его ни как не поменять. А если нужно сообщить пользователю об ошибке? И последнее, в сигнале Activated параметр reason undefined. Из - за этого мне не удалось реализовать сценарий, если пользователь кликает левой кнопкой мыши по иконке приложения в системном трее, приложение разворачивается, правой - открывается контекстное меню.

First 1 2 3 4 5 6 7 8 9 10 11 12 13 Last